What systems does a basic game engine need?

Started by
2 comments, last by camcbri 22 years, 1 month ago
Hello! I''ve spent quite a bit of time learning OpenGL and now that I''m ready to bring it together into a demo/game, I realize that I don''t know how! I was wondering if you all could give your opinions as to what type of systems or classes are necessary in a basic 3D game engine. What I would like to create is a 3D space shooter. The only requirements are to fly around and shoot a couple of enemies, have some laser sounds and background music, and teach the enemies a few evasive/flocking tactics. What classes would you think are necessary to do this type of thing? Also, just out of curiousity, what exactly does a camera class do?? Thanks again!
Advertisement
Well, I''m not experienced in 3D programming, but my guess is that a camera class is what allows you to rotate, zoom in/out, etc. the immediate area.
In terms of systems it''s pretty straightforward. Rendering, Physics, Sound, AI, and all the other components that you would picture in a game. In terms of classes, well, that''s sort of up to you. There''s no correct or incorrect way to design a game, it can be done in many different ways that are all equally valid.

I''ve found that having some sort of resource management subsystem(s) can be useful. That''s code that will allocate/deallocate resources like textures, models, sounds, etc. and give out handles so they can be used in multiple places.
Well, here''s how I have my stuff divvied up...

* Data Engine - Controls loading files from disk and storing them in an easily accessible format. This is subdivided into modules which do the following

-parse various formats
-organize data in memory
-returns handles to data when requested
-loads textures and models, making them accessible to the rest of the game

* Graphics Engine - quite simply, chews through arrays of texture, vertex and normal data as quickly as possible. The game starts in the Graphics engine, the data engine is called internally and through a drop-down console

*UI, input, sound, music, camera control, etc are all created as class structures that get called from within the data engine.

This topic is closed to new replies.

Advertisement