Academic Project · Mage in the Maze

Mage in the Maze cover

Role

Game Designer, Developer

Context

Individual Project, Academic Project

Timeline

2 weeks

Tools

p5.js, JavaScript

Context

This project focuses on creating a tile-based game using p5.js, where players navigate a maze to avoid enemies, collect points to win, and unlock doors using keys. Additional mechanics include cutting trees to access keys and strategic exploration within a dynamic environment.

Mage in the Maze gameplay

Process

The process began with a simple idea of finding a character and designing an environment that complements its theme. Using p5.js, I developed the game world and uploaded multiple sprite images to create smooth character and enemy animations, enhancing the gameplay experience.

Character and enemy animation

One of the biggest challenges in this project was implementing collision detection for multiple game elements. I began by solving player and enemy collisions by using bounding box logic, where if the player’s coordinates overlapped with an enemy’s hitbox, health would decrease. Once this was working smoothly, I reused and modified the logic to handle collisions with doors (to prevent passage without keys), trees (to block movement unless cut), and projectiles (to trigger damage or interactions). This modular approach made the system easier to manage and ensured consistent behavior across all interactive elements in the game.

Collision and hazard interactions

Final Product

Final gameplay preview

Reflection

The game was fully playable and tested by classmates, who gave helpful feedback on the controls, design, and game mechanics. Many liked the key-door system and tree-cutting feature. I used their feedback to adjust the difficulty and make interactions feel clearer. This project helped me learn how to solve problems creatively and improve designs based on what players need, which I can use in future game or interactive projects.

Let's Build Together!

Let's collaborate on creating unique designs and functional websites. Reach out to discuss how I can contribute to your team and help bring your ideas to life.

Let's Connect