Minute Dungeon

Inspiration

The project is inspired largely by film, as I am double majoring in both Computer Science and Film & Media Studies, and I feel that one of the best foundations for a game is cinema. For Minute Dungeon I drew upon several influences in Irish film history, as that is an area I am particularly fascinated by. Originally the project was more inspired by Irish cinema, with my early ideas leaning on the landscapes seen in films like The Quiet Man (1952) and The Field (1990). However, as work progressed and the dungeon idea emerged, I focussed more instead on film-noir and Japanese cinema for my visual inspirations. Films from directors like Akira Kurosawa often had these muted color palettes (most his works were black-and-white era films) while still being punchy through contrast and shape and conveying the action of his films. I used a mostly-monochromatic (shades of grey) palette for the dungeon, but accented it with strong tones of gold and red for key elements of the game and user interface.

The Project

Minute Dungeon is a casual platformer game but with a unique twist - each run of the dungeon only lasts 60 seconds before the player is kicked out by some unknown force of magic. And, every single run has a different procedurally-generated dungeon to explore. This leads to a unique gameplay loop akin to a very compressed roguelite game, as the loot the player earns can be immediately re-invested within minutes. It also results in an interesting juxtaposition, as you can choose to either focus on individual rooms to clear out all the pots and crates and enemies, earning a lot of gold, or you can speedrun through each room trying to discover the secrets hidden within the dungeons.

How I Built It

Minute Dungeon was built with the Unity3D game engine and written in C#. I used a recent release of Unity to have access to a variety of important tools I used throughout the project such as ShaderGraph, Cinemachine, Post Processing v3, and more. Despite the time-crunch of a hackathon, I did my best to maintain a clean codebase and make use of best practices for structuring both the project and the actual architecture of the code. One key technique for this was modularizing my data structures so that I could experiment and iterate on changes quickly. The entire dungeon generation algorithm, for instance, has its parameters stored in a serializable object that can be very easily modified. This let me seamlessly swap things like border width, tunnel height, and even the list of entities that can be spawned during generation. The player data is similarly structured so that I can easily update the speed or amount of jumps (used in the skill tree upgrade system).

How I Designed It

Over the course of the weekend I not only developed the game but also did all the graphics and animation assets. Everything in the game, in fact, besides the music and sound effects, was created by me. For the pixel art sprites I used a combination of Photoshop and Aseprite, with the latter being used primarily for the animation spritesheets. The visuals were designed with the goal of having the sprites be lit within Unity, so I often stayed in shades of grey and brown/amber which would blend together well with lighting effects. Within Unity I performed a ton of post-processing to get a more "cinematic" look, as I was taking inspiration from a lot of films (not just Irish film but also early Japanese works and some film noir). The post-processing included a lot of curves and color adjustments, vignette, bloom, and even film grain. This really brought the visual identity of the project together.

Challenges & Complications

Managing scope is always hard during time-constrained projects, and this hackathon was no different. At the start of the event I came up with so many ideas for the projet, and in the initial hours of development I split my time a lot of different directions - too many directions. Narrowing in on the specific elements needed to solidify the core game loop was key, as without it there wouldn't have been a project to submit. I also found that it was tough to balance development of features with time spent on design and visual aesthetic. While new features sound great in theory and were intuitively what I kept pursuing, once the core features were done it actually made more sense to refine existing ones and invest time in less technical, more design-focussed work. One other challenge was procedurally generating the rooms in a way that wasn't boring but also was still always solvable - no blocked entrances or exits without platforms leading to them.

Accomplishments

Over the course of making this game I did a lot of really cool stuff!

  • Created my first iOS app! This was definitely tricky to figure out and get configured properly, but it opens a whole new realm of possibilities when it comes to game design.
  • Created a procedurally generated dungeon of interconnected rooms that are populated with all sorts of tricks and treats
  • Developed a character controller that is expandable and has good game-feel to it
  • Learned more about animating pixel art
  • Made a cohesive project with a strong visual identity
  • Learned about multi-platform development and input systems across keyboard and mobile

Lessons Learned

  • For projects targetting iOS, make sure to build to it early and often to identify issues
  • Adding "juice" (like particle effects, post-processing, good sound design, etc.) can take a simple concept from boring to enjoyable

What's Next for Minute Dungeon?

I have a ton of ideas for ways to expand the game, and I do plan on continuing its development in the future. First and foremost is more types of dungeon rooms besides the large, rectangular chambers that have platforms across. These could include more enemy-heavy fighting rooms, tunnel rooms with obstacles, or even special rooms that permeate the magic of the dungeon and offer some sort of temporal refuge. Another big area of development is the skill tree, along with an item system. While right exploring the dungeon just yields gold, imagine if instead enemies could (rarely) drop powerful swords or armor for you to equip on your next run. The skill tree, seen a little in the demo version, would be much more vast and contain abilities for improving speed, jumping, damage, and then more exciting traits like wall jumping, dashing, breaking through barriers, and more. Beyond those goals I hope to just keep refining the core procedural generation system to have even more ways of making each room (and therefore each dungeon run) unique and interesting for the player.

Built With

  • c#
  • procedural-generation
  • shadergraph
  • unity
Share this project:

Updates