diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2018-02-01 14:04:55 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2018-02-01 14:04:55 +0000 |
commit | 400e8188a312abc7e5a0c7378dbd64fb8e0705e0 (patch) | |
tree | c8036f659b5d09e0ec297b8354f35311527ebddc | |
parent | 18e7d9487e298498eb5233ee17e50dfbd6b6e70f (diff) | |
parent | 6c4772685909f1f47aa902532d955c77b8e8271d (diff) | |
download | YAGE-400e8188a312abc7e5a0c7378dbd64fb8e0705e0.tar.gz YAGE-400e8188a312abc7e5a0c7378dbd64fb8e0705e0.zip |
Merge branch 'develop'
-rw-r--r-- | .dir-locals.el | 2 | ||||
-rw-r--r-- | README.md | 60 | ||||
-rw-r--r-- | tests/engine/test.cpp | 5 |
3 files changed, 44 insertions, 23 deletions
diff --git a/.dir-locals.el b/.dir-locals.el index 4fe0fb50..2e2c2aaa 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -1,3 +1,3 @@ -((nil . ((projectile-project-compilation-cmd . "mkdir -p build && cd build && cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. && make -j") +((nil . ((projectile-project-compilation-cmd . "mkdir -p build && cd build && cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. && make -j4") (projectile-project-test-cmd . "cd build/tests && ctest") (projectile-project-run-cmd . "./build/bin/simplegame")))) @@ -1,37 +1,49 @@ -YAGE -==== +# YAGE + ![master-build](https://travis-ci.org/ymherklotz/YAGE.svg?branch=master) -Introduction ------------- +## Introduction + +YAGE stands for Yet Another Game Engine. It is a 2D game engine that is being +developed for the game [Arider](https://github.com/ymherklotz/Arider). However, +it will also be general game engine library for any other 2D games. -YAGE stands for Yet Another Game Engine. It is a game engine that is being -developed for a game called [Arider](https://github.com/ymherklotz/Arider). -It uses OpenGL and GLFW for the window creation and management and graphics. -It is also going to be a general game engine for use with other games in the -similar style. +YAGE uses OpenGL for rendering of 2D graphics. OpenGL was chosen because it is +the most crossplatform Graphics API, and not as low level as Vulkan. + +Yage uses GLFW for the creation and viewport as it is lightweight and easy to +manage. However, these features are completely wrapped behind the YAGE API. The inspiration for this game engine is to learn about OpenGL and create an optimised 2D game engine with a simple API that can be used to easily create -simple 2D games. +simple 2D games. To do this, a Component Entity System will be used to manage +the different systems in the game engine and make it as modular as possible. +Systems can easily be added to the game engine, and new entities with custom +Components can also be created by the user. + +The game engine also supports asynchronous logging by using an `Active` class +that creates a new thread, and queues any functions that are sent to it. This +can help debugging programs, as one can increase the minimum log level of the +game engine to any required resolution. This output can also be piped to a +file without slowing down the program. -The full documentation can be seen [here](https://www.yannherklotz.com/YAGE). +The full documentation of the API can be seen +[here](https://www.yannherklotz.com/YAGE). -Installation and usage ----------------------- +## Installation and usage To use YAGE for your own game, you should link it as a static library and include the [yage.h](/include/YAGE/yage.h) header in your project. To link the -project using cmake, the library has to be added as a subdirectory and then linked -with the name `yage`. +project using cmake, the library has to be added as a subdirectory and then +linked with the name `yage`. -Build and Testing ------------------ +## Build and Testing -To compile YAGE, create a build directory from the base dirqectory. Then call +To compile YAGE, create a build directory from the base directory. Then call cmake and point it to the directory containing. [CMakeLists.txt](/CMakeLists.txt). -For example, one can use the following commands +For example, one can use the following commands to build the library and run +tests on it. ``` shell mkdir -p build @@ -45,8 +57,14 @@ The test suite can then be run using cd build/tests && ctest ``` -License -------- +## Future Improvements + +The first step is to have full support of 3D meshes with their corresponding +textures, and making a useful API to interact with the 3D YAGE library. + +Secondly, improvements to the Entity Component System + +## License Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License, see file [LICENSE](/LICENSE) for more details. diff --git a/tests/engine/test.cpp b/tests/engine/test.cpp index 57680b99..6026e40a 100644 --- a/tests/engine/test.cpp +++ b/tests/engine/test.cpp @@ -5,12 +5,15 @@ int main() { yage::Space space; - auto entity = space.createEntity(); + auto entity = space.createEntity(); auto entity2 = space.createEntity(); auto entity3 = space.createEntity(); + auto entity4 = space.createEntity(); + yLogInfo << "Entity 1: " << entity; yLogInfo << "Entity 3: " << entity3; yLogInfo << "Entity 2: " << entity2; + yLogInfo << "Entity 4: " << entity4; return 0; } |