Game

Dungeon Life

Software Used

Unity3D, Visual Studio, Xcode, Adobe Photoshop, Trello, TortoiseGit, SourceTree, GooglePlay Store, TestFlight

Language(s) Used

C#

What is it?

Dungeon Life is a mobile, AI-driven, loot grind, dungeon crawler at the base level. In the game, the player will enter a dungeon to fight floors of monsters and infinitely continue down deeper and deeper into the dungeon. As the player fights monsters, they will gain various loot forms such as weapons, armor, gold, and more. In the event that the player is defeated by monsters or willingly chooses to exit the dungeon, the player is brought to a small settlement in which they are able to spend gold on various services that will eventually allow them to delve deeper into the dungeon. Some of these services include upgrading weapons & armor, unlocking and enhancing magic skills, and even purchasing and upgrading different shops and buildings to turn their small settlement into a full-blown town.

Comparison to similar products

The primary comparison used throughout the design and development process of the project thus far has primarily been Nonstop Knight 2 along with other titles such as The Mighty Quest for Epic Loot. Having been a fan of Nonstop Knight 2 and similar titles for quite some time, I came up with two main improvements from standard titles in the genre and base Dungeon Life around them.

Improvment 1 (Over-Monetization): The absolute most challenging part of continuing to play Nonstop Knight 2 for me was how much of the game was truly pushed behind the monetization methods. Although I completely understand the incentives to do so and respect how FlareGames was able to tie the process in as seamlessly as they did, I found it very difficult while on a college budget to keep up with what was happening. This factor led to me deciding to create Dungeon Life and even create Happy Games LLC as a game company that focuses specifically on non-predatory monetization practices.

Improvment 2 (Lack of End Game Content): Aside from monetization, another large issue I had with Nonstop Knight 2 was the lack of real end game content. The game progresses where you play the same ten levels through 3 difficulties, each giving better gear, then once you beat the last stage on the toughest difficulty, it ends. They have events such as weekly tournaments and such as well; however, a majority of it is considerably 'pay to win' in that if you don't upgrade your items far beyond the max regular drop rate that very week you will not be able to do much. This is due to the tournaments being weekly and requiring new items for each tournament. To solve this issue, I decided to make the dungeon infinitely scaling. The player will ALWAYS be able to improve their gear further, find new higher level gear, and delve deeper into the dungeon.

The Idea

Being an avid fan of the "loot grind dungeon crawler" genre of gaming and wanting to spend time learning about AI in Unity, it was relatively easy for me to develop the original concept for Dungeon Life. After consulting with a few colleagues and pitching multiple ideas regarding systems and overall game loop mechanics, I had settled on creating an infinite 'cookie click style' ai-driven dungeon crawler with an emphasis on loot grinding. However, I also have kept in an idea regarding a small town-sim game in which the player can build and expand their settlement into an actual town to fit with a future game I have planned for more traditional consoles instead of mobile.

Design and Documentation

With Dungeon Life I wanted to keep track of progress accurately and flesh out ideas regarding game design/development. To do this, I utilized tools such as draw.io for diagramming, Trello for keeping track of my backlog and sort ideas, and TortoiseGit (along with SourceTree) to handle versioning and keep my project following GitFlow methodology.

Here is an early diagram of the initial Dungeon Life concept game loop:

Flow Chart

Research & Development

One of my top priorities throughout any project I work on is to make sure any system implemented, or graphic I designed is up to 'studio-grade quality.' Because of this fact, most of the time spent with my projects comes down to researching as much as I possibly can to keep up to date with industry standards. After actually beginning the development phase of my project, I quickly realized that due to the project's scale, I would need to go back and rethink a fair amount of my systems to have it work properly. One of the most important features I realized I needed to account for was dynamic scalability. Due to the nature of the game, it was evident that I needed this game to be able to be played by any amount of people playing with any amount of consistency. That meant making nearly every aspect of the game, something that would be handled no matter how many times somebody did it. It also meant coming up with a game loop utilizing standard industry practices that would allow the player not to get bored quickly with the game's functionality.

Key Features of Dungeon Life

Key System based Looting: The most crucial part, in my opinion, in regards to making a mobile game with infinite progression, is thinking of a way to prevent traditional 'player grinding.' In my own experience, I've had the best success in always planning a game loop based around the idea that someone somewhere will continuously play the game consistently for the rest of time without a break. Although this may seem extreme, it leads to an interesting problem to answer that is "How can I keep that person entertained in some capacity?". The answer I utilized for Dungeon Life was what I've found to be a growing standard in the mobile game industry, an 'Energy Bar.' The concept behind it is that a player who plays consistently can only perform tasks so long as their 'energy bar' is not empty. Once the player performs X tasks, they run out of energy and commonly is given a timer until their energy refills. This is the concept I decided to base Dungeon Life's loot rewards on. A player starts with ten keys; after completing a dungeon floor, a player will use one key to open a loot chest that they decide and is given loot that includes a weapon or piece of armor. After the player uses a key, they will see the key count go down and will be able to view a small prompt that tells them how long they have until they get another key back (In this case, after 30 min). Suppose the player continues playing and goes through all ten keys, ending with completing a floor without a key. Instead of not rewarding the player, the player is given loot but at a significantly reduced value and without the chance of finding a new weapon or armor piece. This allows for traditional grinding to occur while also rewarding players who pace how often they play and maximizing value by having them return to the game rather than just play it for a long session and stop altogether.

Easily Expandable Content: In my more recent development efforts, I have clearly understood the importance of expandability and scalability in content. For this reason, the backend of Dungeon Life's content has been made as 'Generic' as possible to allow for near-instant expansion of content. All content, including weapons, skills, enemies, pets, transmogs, and even dungeon maps themselves, are set up in a way that can easily be added to and expanded. By setting up the backend this way (primarily through scriptable objects), I quickly integrated multiple extra asset packs into the project to expand the weapon and enemy list numerous times throughout various project points. These systems are all set up so that someone with no development experience and minimal Unity experience can bring in a 3D model and make it a weapon fully integrated within 5 minutes. The only exception to that, however, is the skill system, which, although configuring the integration is as simple, requires the coding of custom functionality for that specific skill.

Never Ending Progression: Scalability for Dungeon Life has easily been the most challenging part of the entire development process. Due to Dungeon Life being 'infinite' in how far a player can progress, I needed to separate all stat based information and methodology into one place to be easily adjusted in the future. At the moment, this current system is in a script in the actual project. However, it has been set up so that I may eventually put that methodology onto a server and have the player receive those stat based answers via the server instead of locally. This was done for two reasons: 1. Allow me to update and balance different game statistics without pushing a new update to the game out. 2. Prevent users from 'hacking' the game and changing the local statistics to improve their stats or decrease enemy stats.

When can I play it?

Right now! Dungeon Life is currently available to be played in beta on both iOS & Android devices! If you would like to try out the currently available open beta build, please feel free to select 'Play on Android' or 'Play on iOS' below!

Play on Android Play on iOS Back