Eternal Labyrinth
Custom EngineJavaSolo

Eternal Labyrinth

2022
← Back to Projects

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.