Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Jis

Game programming organisation

This topic is 5120 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I want to ask for your opinion on the organisation i thought on a 3D real time strategy game. I show only the differents "modules" (hey, don't know how to say that in english, perhaps workgroup or section or something like that). So : - Engine (3D, Sound, IO, controllers(keyboard, mouse,...),... ) - Game System (designing all the games rules and managing game structs) - Editor (map editor and unit editor) - IGUI (Ingame Graphical User Interface) - Network (all the multiplayer code) I need this separated for lisibility and ability for other programmer to work on. (dududu waiting for your help, it is very important for me, because an error here would be very catastrophic for the work-time) ( Be Side ) [edited by - Jis on June 8, 2004 10:40:22 PM]

Share this post


Link to post
Share on other sites
Advertisement
I would break the Engine down. sound/3d/all that should be different modules...


-x m d

Share this post


Link to post
Share on other sites
all the modules are in different dll.
I'm using interfaces for the engine module so it is library/device free. And if the sound is with the 3D, i can manage them directly with the 3D structs without using other interfaces between dlls. I'm speaking speaking, but your idea is still interesting, lol.

[edited by - Jis on June 8, 2004 11:00:17 PM]

Share this post


Link to post
Share on other sites
Hm...

Merging 3D graphics with 3D sound may help you to save some RAM, but the lines between your modules will vanish.

You should decide right on start if you want to have your modules nicely separated, so you can switch them; or have them merged together to save memory.
Say you use the data of the graphics for your audio, you can''t turn off graphics without messing your audio, too.

Our engine has some redundant data for sure, but at any time we can decide to turn on/off any module, and this will not change the usage of the other modules.
Sure this results in some redundant data, but it is really nice to switch modules on/off on the fly and not to bother about messing up other modules at all.

Share this post


Link to post
Share on other sites
mmm but for a game, no graphics imply nothing.
If i do not have graphics, i do not need 3d data for the sound.
Thanks for the idea.

Share this post


Link to post
Share on other sites
Are interfaces system good enough?
Is it the best solution for having high portability, high evoluting ability, and high performance?

Share this post


Link to post
Share on other sites
Having interfaces is great, but always remember that you don''t need to have separate modules in separate win32 .DLLs to make a fully modular program. Generally it seems that you just end up with pain trying to get C++ to work as expected in DLLs, so I would recommend that you use a monolithic program until you really need to break it down.

Mark

Share this post


Link to post
Share on other sites
Hahaha, yes but the fact is that there are other programmers that are not in the same location. So they need to test their code independantly to me. And with a dll, this is faster to switch to the new version of the 3d engine module than having a lot of sources and view all the changes in a lot of files. And if there are no new functions but just optimisations or debugging, just changing the dll file is quite easy. And I want my 3d engine to work with other games too with just including a .lib such as the quake engine. But you are right, if there were not all this problem , i would have put all the other modules into one. Do you think that the network code must be in a different module than the game one? I have posted this question on network area, but no answers for the moment.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!