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 is written in C++. You are expected to be experienced in C++ programming. You should be comfortable with compiling, linking, and debugging.

About This Guide

This guide provides an overview of the CORGI library. It does not cover every aspect of functionality provided by the library. The entire API is documented by the API Reference. In addition, a sample (under corgi/sample) provides example usage of the library.


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

Each class is described in the folloiwing sections of the 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.