Empyrean:Engine

From Superluminon

Jump to: navigation, search
Aerodrive Engine Architecture r1a
Aerodrive Engine Architecture r1a

Contents

Engine Overview and Detailed Analysis

This should give an idea of what are the main aspects of the engine we are going to develop. This must not be considered fina and may thus be subject of many changes in the near future.

Also, I need to create some maps so that the entire design is clearer, but still have to find the software for doing that. --Giulio 09:17, 9 December 2007 (CST)

Overview

Our engine constists of 3 main subsystems, that basically handle all the processes of the game and are splitted up in subprocesses for making a better use of resources and divide the development phase.

  • Game Manager: takes care of happens in the world and is responsible for message output and user interaction.
  • Configuration System: Loads and keeps track of configuration. One of the most simple, but important, managers.
  • Events and other stuff handler: interacts with the Game manager very closely. It acts as system to answer the main requests from the Game and moves and tracks element's properties.

Detailed analysis of main subsystems

Engine diagram

Refer to the one at the top of the page.

Game Manager

The Game manager is the most important stuff, what our game basically depends on. The architecture of this system must be very flexible to allow quick changes and rapid tests on its functionalities and features.

Subprocesses of Game Manager

Game Manager has several subsystem that are to put all togheter to create a working, stable and reliable system:

  • Messagging: is what outputs messages to the console as info or prints text on the screen to warn the user or simply display things.
  • Input system: Binds key-press events and mouse movment with the Configuration system current settings.
  • Movement: tracks ship movement and other element's actions. Is closely interconnected to the Event handler basic movement capability.

Configuration System

Configuration system is one of the most simple, yet most important, parts of the engine. Its unique goal is to load the configuration saved somewhere whenever the game is launched and allow for changes of it also during the game execution. I actually don't feel any additional details are needed.

Events Handler

This is another important part of the engine, since it basically takes care of everything that's painted on the screen. Whenever something moves or changes, a part of this system is called in action. We could say this is the heart of our engine, even if the Game Manger is actually what makes all this not meaningless.

Subprocesses of Event Handler

The Event handler has some basic processes and systems that are not really connected each other, but makes all togheter the main system working.

  • Basic movement: is the basic process that other parts of the software may refer to when something must move.
  • Camera track: tracks and manages camera actions.
  • Entity handler: is what handles and manages all the entities on the screen. It calls the Basic movement subprocess whenever an entity has to be moved or a new one is created.
  • Input recognition: is what interconnects the Configuration system with the Game Manager input system. It basically retrieves what action correspont to the button that's been pressed.
  • Ship registry: records info about the player and stores it so that can be retrieved easily whenever they're needed.

Please see and discuss

Aerodrive_Talk:Engine

External references