I have idea to make top view 3D Multiplayer game for Windows. So since I
am new in area of game programming it is better to choose wise in
beginning than sorry later :)
Game should work in Windows XP, VIsta and Windows 7.
So first thing is to choose technology, so my question is:
Should I use Visual Studio and DirectX 9 ?
Should I use CodeBlocks with MinGW and OpenGL ?
Thanks in advance,
Senior Software Developer
Please log in or register to post a reply.
Well, Visual Studio vs MinGW and D3D vs OpenGL are two quite orthogonal
But if you’re developing on Windows, IMO the Visual Studio IDE can’t be
beat. And if you’re targeting only Windows for the final project, you
might as well use Direct3D, but really either D3D or OGL will do.
Thanks for fast reply.
Well since graphically you are saying there is almost no difference,
than what about sound and networking ? The game should have some basic
sounds, nothing special, but multiplayer should be able to support a big
number of players, like up to 20 000. So is it better to use DirectPlay
for this requirement or use for example FreeBSD server and write your
own socket server ?
Remember, Direct3D and OpenGL are only API’s to the graphics driver. The
best API is dependant on the driver. If the driver supports both API’s,
there would theoretically be no difference. But i always recommend, to
write your engine to support both, then you are on the safe side that
your game runs on almost every 3D accelerator. But if you don’t have the
time or resources, stick to Direct3D for games, as Direct3D is mostly
supported by the most windows graphics drivers. Fx some Intel graphics
cards have got bad support for OpenGL.
DirectPlay? Does that still exist? If it does, forget it. It is
depraced, and it only supports up to 32 players.
If you have 20.000 players, i would recommend to write your own server.
Then make use of an SQL server for the account data, inventory, player
ip’s etc. and then make the clients communicate with each other
peer2peer. The SQL server then provides the client ip’s, and then your
client decides which other clients it should request movements and other
If anyone else have got some corrections, feel free to correct me! :-)
#Kim Johannsen - Note (just to write details down, though basically
you’re right): actually OpenGL and Direct3D are not only API’s to the
graphics driver, there are also OpenCL, DirectCompute, C++ AMP and
vendor specific CUDA. You *can* write renderer (like OpenGL or
Direct3D is) in these, though you won’t use the hardware parts of GPU
(there are still some of them) and do everything in software on GPU. You
can also render in software on CPU (quite effectively today). Anyway
OpenGL and Direct3D are only hardware based renderer apis out there.
For sound support, you’ll probably want OpenAL if you want something
that is cross platform compatible. Have a look here:
I’ve posted video tutorials showing how to use OpenAL at the link