Common Module is a set of most commonly used, general data types (like Point2D or Common::Rectangle). Moreover, it contains methods that make string operations and type conversions easier in C++. It also controls the paths to data files (including media files) used in other Modules.

Any other FeyGamesFramework Module depends on Common Module. For that reason you do not have to include it manually in your code and it's always available for you to use it.

General assumptions

  • Each object should inherit from Object class (your own classes can inherit from it as well).
  • Objects with names should inherit from Nameable and objects with IDs should inherit from Identifiable.
  • Use C:: as a shortcut for Converter:: (see Converter).
  • To distinguish horizontal and vertical center, we use Center for horizontal and Middle for vertical align (AlignX::Center, AlignY::Middle).
  • ColorRGBA - Alpha = 255 means none-transparent and alpha value of 0 stands for fully-transparent (invisible) object.


  • Serializer - So far, no class implements serialize method.
  • Quaternion - Quaternion <-> Point3D conversion.
  • Object - std::wstring getDebugInfo() vs std::wstring toWString()
  • Line3D (typedef of Box) not listed in Common's Structures.