Jump to content
  • Advertisement
Sign in to follow this  
Zex903

Game Engine

This topic is 4514 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

Just out of curiosity what does this do? As well what other engines make up a full commercial 3d game and what do they do? Just a brief description please :)

Share this post


Link to post
Share on other sites
Advertisement
A game engine serves as a layer of functionality, often built on top of other lower-level APIs, that attempts to aid game developers in quickly developing games. This often involves performing repetetive or mundane tasks that would hamper the production of a game.

Many of today's engine focus strongly on game graphics since quality 3D graphics play a large role in current generation games. However, in most cases a GAME engine should perform more tasks than just handling graphics, such as user-input management, sound processing, delegation of processing tasks, etc.

Share this post


Link to post
Share on other sites
Engines can be different things. Some engines contain functionality specific to the game, other game engines doesn't. I prefer general-purpose engines which isn't tied to a specific kind of game, or even games in general. IMO a game engine should provide functionality needed for games, but not the actual game functionality. Stuff normally in the engine includes abstraction of APIs, sending graphics data to the GPU, and managing which data should be sent and how etc. Stuff like how the persons interact, how the grenades explode shouldn't be in the engine, that should be in the game code because it's game specific. So take the grenade example, something like this should happen.

  1. Game tells the engine the grenade model and sound should be loaded

  2. The engine loads the model

  3. The engine loads the sound

  4. (optional) The engine does stuff like creating lower quality models, puts the model in the video memory etc.

  5. The engine detects a key stroke and tells the game about it

  6. The game can see that it should now fire a grenade so it adds a object to the engine's physics system and attach a grenade model to the object

  7. The engine realistically simulates the grenade, every time the grenade hits something the game is informed

  8. When the game gets a message that the grenade hit something it ask the sound subsystem of the engine to play a sound

  9. When the grenade explodes the engine informs the game

  10. The game, when recieving the message that the grenade exploded, will remove the grenade.

  11. The game places some effect illustrating the explosion, it could for example ask the rendering system to place a animated billboard, or ask the particle system to spawn a lot of particles etc.

  12. The game informs the physics system that all objects within some radius of the grenade should have a force applied to them, the actual force depends on the distance to the grenade


I think that list gives a pretty good idea what the engine is responisble for and what the game is responsible for.

I would include the following stuff in an engine:

  • Input system (possibly giving the possibility to map a key to a function pointer)

  • Platform abstraction (this could be further divided into subsystems like windowing, library loading, etc.)

  • Rendering system (with LOD, lighting etc.), I would split this into systems taking care of animation, graphic API abstaction, LOD (, terrain) etc.

  • Audio system

  • Physics system (here I would most likely start providing a wrapper around another physics engine, and then later, if required, implement my own physics engine with the same interface)

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!