Beruflich Dokumente
Kultur Dokumente
Hunter L. Mason
Executive Summary
Today’s video game industry is a much different market than it was a couple of decades
ago. With many of the larger companies trying to develop the most profitable game genres and
innovative marketing techniques, they often sacrifice essential game design steps or intentionally
From the Dregs is a single player, fantasy themed, tactical role-playing game that
emphasizes player strategy, careful planning, and exploration. Players are able to create a unique
character and delve through various dungeons, caverns, and other hostile environments to gather
loot, battle enemies, and enhance their character’s abilities to fit their own playstyle.
Community has been extremely important to this project’s design, and player feedback
was gathered throughout the design process for review. During the initial development cycle,
content was added for select players to test out so that necessary changes could be made before
public builds were released. After the initial release, regular content updates will add new
Table of Contents
Part I 4
Introduction 4
Description 4
Goals 5
Objectives 6
Tactics-style combat. 6
Equipment and consumables. 7
Randomly generated levels. 7
Character progression and trading. 7
Persistence and character death. 8
Environmental Scan 8
Stakeholders and Community 10
Part II 11
Final Deliverables 11
Approach 12
Ethical Considerations 14
Legal Considerations 15
Part III 16
Budget 16
Milestones 16
Usability Testing and Evaluation 17
Final Implementation 18
Software and Tools 18
Anatomy of a Level 20
Movement and Combat 25
Enemy AI 25
Items, Equipment, Progression, and Trading 28
Spells 29
Discussion 33
Conclusion 34
Team Members 35
References 35
FROM THE DREGS 4
Part I
Introduction
A tactical role-playing game (TRPG) is a subgenre of the very popular role-playing game
(RPG) that also uses strategic elements to complement traditional RPG gameplay elements.
From the Dregs is a TRPG in which the player can create a unique character, set off on an
adventure, battle monsters, collect treasure, solve puzzles, and be rewarded for overcoming
difficult tasks. It focuses heavily on strategy, character progression, and a gameplay loop that is
easy to learn. From the Dregs has been in development over the last few months with massive
inspiration from games of all different genres and there are likely others that will enjoy a game
that combines all of these design elements. While some of the systems in this project may be
similar to systems within other successful games, I’m confident that no game so far has
Description
The first iteration of From the Dregs was a concept I thought of a few years back when
creating a prototype for a turn-based game with very simple mechanics and enemy artificial
intelligence (AI). Since then, the game has gone through three other iterations, the first of those
was a game written in the Java programming language that I abstracted from the original design.
FROM THE DREGS 5
It was far from polished, but there was a full game loop where players could battle monsters and
enhance their character’s limited abilities within a small rectangular room. This project was
submitted as my final project for my Software Design course which I took in spring of 2018.
On the second of these iterations, I improved on the game’s overall optimization and
leaderboard system hosted on a cloud database so that players could compete for the highest
score. During a test with a small number of individuals I found that even at this early stage in
development players would enjoy replaying the game and challenging others for high scores
Goals
In the past decade or so, the game industry has become somewhat stagnant in my opinion
with many of the larger companies competing for the top spot by using morally questionable
marketing techniques and nearly all of them attempting to appeal to the majority. This is a
glaring issue because while the majority does enjoy the content produced, there is still a smaller
community of all ages that would like to see more games that favor gameplay, replayability, and
a generally unique design over expensive assets, extensive marketing, and the use of loot boxes.
Likewise, this project aims to have great replay value, each time it’s played it should feel a little
This project reinforces the idea that it’s possible to create a well designed game with a
small team or even a solo developed, a limited budget and minimal resources. It’s important for
the long-term health of the game industry to create smaller and more focused projects that appeal
FROM THE DREGS 6
to more than just the masses. There are still plenty of customers that are looking for different
types of games that the larger companies avoid because it’s not currently the most profitable.
From the Dregs is designed for entertainment and while there are many forms of
entertainment, games are able to engage the user both physically and mentally which is unique
and something that other media cannot provide. Because of this, I believe video games will be a
Objectives
Tactics-style combat.
From the Dregs features a 4-directional grid-based movement system which is designed
to keep gameplay relatively simple to understand. When in combat, the player takes turns
moving and using abilities to fight enemies. Both the player and each enemy are only allowed a
certain number of actions each turn so caution and planning ahead will be rewarded. Enemies
have “telegraphs” that let the player know of their intended action during the next turn. This
mechanic allows for the player to find patterns in enemy attacks, deal with multiple enemies at
once, and generally find the most optimal move for a given situation. Each enemy type has its
own unique set of abilities, behavior, and items. The player can learn how to deal with each type
of enemy by observing the various telegraphs they may have. Rare enemies may have an
unknown telegraph which usually indicates some sort of dangerous ability for the player to watch
out for.
FROM THE DREGS 7
As the player adventures, they will find items such as armor, weapons, potions, and
treasures. Weapons, when equipped will allow the player to use a set of combat abilities, these
are different from their character’s innate abilities and are unique to each weapon. Armor will
generally grant defensive bonuses, but they also sometimes grant the use of unique combat
abilities as well. Various consumable items can be used to recover health in battle, cure poison,
The levels that the player traverses are randomly generated within parameters set for that
given biome. The enemies, items, and appearance of each level will depend on the biome in
which it exists. Players should experience a different overall layout each time they enter or
re-enter that area. To progress to the next level, a player must find a specific key hidden within
the level which can be used to open the lock on the exit door as they may not return the previous
level.
As the player defeats enemies and finds loot throughout the game, they will acquire
currency. This currency can be used at the shop to buy items and even increase the player
character’s attributes. Currency can be acquired by selling unwanted items to a shop. Increasing
attributes determines a character’s combat effectiveness and also what weapons and armor they
can equip. The main attributes are strength, dexterity, intelligence, and constitution. Strength
FROM THE DREGS 8
determines the effectiveness of heavy weapons and armor, dexterity determines the effectiveness
of quick weapons and mobility, intelligence determines the effectiveness of spells, and
constitution represents the player’s maximum health and healing received by spells or
consumables.
When a player is defeated, they will drop all of the currency they are carrying and then be
returned to the starting hub of the game. When the player re-enters the level they were last
defeated, a container hidden in the level will contain the currency that was previously dropped.
Once a player has entered a level, they cannot leave unless they find the exit, are defeated, or use
a potion to return to the starting area. The reason for this mechanic is to encourage players to
make strategic decisions and plan ahead when setting off into the next area of the game. With
limited healing options and knowing that death means the loss of all currency, players should try
to be careful with which enemy encounters they choose to take on and minimize losses during
each engagement. Players who are mindful may notice that there is a potion sold by the vendor in
the starting area that allows them to return to the starting area safely if the player is not in
combat.
Environmental Scan
The largest inspirations for this project were TRPG’s like the Fire Emblem series, though
many design elements were borrowed from games such as Divinity: Original Sin II, Dark Souls,
FROM THE DREGS 9
and Slay the Spire. There are aspects of each of these game series which I think are very well
done and should be expressed more and experimented with, even in other genres.
Slay the Spire is roguelike card game that emphasizes planning ahead and making the
best of a bad situation. Healing in Slay the Sprite is not easy to come across and most of the time
when given the opportunity to heal, the player must choose between upgrading their cards or
healing their character. Choosing healing over upgrading cards can have immediate rewards
because the player may be able to survive the next few encounters, however the long term effects
of choosing healing over upgrading a card will probably not appear until later on when the
player’s cards are too weak to defeat strong enemies. In this way, Slay the Spire encourages
One aspect in particular that is extremely important in Slay the Spire is the fact that when
the player is in combat with enemies, icons will appear above each of them that indicates what
they will try to do on their next turn. This way the player can make an educated decision on how
to handle the situation in the most efficient way possible. Sometimes this doesn’t always work
out, but when it does there is something extremely rewarding about a plan coming together.
Desctructoid author Marzano describes the gameplay of Slay the Spire, “There's just the right
amount of strategy and luck involved where it keeps you on your toes” (Marzano, 2019). I plan
to incorporate my own take on this design choice in my project because I believe it’s less
Dark Souls is an action role-playing game in a dark fantasy themed world that focuses
heavily on has amazing level design and interesting enemy encounters. While it’s common for
this game to be labeled as a difficult game, that’s not entirely true and the reason for it seeming
FROM THE DREGS 10
overly-difficult at times is usually due to lack of patience and willingness to learn how each
encounter works. Fextralife author unclebartek explains how Dark Souls is actually a learning
experience and an exercise in patience, “From Software’s sublime game design strategy makes a
point to reward methodical play as opposed to demanding pure skill. None of the core mechanics
demand physical dexterity; they simply demand patience” (unclebartek, 2016). Every enemy has
a set number of moves it can do and after observing and learning the possible attacks they can
use, it becomes much easier to handle the encounter and doing so will probably feel very
rewarding. It’s important for games to nudge players in the right direction and give them the
tools to succeed, but then let them try different things to see what works and what doesn’t.
The main stakeholders in this project were the end users and the community as a whole.
For this reason, it was very important that information about the project’s development was as
transparent as possible and user feedback was crucial. During the development cycle, a small
focus group of players were be able to play a smaller level and then fill out a Google form which
I collected feedback from. Additionally, a few select players were asked to either record
themselves playing the game, or join a video conference while as they play through the various
test levels. Having a history of what a player did when they first started playing the game was
extremely important feedback. It allowed for any major issues to be fixed before the project’s
release. The results showed players having trouble navigating the UI or figuring out how to use
certain items, which was an indication that they should be redesigned in a more intuitive way.
Players didn’t need to be explicitly shown or told how to do everything in the game, but after the
FROM THE DREGS 11
first test cycle I thought it was necessary to create a play guide for users who wanted a more
Part II
Final Deliverables
The final deliverables for this project will include the game client, a launcher for the
game which will handle any updates and installation, documentation of the game’s code, and a
website where all of this can be accessed. While the project could be completed with just the
game client itself, having a platform where players can continue to see update information is
very important for testing and growing a player-base and long term growth of this game will
greatly benefit from having a hub dedicated to it. Looking into the future, a Wiki dedicated to the
game would be very useful and if time allows, this is an additional feature that both players and
The official website is not only a means for accessing the game, it also contains many
other resources that are relevant to players. The website includes a history of all game client
updates, a play guide where players can learn about how the game mechanics work, a section
where they can fill out a survey and leave feedback regarding the current state of the game, a full
documentation of the game’s code, and a page containing information about the game along with
the beta release trailer. These resources need to be accessible by the testers which is why such a
robust website was required. The launcher installation instructions and the play guide in
particular are very important for allowing players to get the game set up and be able to play in
FROM THE DREGS 12
just a few minutes of reading and following visual guides. The play guide is also accessible from
The game launcher automatically checks for updates each time it is run, allowing testers
to play and leave feedback on the most recent build of the game. This feature, much like the
website, was necessary to make testing as easy as possible for testers and eventually players.
Approach
Many of the objectives in this project were completed before the start of the course since
the total development cycle goes back a few months. The following is what was planned for the
eight week development cycle during the capstone course. The Agile approach was used heavily
to complete this project, with each of the sprints lasting a week. A Pivotal Tracker page was
created for organizing each sprint’s features, bugs, and other ideas that could be added at a later
time. The first, third, and fifth sprints were used to add new features and essential gameplay
elements. At the end of those sprints, players were able to test the game and leave feedback.
During the second, fourth, and sixth sprints, most of the development time was spent analyzing
player feedback and making adjustments to current systems as needed. New features took the
form of content such as new enemy types, additional spells, new items, and more level templates
for the randomizer. The approach taken over the eight weeks of development during the capstone
1. Design the first public test level. The level showcases the game’s features and is
intentionally more difficult. The reason for this is to amplify any issues with
2. Gather player feedback. This marks the first round of player testing, players leave
3. Make changes to test level emphasizing new features such as consumable items to
make the level easier, reducing enemy health and spawn rates. Fix bugs
discovered in week 2.
5. Add new features such as a new starting class. Make changes to the dungeon
6. Gather and analyze player feedback. Add new dungeon objects like healing
fountains.
7. Add new features such as character creator randomizer, more level variation. Fix
8. Clean up source code and documentation. Polish the UI interactions. Fix bugs
discovered in week 7.
FROM THE DREGS 14
Ethical Considerations
From the Dregs will be free for download upon completion of the capstone course. This
does not mean that the final version of From the Dregs will be free, and depending on the
community’s reception, this project may eventually require funding in which case the funding
would go towards adding more features. In late summer of this year, I will begin reaching out to
various publishers, investors, and fans of the project for funding. While the goal is to reach a
large amount of players, the initial price of the project may not be able to stay free. In the case
that this happens, I would like to keep the initial price of the game to a minimum so players
around the world can have access, but still allow myself the resources to keep creating future
updates. If the game turns out to be free, then additional updates will most likely have a fee,
however, if the game has an upfront cost, then the additional updates will probably be free. This
project will never utilize a microtransaction store or randomized rewards in exchange for real
From the Dregs currently runs with minimal requirements for a video game and as the
project expands, I would like to keep requirements to a minimum so that many players can
experience it. While only the Windows operating system is supported for ease of development,
there are plans for a Linux and Mac release as well as in the later future, iOS and Android.
Mobile games don’t have the best reputation in terms of marketing and for this reason, the two
latter platforms will still follow the same marketing model as the other platforms. Just because a
game is on a mobile device doesn’t make it any more ethical to inject predatory marketing tactics
such as loot boxes and microtransactions; From the Dregs will steer clear of these marketing
trends.
FROM THE DREGS 15
There are no plans for remote storage of user data and currently all user data is stored on
the machine running the client, however a leaderboard may eventually be added to the game
which will require the remote storage of user data. In the case that a leaderboard feature is added,
user data will be stored as securely as possible in a way where only the owner of the data will
have access and any user data stored on remote servers will be encrypted. The privacy of a user’s
Legal Considerations
All image assets used in From the Dregs are either created by myself or are royalty free
assets I’ve purchased. All code used in From the Dregs was created by myself, this will only
change in the case where the project receives additional funding, some features may be
The primary font face used in this project is Roboto Condensed designed by Christian
Robertson, and it available under the Apache License. The documentation for From the Dregs is
was generated using Doxygen, created by Dimitri van Heesch and is available under the GNU
The project is being developed using the Unity game engine with the Personal Edition
which states that this project can be sold commercially as long as it does not receive $100,000 or
more combined annual revenue and funding. Receiving this amount of annual funding or revenue
are extremely unlikely, but in the case where annual funding or revenue exceeds $100,000 the
Unity plan will be upgraded to the Plus plan which allows a maximum of $200,000 annual. The
FROM THE DREGS 16
official project website was created using GitHub Pages, using a modified version of the free
Part III
Budget
One of the goals of this project is to create a fun game with limited resources, money is
one of these resources and it will be carefully budgeted. So far, all software used is free except
for the Unity engine which only becomes a paid subscription if the project beings making over
$100,000 annual. The assets were almost all created for free except for some of the scenery and
character images, these were paid for and are royalty free. Looking further into development, if
the game receives funding the money will be carefully budgeted into improving the overall
quality of the project. This means more ambitious features, a full soundtrack, cleaner animations,
and more. As of now, there isn’t a whole lot of resources that need to be taken into account for
budget aside from time, this resources is covered in more detail below.
Milestones
The following are the original weekly milestones for the eight week process.
5. Release a stable Windows version and host the download on the project website.
Below are a list of the actual milestones achieved by the end of the capstone course.
2. A playable dungeon was added for players to test. The first iteration of the test
3. Both the Mage and the Rogue starting classes were added. Each have two
4. A full-scale dungeon was created by adding to the existing test dungeon and
adding a boss enemy at the final level. This dungeon has 4 floors in total and can
5. A stable windows build was uploaded to the project website with a launcher
attached. This game launcher will automatically update the client when there is a
6. The full documentation for the game client is available on the project website.
Usability testing is one of the most important elements of this project’s development.
Testers will work closely with the developer and provide feedback through audio, video, and
surveys after each test cycle. To make this as easy as possible for testers, the landing website will
FROM THE DREGS 18
include a section for sign-ups and upon completion, testers will be added to a mailing list so that
they can be notified when a new version of the game is available. Additionally, there is an
installation guide on the website that includes images and a text tutorial on how to install the
game launcher. The game launcher handles all updating and will retrieve the latest build once it
has been published. The latest updates can also be viewed on the website in text format on the
patch notes page that contains an entire history of all updates made to the game client.
During each test cycle a new survey is added to the website for users to fill out after
completing their test session. Each survey will have questions regarding the latest build of the
game so changes that need to be made during the next cycle can be documented and then acted
upon. All testers are encouraged to complete a survey, but some testers can opt into sharing their
experience through a video recording or screen-share service. This extra information is very
useful because it allows a developer to see how people are playing the game, what choices are
Final Implementation
The client itself was developed using the base Unity engine without any additional Unity
Store add-ons. All code was written in the C# programming language using the Visual Studio
Code editor created by Microsoft. To streamline the programming process, I used the C# plugin
created by Microsoft, and the Unity Snippets plugin created by Ycleptic Studios. I chose to use
Visual Studio Code because it’s a fast and lightweight editor when compared to Visual Studio.
FROM THE DREGS 19
For a project of this scale which features less than 50 scripts, and a total of less than 20MB of
Game assets such as unit data and item data are stored in a JavaScript Object Notation
(JSON) database organized and generated by a tool called CastleDB, created by Nicaolas
Cannasse. I use CastleDB to keep track of the many unit and item variants, while being able to
visualize them in a spreadsheet format. The database is then loaded into Unity when the client is
started, and deserialized from JSON to the various class types I’ve created. The tool used for
JSON deserialization is Json.NET, a high performance JSON framework for .NET created by
Newtonsoft.
The image assets are part of the Ultimate Fantasy Tileset created by Oryx Design Lab,
though many of the image assets used were heavily modified or created on my own. To modify
and create new image assets for the project, the primary software used was a simple image editor
called Paint.NET, created by Rick Brewster. All sound assets were created using sfxr, a sound
effect creation tool by Tomas Pettersson. Image assets are loaded into the game upon starting the
client, and utilize Unity’s Scriptable Objects which are essentially data containers that can be
Upon starting the game, a player can either create a new character or load an existing one.
When creating a new character, players may choose from various customization options that
change the appearance of their character. They may also name their character and select from
one of three starting classes; Warrior, Rogue, or Mage. Each class starts with its own set of
weapons, but players can change equipment or their character’s attributes later in the game.
Upon starting a new game, the newly created character is saved with any other character in a
FROM THE DREGS 20
serialized file that can be loaded later on. If the player decides to load an existing character, the
list of available characters will be shown from the save file containing all characters that they
Anatomy of a Level
Each level within the game is comprised of tiles, which are objects that hold references to
other objects such as units, decorations, and terrain. Each tile has a reference to a single base
unit, base decoration, and base terrain object, which are essentially data containers. Tiles also
have references to a single unit behaviour, decoration behaviour, and terrain behaviour object
Figure 1. Anatomy of a tile. This figure displays the composition of a tile object and how a level
is comprised of tiles.
Behaviour objects are used to manipulate base objects, but are expensive to use because
they are derived from Unity’s MonoBehaviour objects. For this reason I utilize a custom object
pool pattern which only allows around 121 of these behaviours to be on each level. Even though
levels have hundreds, sometimes thousands of tiles, only 121 behaviours will ever be active so
the performance for a small level is consistent with that of a large level. The area where these
behaviour objects are active is called the “render zone” and as the player moves, the render zone
FROM THE DREGS 22
moves with them. Behaviours each have a reference to a corresponding base object of the same
type, and as the render zone moves, the reference to these changes depending on the tile
rendered.
Levels in From the Dregs are mostly randomized, though they do have some structure. I
achieved this by creating what I call “chunks” which are predefined segments of the level.
Currently there are over 70 different chunks for the randomizer to choose from, but that doesn’t
mean that they can all be used at any given time (see Figure 2).
FROM THE DREGS 23
Figure 2. Chunk template and variant. This diagram shows a template for a chunk that has two
open sides and two closed sides. The variant on the right is created based on the parameters of
the chunk template, but has additional features such as container and enemy spawns.
Chunks are separated into 16 different categories which are defined by whether they can
have adjacent chunks or not. The reason for 16 types is because chunks are square-shaped, and
each side can either be open or closed. Chunk variants have to follow a set of rules in order to
work correctly within the randomizer. They must have the same open and closed sides as their
chunk type, there needs to be a traversable path from one open side to all other open sides, and
there must be a single entrance or exit spawn. Additionally, chunk variants can have anywhere
When a level is created, the randomizer first defines a path on a 2-dimensional plane that
has a start and an endpoint. The path begins on the start node and traverses adjacent nodes until it
finds the end node, flagging nodes it passes through along the way (see Figure 3).
FROM THE DREGS 24
Figure 3. Level node path. A path of nodes from the start of the level to the end.
All flagged nodes are converted into chunks, and the type of chunk depends on the adjacent
nodes. From here, the chunks are turned into a group of tiles spanning 16 tiles wide and 16 tiles
high, as each pixel in the chunk represents a tile. Then depending on the color of each pixel in
the chunk, the corresponding tile inherits the defined attributes. Green pixels denote that the
terrain of that tile will be a floor, and units may walk on it. Black pixels denote that the terrain of
that tile will be a wall, and the units may not walk on it. Red pixels are a possible spawn points
for enemies, the chance of an enemy and the type that is spawned depends on the difficulty and
FROM THE DREGS 25
the location of the level. Yellow pixels are possible spawn points for containers which can
contain loot, and blue pixels are entrance and exit locations, though only the chunks at the start
Movement and combat actions in From the Dregs are governed by a “turn queue” that
determines the order in which each unit is allowed to execute their turn. While outside of
combat, the player may move freely without penalty. Moving too close to any enemy will alert
enemies and combat will begin. In combat, Essence is the resource that is used to move and cast
spells. Essence is regenerated at the beginning of each unit’s turn and is determined by the
Wisdom attribute. Moving to an adjacent tile always costs a single Essence, while the cost of
casting spells may vary. The turn queue is just a simple priority queue, and units that have been
in the queue longer gain increased priority. At the beginning of a unit’s turn, statuses such as
Bleed, Poison, and Stun are calculated. At the end of a unit’s turn additional effects such as Auto
Block are calculated. Once they are able to complete their turn, the unit is added to the back of
the queue and must wait for other units to complete their turns. Upon the death of a unit, all turns
associated with that unit are immediately removed from the queue. If all enemy units are
defeated, combat ends and the player is able to move freely again.
Enemy AI
In combat, players are free to move and cast spells how they want, but enemies have
fixed attack patterns. Observation of each enemy’s movement and attack patterns will reward
FROM THE DREGS 26
patient players. Generally enemies will try to take the shortest path to their destination, which is
often the player. To do this, I used a variation of the A* search algorithm to create a path to the
nearest target, if the path cannot be found or if the path is too long the unit will wait for a better
opportunity. In many ways an enemy’s moveset is what defines them, and each enemy in From
the Dregs has a unique moveset. To create a moveset, first any spells that we want the enemy to
have are added to a list collection, then an 2-dimensional array of integers are defined for the
order in which each spell should be cast and how many times it should be cast. For example, if
we look at a basic enemy like the Widowling (see Figure 4), it has the spells Bite, Poison Fang,
and Block.
Figure 4. Widowling Moveset Code. This figure shows the spells available to a Widowling and
The moveset would be as follows: Bite, Poison Fang, Bite x2, Poison Fang, Block. The
starting index of each moveset is randomized when the enemy is created so that even enemies of
the same type will have some variance. The pattern remains the same, but the point at which the
pattern is started is random within a fixed range. For a Widowling, the first spell can be
anywhere from index 0 to index 2, in this case that means it’s first spell will either be Bite,
Poison Fang, or Bite x2. From here, the index of the pattern will move forward each turn. When
the pattern ends, it will loop back to the first index and repeat.
The reason for choosing moveset patterns for enemies rather than having them react to
each unique situation differently to find the most optimal turn, is because it’s easier for players to
learn. Complexity isn’t always what makes gameplay more fluid, and in this case I believe that
players should be rewarded for evaluating a situation correctly, all of the tools required for them
to defeat enemies are given. Rather than the player making a guess at what they think may
happen, the information is visible in the form of telegraphs and moveset patterns, and part of the
game is learning those. Additionally, I think it’s very important to eliminate most output
randomness when creating a tactics game. Keith Burgun describes the differences between input
and output randomness, “Input Randomness - this type of randomness informs the player before
he makes his decision.” and “ Output randomness is noise injected between the player's decision
and the outcome” (Burgun, 2014). Essentially, input randomness feels much better to players
because it gives them a chance to react and make a new decision and rewards player for reacting
correctly. However, output randomness can go either way, sometimes it feels great when it
works out, other times it leaves the player helpless. Situations with bad output randomness can
Through exploration and combat, players will come across various items. When picked
up, these items are stored in their bag which can hold up to 32 items. The bag is at its core a list
of items which acts like a container that can be manipulated by a bag behaviour script. The bag
behaviour script accepts player input and uses various functions within the bag class to
manipulate the items within. A few examples of these functions are buy, sell, take, give, equip,
and consume.
Each item has a different type that determines how it can be used, for example a
consumable type item can be used by the player which will usually grant a positive result.
Equipment items can be equipped by the player depending on the type of equipment it is. Players
can only wear one of each equipment type at a time, and as a general rule, armor grants passive
effects while weapons govern the spells available to a player at any given time. There are no
restrictions on what type of weapons or armor a character can use and it’s
One of the most common items to find is the standard currency called gold, which can be
used to purchase most other items from a merchant. Enemies will often drop gold when defeated,
though there is a chance that they will drop consumable items such as healing potions, or even
equipment. Instead of gaining experience to level up like in most RPGs, From the Dregs uses the
gold currency to progress a character. Merchants will sell Runestones that when purchased
permanently increase the player’s attributes. Each time a Runestone is purchased, the price of the
next Runestone is increased. A spreadsheet was created to map projected attribute values at each
level, then the formula for each attribute was translated into the game’s code (see Figure 5).
FROM THE DREGS 29
Figure 5. Total health attribute function. This figure displays how a unit’s total health is
As a general rule, there are diminishing returns for increasing an attribute past a
threshold, for example the health attribute still gives total health for each level after 30, but on all
levels before 30 it gives a much greater amount. Gold is directly related to character progression
since it can be used to purchase new equipment that will grant new spells, and the spells
Spells
Spells in From the Dregs were one of the more challenging game mechanics to
implement due to their vast range of properties, but it’s the unique combination of properties that
FROM THE DREGS 30
makes each spell different. Spells come in many types and the framework has been created to
support many more spells than exist in the game currently. Slash is a basic spell that can be used
to attack adjacent enemies and deal physical damage based on the caster’s strength, but it still
Figure 6. Spell properties (Slash). This image displays the properties that the Slash spell makes
use of. Each spell has a different set of properties, and Slash is one of the most basic spells.
FROM THE DREGS 32
Slash only has a single effect which is dealing physical damage, a slightly more complex
spell such as Fireball can be cast on distant tiles, does not require a target, and damages all units
that are within the splash radius. While only circular shaped area of effect spells like Fireball and
Whirling Steel are featured currently, there is source code that supports cone and line shaped
spells.
Spells such as Severing Strike apply initial damage just like Slash, but also have a status
effect associated with them called “bleeding”. The bleeding status is checked at the start of a
unit’s turn and in this case it deals damage equal to the duration remaining, then the duration is
decremented. The bleed status is useful against enemies with large amounts of health because as
more bleed is applied, it is added to any existing ones on that unit and the duration of the status is
extended.
Any spell’s properties can be viewed once equipped by hovering the mouse over the spell
hotkey associated with that spell and the “plus” icon in the upper right corner. This displays a
tooltip that contains a description of the spell and most of its properties including how the
player’s attributes are factored into the spell’s potency (see Figure 7).
FROM THE DREGS 33
Figure 7. Spell tooltip (Severing Strike). The figure illustrates a spell tooltip containing useful
information about the associated spell, generated from the spell’s properties.
In this case, the damage dealt to a target will be 12, a bonus of 10 from the player’s equipment,
and a bonus of 2 from the player’s strength attribute. Other useful data such as the type of units
that can be targeted and the range at which they can be targeted are displayed on the left side of
Discussion
From the Dregs has been a massive learning experience. Not only have I applied skills
I’ve learned over the last two years, but I now have a better understanding of time management
and the Agile development process. The Agile development process fit my project well because
I’m currently a solo developer and it allowed be to map out the development in one week sprint
segments. After each sprint, I was able to reflect on what went well and what didn’t in the
previous week. In addition, having a tracker for all the known bugs and features under
FROM THE DREGS 34
development kept the project organized and allowed me to easily prioritize certain features and
Figure 8. From the Dregs development timeline. The figure displays the week that each version
was released over the 8 week development cycle, and what major features came with it.
I would probably use the Agile development process again in the future if working with a
small team because of the flexibility and control available with this process. Adding new stories
to the tracker every day kept things interesting and with each sprint lasting only a week, it was
easy to stay motivated throughout the development cycle as the progress was tangible.
Conclusion
With video games becoming increasingly popular, variety in game genres has begun to
converge as larger companies compete to create the most profitable game. It’s still possible to
create a game on a budget with a small development team. If a solo developer can create a
FROM THE DREGS 35
relatively risk free game, larger development teams should be able to work on many smaller
The development cycle for From the Dregs was only a few months, and during that time
much was learned thanks to the support and feedback of players. Without their hours of testing,
the number of unknown bugs would be huge. Additionally, their feedback has improved the
overall quality of the game immensely, and without that, the game would be far less enjoyable to
play. I’ll also be trying to grow the community and search for funding opportunities so that this
game can reach its full potential. I’ve had a great time developing From the Dregs so far, and
Team Members
Hunter Mason
References
Tactical role-playing game. (2019, April 3). Wikipedia. Retrieved April 6, 2019, from
https://en.wikipedia.org/wiki/Tactical_role-playing_game
Role-playing game. (2019, April 5). Wikipedia. Retrieved April 6, 2019, from
https://en.wikipedia.org/wiki/Role-playing_video_game
Fire Emblem. (2019, March 10). Wikipedia. Retrieved April 6, 2019, from
https://en.wikipedia.org/wiki/Fire_Emblem
FROM THE DREGS 36
Divinity: Original Sin II. (2019, April 5). Wikipedia. Retrieved April 6, 2019, from
https://en.wikipedia.org/wiki/Divinity:_Original_Sin_II
Dark Souls. (2019, April 3). Wikipedia. Retrieved April 6, 2019, from
https://en.wikipedia.org/wiki/Dark_Souls
Slay the Spire. (2019, March 19). Wikipedia. Retrieved April 6, 2019, from
https://en.wikipedia.org/wiki/Slay_the_Spire
Marzano, A. (2019, January 23). Slay the Spire has Left Early Access and it’s Still one of the
https://www.destructoid.com/slay-the-spire-has-left-early-access-and-it-s-still-one-of-the-
best-games-i-ve-played-in-years-539966.phtml
unclebartek. (2016, April 13). Why Dark Souls’ Notorious Difficulty is Largely a Myth.
https://fextralife.com/why-dark-souls-notorious-difficulty-is-largely-a-myth/
https://fonts.google.com/specimen/Roboto+Condensed
FROM THE DREGS 37
Apache Software Foundation. (2004, January). Apache License, Version 2.0. Retrieved June 16,
Heesch, D. (2019, March 24). Doxygen. Retrieved April 16, 2019, from http://www.doxygen.nl/
GNU Project. (1991, June). GNU General Public License, Version 2. Retrieved June 16, 2019,
from https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
https://store.unity.com/compare-plans
https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp
Ycleptic Studios. Visual Studio Marketplace. Retrieved June 13, 2019, from
https://marketplace.visualstudio.com/items?itemName=YclepticStudios.unity-snippets
https://www.getpaint.net/license.html
http://drpetter.se/project_sfxr.html
Object Pool Pattern. (2018, August 4). Wikipedia. Retrieved June 13, 2019, from
https://en.wikipedia.org/wiki/Object_pool_pattern
Cannasse, N. (2018, April 9). CastleDB. Retrieved June 14, 2019, from http://castledb.org/
Newtonsoft. (2019, April 21). Json.NET. Retrieved June 14, 2019, from
https://www.newtonsoft.com/json
Burgun, K. (2014, October 15). Randomness and Game Design. Retrieved June 14, 2019, from
https://www.gamasutra.com/blogs/KeithBurgun/20141015/227740/Randomness_and_Gam
e_Design.php
A* search algorithm. (2019, May 9). Wikipedia. Retrieved June 14, 2019, from
https://en.wikipedia.org/wiki/A*_search_algorithm