Eternal Labyrinth is a 2D bullet hell dungeon cralwer. You play as an alien creature with the goal to see how deep into the dungeon you can go. As you progress, you unlock power ups that improve your bullets, allowing you get get further within the dungeon.
Skills I Used
- Java Programming
- Game Design
- Level Design
- 2D Art
- UI Design
- Usability
- Debugging
Tools I Used
- JavaFX
- Pixlr
Project Media
Gameplay Demo — Gameplay footage demonstrating Eternal Labyrinth
Component-Based Game Engine
In Eternal Labyrinth, I had to create my own game engine on top of the JavaFX graphics library, so, I decided to take a component-based approach to the engine design. In Eternal Labyrinth, all classes that are represented in the game world inherit from a base GameObject class that holds a collection of components. Using this approach, I can attack box colliders to platforms on the map, or attach a rigidbody to the bullets to make them move, or attach a image renderer to display a sprite. This approach allowed me to easily setup various objects without much duplicated code.
Game Engine Design — Image showcasing Eternal Labyrinth's game engine design.
Physics Engine
To allow for physics in Eternal Labyrinth, I designed a simplistic physics engine through the use of a specific game component. All physics-based movement that needs to collide with external objects uses the rigidbody component. The rigidbody handles basic momentum and collision reactions.
Enemy AI Demo — Gameplay footage demonstrating Fenris' enemies.



