Skip to content
Christoph Heine edited this page Oct 11, 2018 · 20 revisions

Core Glossary

How to read this document

Our core glossary should give a brief overview on the components of our engine and how we plan to implement them. The descriptions are short on purpose. For more info, consult the docs or join our developer chat.

Every component is marked with a status which shows how far it has progressed so far.

  • Planned: The feature is planned, but we have yet to decide what design pattern we are going to use.
  • Design: In this phase, the design pattern for our component has been chosen and we are discussing how it will be integrated into the engine.
  • Under Construction: We are implementing the feature right now.
  • Testing: The main implementation is done and we are getting rid of leftover bugs.
  • Finished: Our component is fully functional and ready to be used. However, further improvements are always welcome.

Sometimes there is a Responsible field, which lists the people from our team who are actively working on the component. If you are new and would like to participate, feel free to ping them in the developer chat.

Gamedata Handling

Everything concerning the data used for gameplay, including graphics, sounds, unit stats, scripts and interface elements.

Runtime Database

Status: Finished

Responsible: jj

The runtime gamedata is handled by nyan, a typesafe hierarchical key-value database with inheritance and dynamic patching. During a game, nyan takes care of the objects in the game world as well as unit upgrades and updates. nyan is maintained by us and is written specifically for RTS games like Age of Empires 2.

Further Reading

Data Description Language

Status: Finished

Responsible: jj

Definition data for units, buildings, techs, etc. is written in the nyan description language. The nyan language is object-oriented, human-readable, allows inheritence and easy modification of existing objects through a mechanism that is called patching. The main focus is readability and moddability.

Further Reading

Data Modding API

Status: Design

Responsible: heinezen

The interface that exposes engine features to modders and game developers. Our API consists of several nyan objects for which the engine defines specific behavior. The API is an entity-component-system with generic unit objects (GameEntity) that are defined through abilities and boni objects.

Further Reading

Renderer

Game Simulation

Pathfinding

Status: Planned

We plan to adopt a pathfinder based on flow-fields to better deal with a high number of units.

Further Reading

Networking

Clone this wiki locally