racer home

Game Engine - overview

 

Home A simple start.


Dolphinity Organiser - free planning, project management and organizing software for all your action lists

Introduction

Racer is starting to become a more generic game engine rather than a pure racing game. A component & entity system is being built in which allows for the creation of more flexible game rules and objects.

Terminology

First we need to define a couple of terms relating the Racer's game engine side:

Obsolete terms (since Racer v0.9.0RC8):

More abbreviations you'll come acrsoss:

Workflow

Roughly, a game is created using the following procedure:

RPC - remote procedure calls

These calls are used to communicate events that don't happen often, such as the spawning of a player or NPC (non-player-character) object. For more information on RPC's, read this article.

Callbacks

Onyx scripts can contain functions, which are called when certain events happen. This allows the scripts to act upon events that happen in the game. Read more about callbacks here.

Subsystems

The game engine consists of C++ code (high-performance) and custom Onyx scripts that you can write yourself. Some built-in subsystems are exposed to Onyx, to be of assistance to the Onyx side of things.

Existing subsystems are:

Debugging

Debugging scripts is an important part of the development of a game. This article explains debugging with the game engine and Onyx in more detail.

Components (also called resources / assets in other game engines)

The game engine uses a more globally defined components database, stored in the components/ directory. This is currently a deep directory full of objects; the future will see a method to compress these into packages, to improve loading times and coherence.
These types of components exist:

File structure

This article describes the files used in the game engine. This can be useful to understand what goes on under the hood.

 


Dolphinity Organiser - free planning, project management and organizing software for all your action lists

(last updated July 3, 2014 )