From 6c4772685909f1f47aa902532d955c77b8e8271d Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Thu, 1 Feb 2018 14:02:32 +0000 Subject: [Doc] Adding to readme. --- README.md | 60 +++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 21 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index b285c70b..0ad73d6f 100644 --- a/README.md +++ b/README.md @@ -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 -- MIT License, see file [LICENSE](/LICENSE) for more details. -- cgit