Skip to content

Flexible set of libraries for gameplay development. Currently under development.

License

Notifications You must be signed in to change notification settings

KonstantinTomashevich/Emergence

Repository files navigation

Emergence

Test

Emergence is a flexible set of libraries for gameplay development that aims to become modular game engine in the future. Currently under development.

Architecture

Emergence architecture is built upon concept of units: relatively small modular libraries that provide singular feature to the user and depend on one another in order to do it. There is 3 kinds of units:

  • Interface units provide only headers.
  • Concrete units provide headers and one concrete implementation for them.
  • Abstract units provide headers with abstract API and several implementations for them as concrete units.

Every unit is either an object or interface library, therefore it is possible to explicitly control what goes into which output artefact (shared library or executable).

This architecture aims to:

  • Make link time polymorphism easy to use through abstract units.
  • Make modularization straightforward, easy to define and implement.
  • Make it easy to separate modules into several shared libraries.

Features

Core

Resource management

Data management and processing

Celerity

Celerity is an ECS-like game world architecture solution. It provides interface for building modular worlds, that consist of multiple logical parts. For example, tools like unified editor might be modelled as a world with multiple independent sub worlds. It has lots of extensions:

Other

Executables

About

Flexible set of libraries for gameplay development. Currently under development.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages