JavaEngine is a game engine written in Java.
Status: Private / Alpha
The main drive and goal to this project was to create a game engine where i could explore low level graphics and game physics.
The end goal was to be able to create my own dream game comfortably and to make something I could look back on and be proud of.
Eventually the project will be ported for Project Valhalla and might even be open sourced.
Stack:
- Java (Main Engine language, Scripting)
- lwjgl, OpenGL (Windowing, Graphics libraries)
- Kotlin, lua (Scripting)
Learned
- How lower level graphics, physics and game engines work
- Writing and running optimized graphics shaders
- Writing a runtime scripting engine
- Creating an extensive API for the scripting engine.
Challenges I faced
- The complexity of how graphics are built up and making sure the graphics pipeline is efficient.
- Figuring out how to make a project structure thats easy to work in for others.
- The complexity of how camera systems work both 2D and 3D.
The engine utilizes a hand written graphics pipeline. To optimize batched rendering, allows custom shaders written by the developer.
And a bunch of standard shaders included in the base project.