What it does
- A level editor with docking panels: scene hierarchy, properties, content browser and stats.
- Add entities, give them a sprite or a colour, and move, rotate or scale them with gizmos.
- Click an entity in the viewport to select it.
- Save and open scenes as YAML, and drag textures and scenes in from the content browser.
- Orthographic and perspective cameras, plus an editor camera that orbits, pans and zooms.
How it’s built
- Follows the architecture of TheCherno’s Hazel engine, ported from C++ to Java: about 6,000 lines.
- OpenGL 4.5 through LWJGL, using direct state access throughout.
- A batch renderer draws up to 2,000 quads per draw call, with 32 texture slots.
- Entities live in an entity-component system (artemis-odb); camera updates and rendering are systems.
- Picking draws each entity’s ID into a second framebuffer target, then reads back the pixel under the mouse.
- The engine talks to OpenGL only through interfaces, so another graphics API could be added.
- A Gradle multi-module build: the engine, the editor and a sandbox.