Introduction:
Hello I worked on this project for 2 years through different repository. Today I present shiva an extensible engine via an entity component system through scripts (lua / python), DLLs, or even header-only (C++).
Another interesting point of the project:
Since the project is divided into modules, you can consult the matrix of modules and their dependencies and therefore you can choose to use the modules that interest you or not.
One of the goals of the project is to introduce you to the ease of handling C++ dependencies with VCPKG on a project like this. But also to make you discover very useful open sources libraries.
Design/Features:- Modern CMake interfaces/modules
- Scripting through lua/python systems
- Usable / Install through VCPKG C++ package manager
Documentation:->
https://shiva.gitbook.io/project/shivaDependencies:- boost-stacktrace
- boost-filesystem (because of boost-dll)
- boost-dll
- entt (from skypjack)
- lua
- luafilesystem
- sol2 (from ThePhd)
- pybind11
- cpp-taskflow (integrated in the project)
- spdlog (from Gabime)
- expected (from Tartan Lama) (integrated in the project)
- NamedType (from Jonathan Boccara) (integrated in the project)
- Nanorange (from tcbrindle) (integrated in the project)
There is additional plugins like shiva-sfml (not finished yet but usable).
Funny information:For the moment there are not many lines of code, but a lot of code generate through templates.
(~45kloc) -> (~800kloc generated)
Additional information:You can find the roadmap here ->
https://shiva.gitbook.io/project/shiva/roadmap.
If you have a question about the project or if something seems wrong or poorly explained, do not hesitate to ask me questions.
I am already aware that the name of the project conflicts with a c ++ engine that is also called shiva, but when I created this project I was not aware of the existence of this project.
Since I am alone on the project. I really take my time to develop it. It is possible that there is something missing in the documentation, or that some modules are not yet documented.
I started C++ only 2,5 years ago, thank you for being nice!
Gallery:Here is a video made with an old version of the game engine to give you an idea (done with SFML).
Link:https://github.com/Milerius/shiva