Details:
Genre
Rouge-Like Dungeon Crawler, Action, Adventure
Platform
Desktop
Story
The player must make their way through a procedurally generated, maze-like dungeon while avoiding monsters. Survive for as long as possible and collect as many gems as you can!
Aesthetics
I'm aiming for a more retro look. Dungeons will be a semi-randomly laid out grid, and the player character, monsters, and enemies will hopefully be pixel-art style sprites. Sounds will be 8-bit with ambient background music. The background music might change depending on the which level the player is in.
Gameplay
The gameplay will be mostly self-explanatory. The player will be told basic controls, such as moving and attacking. I plan on having crates scattered around that could contain either bombs or gems. The player can choose to attack with a melee attack or throw a bomb. Bombs will be more effective in attacking monsters. The player will be told how to move, attack, and how to switch attack modes (between melee and bombs).
Mockups


Other
Currently, the only external library I plan to use is PixiJS. Assets will most likely be sourced from online, open-source resources.
About Me
My name is Nicholas Shaffer, and I am currently in my first year of studying Game Design and Development at RIT. Prior to RIT, I earned a BA in Computer Science from the University at Buffalo in 2020. I enjoy the more technical aspects of game design and have thus far found myself more drawn to the "Development" side of Game Design and Development. I have experience with C#, C++, JavaScript, and Java, as well as both Unity and Blender.
Documentation
Goal
The goal of this project was to create a game from scratch using PixiJS. The game I created for this project is a dungeon crawler in which you must collect gems and avoid enemies while making your way through a maze-like dungeon. As you progress from level to level, more enemies will spawn, and the maze will become bigger.
Design Process
My design process was to focus on the functionality first and aesthetics second. I first turned my attention towards generating rooms that would connect in a maze-like pattern. After I figured that out, I focused on getting the different elements spawned into each room of the dungeon. These elements include crates, exits, and enemies. Next, I focused on creating rooms that were more varied, and then on enemies that could move throughout these rooms. Once I finished this, I focused my attention on the GUI and the collisions that would affect the values displayed, such as health, number of gems, and level. One of the last things I did before turning my attention towards implementing sprites for my objects was giving the player the ability to attack crates and enemies. Once I figured this out, I spent some time creating a couple of my own sprites, as well as finding others that I was unable to create myself. My final task was to add music and sound effects to my game.
Sources
- Sprite Creation: https://www.pixilart.com/
- Other sprites not created by me: https://0x72.itch.io/dungeontileset-ii
- Sounds: https://freesound.org/
- Fonts: https://fonts.google.com/
NOTE: All assets not created by me are available under the Creative Commons 0 License and are completely free to use and share.
TODO
- I wasn't quite able to get my textures mapped properly to the dungeon, I would like to fix this in the future.
- I would also like to implement some functionality to have the player be able to through some sort of projectile. My initial plan was to give the player bombs, but I was also unable to implement this feature.
- I would like to implement a feature where enemies begin to track the player and chase them if they get too close.
- I would also like to add some variation to the levels. One of my original plans for this project was to have some levels that were in the dark, giving the player a smaller field of view with which to navigate and see enemies.
Notes
- I'm not too proud of where this current version of my project is aesthetically, but the functionality is all there. I definitely plan to improve upon it once my submission has been graded.