-
Notifications
You must be signed in to change notification settings - Fork 0
The Entities module of the Athena Game Framework
License
Kanma/Athena-Entities
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
******************************************************************************** * * * Athena-Entities * * Version 1.2.3 * * http://github.com/Kanma/Athena-Entities * * * ******************************************************************************** --------------------------------------- - Summary --------------------------------------- Athena-Entities is one of the modules of the Athena Game Framework, in the form of a library written in C++. It provides the basis of a system in which: 1) everything is an 'entity' 2) entities are grouped by 'scenes' 3) entities can be arranged hierarchically, which means: - an entity can have several children entities - an entity can have a parent entity 4) entities are defined by their 'components' 5) each entity has a 'transforms' component (representing its position in the 3D space relative to its parent, if any) 6) each entity can also optionally have some: - visual components - physical components - audio components - debugging-purposes components - user-defined type of components 7) each entity, component and scene maintains a list of the 'signals' it emits, allowing other entities/components/scenes (or any software part) to be notified when something happens 8) the entities can be animated This module only provides the basis of the system. Concrete implementations of the different kind of components are in the following modules: - visual & debug components -> Athena-Graphics - physical components -> Athena-Physics - audio components -> Athena-Audio The use of those modules is optional, you can choose to implement your own components instead, or to leave out one kind of component. This module can be used as a standalone library, or combined with the rest of the Athena Game Framework (http://github.com/Kanma/Athena-Framework). Additionally, when the Athena-Scripting (http://github.com/Kanma/Athena-Scripting) module is built alongside this one, Athena-Entities will be usable from JavaScript. --------------------------------------- - Dependencies --------------------------------------- Athena-Entities requires the following dependencies: - XMake - Athena-Math - Athena-Core - UnitTest++ - rapidjson They are provided as GIT submodules of this repository and will be compiled automatically during the compilation of Athena-Entities. To download them, do: somewhere$ cd <path/to/the/source/of/Athena-Entities> Athena-Entities$ git submodule init Athena-Entities$ git submodule update --------------------------------------- - Compilation --------------------------------------- (Note: you'll need to install CMake to compile Athena-Entities) To compile Athena-Entities (and all its dependencies), do: somewhere$ mkdir build somewhere$ cd build build$ cmake <path/to/the/source/of/Athena-Entities> build$ make The library will be put in build/bin/ --------------------------------------- - Credits --------------------------------------- The class 'Athena::Entities::Transforms' of this module is based on the 'Ogre::SceneNode' class of OGRE 1.7 (Object-Oriented Graphics Rendering Engine), a scene-oriented and flexible 3D engine, released under the MIT License. OGRE is the 3D engine used by the Athena Game Framework. The license of OGRE is contained in the file 'docs/LICENSE-OGRE'. --------------------------------------- - License --------------------------------------- Athena-Entities is made available under the MIT License. The text of the license is in the file 'LICENSE'. Under the MIT License you may use Athena-Entities for any purpose you wish, without warranty, and modify it if you require, subject to one condition: "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software." In practice this means that whenever you distribute your application, whether as binary or as source code, you must include somewhere in your distribution the text in the file 'LICENSE'. This might be in the printed documentation, as a file on delivered media, or even on the credits / acknowledgements of the runtime application itself; any of those would satisfy the requirement. Even if the license doesn't require it, please consider to contribute your modifications back to the community.
About
The Entities module of the Athena Game Framework
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published