This is heavily in development. This is not a complete project - which means that many things will be reworked, the code is experimental for the most part and is subject to rework. Documentation will be added.
Moreover, this is a learning project as well and might contains not accurate and/or optimal things. Feel free to create an issue if you detect one or to contribute
Many things that are developped in this project could be using libraries, but there is a choice not to do so:
- As part of the learning, looking at the lower level API help understand the mechanism
- Better control over things
- Fun !
Now that I fixed the couple of issues related to simple rendering:
- Find a solution to pass the lights to the shaders without having to have them as defines of the fragment shader
- Try to get the Culling as parameters of an object loaded and now for all.
- [Less immediate] Modularize the project into shared library loaded at runtime.
- Use Left-handed coordinate system
- Use degrees for angles
- Using OpenGL 3.3+
- Skybox
- Adding slowly a full scene system (and serialization over XML/JSON)
- Basic animation system
- UI for Editor + In-Game: The idea is devided in two
- Editor: Less performing containing very complete widget and SVG based for high quality editor
- In-Game: Based on Sprites to compose your own UI (Low/High DPI capable) - more performing.
- Continue to push support for modern OpenGL
- More effect (Fog, Toon shading, PBR, ...)
- Integrate a physics engine
- Add support for Audio
- Particle system
- Add networking
- Scripting (Lua ? JS ? C# ?)
- Editor
- More tooling
- Add support for modern D3D12
- Add support for Vulkan
- Support for VR ? Using MiddleVR ?
- Documentation: How to compile, how to create project, how to contribute, general architecture, ...
- Better window/input management. Probably moving from GLFW to in-house drivers.
- Special thanks to Joey for his awesome tutorials on OpenGL that made me even more motivated to start that project: learnopengl.com
- (Model) Small House Diorama by glenatron is licensed under CC Attribution-NonCommercial.
- (Model) Treasure Chest by Demeter Dzadik is licensed under CC BY 4.0.
- To all the Open Source Game Engine that I enjoyed in the past browsing the source code and learn from and that made me even more eager to continue ! (Ogre, Irrlicht, Torque3D, Urho3D, Godot, UnrealEngine, CryEngine, ...)