Litch - Building a 2D Java Game Engine from Scratch
July 1, 2025by Riley
A progress update and roadmap for Litch, my custom 2D game engine and framework built with LWJGL in Java.
javalwjglgame-engine2ddevlog
Litch – Building a 2D Java Game Engine from Scratch
Litch is my personal project: a 2D game engine and framework written in Java, using LWJGL for OpenGL rendering.
The goal is to create a flexible, modular engine for learning, prototyping, and eventually building full games.
✅ What’s Finished
- Window & Rendering Core:
- Window/context creation with LWJGL.
- Main game loop and timing.
- Primitive shape renderer (rectangles, lines, circles).
- Basic UI System:
- Text rendering (bitmap fonts).
- Image/sprite rendering for UI elements.
- Entity-Component System (ECS):
- Scene management.
- Entity and component registration.
- Basic transform and rendering components.
- Input Handling:
- Keyboard and mouse input support.
🛠️ In Progress
- Scene Serialization:
- Saving/loading scenes and entities.
- Component System Expansion:
- More built-in components (physics, animation, etc.).
- UI Improvements:
- More widgets and layout options.
- Resource Management:
- Texture, font, and asset loading/management.
📝 TODO / Roadmap
- Sprite and animation system
- Physics integration (Box2D)
- Audio playback and management
- Game state management (menus, pause, etc.)
- Documentation and code samples (in progress)
- Demo game(s) to showcase engine features (in progress)
Final Thoughts
Litch is a work-in-progress, but already supports basic 2D rendering, UI, and an ECS architecture.
I’m using it as a learning platform and a foundation for future games.
Contributions, feedback, and ideas are welcome!
Check out the code and follow progress on GitHub.
Stay tuned for more updates as Litch evolves!