aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2018-02-01 14:02:32 +0000
committerYann Herklotz <ymherklotz@gmail.com>2018-02-01 14:02:32 +0000
commit6c4772685909f1f47aa902532d955c77b8e8271d (patch)
treec8036f659b5d09e0ec297b8354f35311527ebddc
parent5fe329fe40c296a4a3dce9bc5543419ac954e4b0 (diff)
downloadYAGE-6c4772685909f1f47aa902532d955c77b8e8271d.tar.gz
YAGE-6c4772685909f1f47aa902532d955c77b8e8271d.zip
[Doc] Adding to readme.
-rw-r--r--.dir-locals.el2
-rw-r--r--README.md60
-rw-r--r--tests/engine/test.cpp5
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"))))
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 <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;
}