Sie sind auf Seite 1von 38

Running head: FROM THE DREGS 1

From the Dregs

Hunter L. Mason

California State University Monterey Bay

CST 499 Directed Group Capstone

June 17, 2019


FROM THE DREGS 2

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

avoid them to increase possible profits.

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

features such as items, levels, enemies, and playable heroes.


FROM THE DREGS 3

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

combined these gameplay elements to create a unique experience in this way.

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

rewrote my existing code in the JavaScript programming language. Additionally I implemented a

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

even with its simple design.

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

different and players can experience a unique adventure each time.

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

stimulating source of entertainment for decades to come.

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

Equipment and consumables.

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,

bandage wounds, or even allow the player escape in an emergency.

Randomly generated levels.

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.

Character progression and trading.

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.

Persistence and character death.

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

players to plan ahead and minimize their losses in each battle.

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

common than it should be in video games.

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.

Stakeholders and Community

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

in-depth look at the game’s mechanics.

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

developers could contribute to.

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

within the game client while playing.

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

course are listed below. Each element marks a weekly milestone.


FROM THE DREGS 13

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

gameplay and progression so they can be addressed early.

2. Gather player feedback. This marks the first round of player testing, players leave

their feedback through screen share, and Google Forms survey.

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.

4. Gather and analyze player feedback. Quality improvements like keyboard

shortcuts and tooltips for spells.

5. Add new features such as a new starting class. Make changes to the dungeon

randomizer, fix bugs discovered in week 4.

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

bugs discovered in week 6.

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

currency as I believe these marketing tactics are predatory.

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

data is extremely important and it will never be distributed.

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

outsourced or developed by additional members of the development team should it expand.

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

General Public License​.

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

Hydejack Jekyll theme created by Florian Klampfer.

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.

1. Create 5 unique enemy types for players to battle.

2. Create a playable dungeon for users to test.

3. Design the Mage and Rogue starting classes.


FROM THE DREGS 17

4. Create a full scale dungeon with a boss enemy at the end.

5. Release a stable Windows version and host the download on the project website.

6. Host the project documentation on the project website.

Below are a list of the actual milestones achieved by the end of the capstone course.

1. A total of 10 unique enemy types were added for players to battle.

2. A playable dungeon was added for players to test. The first iteration of the test

dungeon contained 3 levels of increasing difficulty.

3. Both the Mage and the Rogue starting classes were added. Each have two

weapons that they start with.

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

be replayed for additional loot.

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

new playable version.

6. The full documentation for the game client is available on the project website.

Usability Testing and Evaluation

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

made, where they get stuck, and more.

Final Implementation

Software and Tools

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

assets, an editor like Visual Studio would be more than I needed.

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

easily instantiated into the scene when needed.

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

have previously played on this environment.

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

(see Figure 1).


FROM THE DREGS 21

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

from none to densely packed container and enemy spawns.

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

and the end of the path will spawn these.

Movement and Combat

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 pattern in which it will use them.


FROM THE DREGS 27

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

be often frustrating in a game that rewards patience and player skill.


FROM THE DREGS 28

Items, Equipment, Progression, and Trading

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

calculated with consideration to their constitution attribute.

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

themselves increase in potency based on the player’s attributes.

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

has a rather lengthy list of properties (see Figure 6).


FROM THE DREGS 31

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

the tool tip.

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

bugs as needed (see Figure 8).

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

projects that appeal to more niche audiences.

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

plan to keep adding features over the next few months.

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

Best Games I’ve Played in Years.​ Retrieved April 9, 2019, from

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​.

Retrieved April 9, 2019, from

https://fextralife.com/why-dark-souls-notorious-difficulty-is-largely-a-myth/

Robertson, C. ​Google Fonts.​ Retrieved April 16, 2019, from

https://fonts.google.com/specimen/Roboto+Condensed
FROM THE DREGS 37

Apache Software Foundation. (2004, January). ​Apache License, Version 2.0.​ Retrieved June 16,

2019, from ​https://www.apache.org/licenses/LICENSE-2.0

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

Unity Technologies. ​Unity Store​. Retrieved June 16, 2019, from

https://store.unity.com/compare-plans

Klampfer, F. ​Hydejack.​ Retrieved June 3, 2019, from ​https://hydejack.com/

Microsoft. ​Visual Studio Code.​ June 13, 2019, from ​https://code.visualstudio.com/

Microsoft. ​Visual Studio Marketplace.​ Retrieved June 13, 2019, from

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

Brewster, R. ​Paint.NET​. Retrieved June 13, 2019, from


FROM THE DREGS 38

https://www.getpaint.net/license.html

Pettersson, T. ​DrPetter’s Homepage.​ Retrieved June 13, 2019, from

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

Das könnte Ihnen auch gefallen