- sfml
- fmt
- make
- clang++
$ git clone https://github.com/deGekata/multitask-empire.git
$ cd multitask-empire
$ make menu
$ make run
We also use so-called ECS concept in order to implement gameplay mechanics, thus making it much less time-consuming for developpers.
ECS follows the principle of composition over inheritance, meaning that every entity is defined not by a type hierarchy, but by the components that are associated with it. Systems act globally over all entities which have the required components.
An entity represents a general-purpose object. In a game engine context, for example, every coarse game object is represented as an entity. In our implementation, it is only a wrapper of a unique id.
A component labels an entity as possessing a particular aspect, and holds the data needed to model that aspect. For example, every game object that can take damage might have a Health component associated with its entity. In our implementations we use structs to define components.
A system is a process which acts on all entities with the desired components. For example, a physics system may query for entities having mass, velocity and position components, and iterate over the results doing physics calculations on the sets of components for each entity.
Throughout all of the project we use our own implementation od such standart classes as vector, function etc.
You can use our config system in order to implement your own custom character. Check these example for better understanding: knight, orc.
- W - Jump
- A/D - Move left/right
- Tab - change special ability
- F - use of special ability
- B - block (only works when standing)
Slows down the enemy (or you).
Set The World on fire! Or just some extra damage.
Makes enemy unable to neither block nor jump.
- The only rule - you should kill the knight!