Skip to main content
gamedev.net
🔒 Locked

Game programming organisation

Started by Jis 6 replies 900+ views
Original Post
Jis
Jis
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]
( Be Side )
xmd
xmd
I would break the Engine down. sound/3d/all that should be different modules...


-x m d
Jis
Jis
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]
( Be Side )
OmniBrain
OmniBrain
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.
-----The scheduled downtime is omitted cause of technical problems.
Jis
Jis
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.
( Be Side )
Jis
Jis
Are interfaces system good enough?
Is it the best solution for having high portability, high evoluting ability, and high performance?
( Be Side )
markr
markr
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
Jis
Jis
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.
( Be Side )

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.