An open source project by FPL.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Groups Pages


CORGI is a C++ entity-component system library developed primarily for games that focus on simplicity and flexibility.

It provides an Entity Manager class, which manages all the Entity and Component classes used by your game. CORGI also provides a Component Library, which contains a suite of common game-service Components for your use.

CORGI can be downloaded from GitHub or the releases page.

Important: The CORGI component library uses submodules, so download the source using:

git clone --recursive

To contribute to this project see CONTRIBUTING.


The core functionality of CORGI is provided by the following classes:

Each class is described in the folloiwing sections of the Programmer's Guide:

  • Component
    • An object that contains the logic and data pertaining to a particular system in the game.
  • Entity
    • The basic building block of a game, that does not do much on its own. It can be associated with many Components to achieve more complex behavior.
  • Entity Manager
    • This is a the object that ties Entities and Components together. It acts as the main point of interface for game logic to create Entities and register them with Components.

Supported Platforms

CORGI has been tested on the following platforms: