> For the complete documentation index, see [llms.txt](https://shiva.gitbook.io/project/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shiva.gitbook.io/project/shiva/roadmap.md).

# Roadmap

## Global Todo

* [ ] [SFML module](/project/shiva/roadmap.md#sfml-module) (Working on it)
* [ ] SDL module
* [ ] [Liblapin module](/project/shiva/roadmap.md#liblapin-module)
* [ ] Allegro5 module
* [ ] Compatibility with EMSCRIPTEN (with sdl2 for example)
* [ ] Ogre3d module
* [ ] bgfx 2d module
* [ ] bgfx 3d module
* [ ] box2d module (Working on it)
* [ ] bullet3d module
* [ ] imgui module
* [ ] SQL storage / Database management for specific games
* [x] JSON helper module (nlohmann Json)
* [ ] XML helper module (pugi)
* [ ] Yaml helper module
* [ ] INI helper module
* [ ] editor with IMGUI
* [x] [ecs module](/project/shiva/modules/shiva-ecs.md)
* [x] [static reflection module](/project/shiva/modules/shiva-reflection.md)
* [x] [magic enum module](/project/shiva/modules/shiva-enums.md)
* [x] [Add a plugins\_registry](/project/shiva/modules/shiva-dll.md#plugins_registry)
* [x] [Add lua scripting](/project/shiva/scripting/lua.md)
* [ ] Add python scripting
* [ ] Add chaiscript scripting
* [x] [Write a preprocessor module](/project/shiva/modules/shiva-pp.md)
* [x] [Write a centralized error manager](/project/shiva/modules/shiva-error.md)
* [x] [Add a timer/fps class](/project/shiva/modules/shiva-timer.md)
* [x] [Write a world module](/project/shiva/modules/shiva-world.md)
* [x] [Write a scene manager module (in Lua)](/project/shiva/modules/shiva-scenes.md)
* [x] [Using systems as plugin (c++)](/project/shiva/tutorial/how-to-create-a-system-plugin.md)
* [x] [Using systems as script (lua / python)](/project/shiva/tutorial/how-to-create-a-scripted-system.md)
* [x] [Using system as header-only c++](/project/shiva/tutorial/quickstart.md#getting-started)
* [x] Using scenes as script
* [ ] Input Module
* [ ] Write a Facebook API in lua
* [ ] Write a Steam API in lua
* [ ] Network Module
* [ ] CLI Tooling for project management
* [ ] Write more tutorials
* [ ] Write an emulator with shiva

## SFML Module

* [x] graphical plugin (not finish yet but usable)
* [x] animation plugin (not finish yet but usable)
* [ ] audio plugin
* [ ] video plugin (sfeMovie)
* [ ] serialize/deserialize/save plugin
* [x] resources plugin (usable, improvable)

## Input Module

* [x] Keyboard
* [ ] Mouse
* [ ] Joysticks
* [ ] Touchpad

## Liblapin Module

* [ ] graphical plugin
* [ ] animation plugin
* [ ] audio plugin
* [ ] video plugin
* [ ] resource plugin

## CLI Tooling for project management

* [x] Add prologue
* [ ] Add build scripts
* [ ] Add more game\_templates
* [ ] Improve the code

## Box2D Module

* [ ] json configuration
* [x] contact listener
