Introduction

For a while now, I’ve been absolutely obsessed with Slay the Spire (as can be seen from my play time), and as an amateur game designer, I’ve been thinking that it would be cool to create a mod. I’ve had vague thoughts about creating mods for various other games, but it’s always seemed too daunting. The most advanced thing I’ve done of a related nature is making a few simple datapacks for Minecraft.

However, Slay the Spire not only has a fantastic modding community but is also (reportedly) one of the most approachable games to mod. To utilize and showcase my game design and software development skills, I hope to build a fully functional mod for Slay the Spire from the ground up.

A screenshot of play time for Slay the Spire on Steam, showing 93.1 hours.

What This Is

To keep myself accountable as I go through the creative process, I’ve decided to write this series of articles: a set of devlogs that show the path I take toward completing my mod. I’ll show how I overcame the various issues that will inevitably beset me as I go through the development process. I’ll explain my reasons for including different features and why I chose to implement those features in a specific way. I’ll be rubber-ducking1Wikipedia my way through the most demanding problems that come my way, and when things go well, I’ll be sharing the good news too.

To be clear, this series will be quite self-indulgent. It is nominally a way to keep track of my thoughts, and I’m making it public on the off-chance it encourages, inspires, or helps someone else.

What This Isn't

This series will not be a tutorial on how to mod Slay the Spire, program in Java, or become a game designer. Mainly, that’s because I am currently underqualified to teach any of those things, and there are many online resources for all three that could do it better than me. This will be a devlog of my work, and although I intend to talk through my decisions, I’ll focus more on the why and less on the how.

Furthermore, I will not be documenting every minute step I go through. These articles will focus on my overall efforts and broad strokes, not on the day-to-day or line-by-line choices and approaches I’m using. As I mentioned, this series will allow me to explain my struggles and triumphs, discuss my thinking, and document my progress. But most of all, my goal is to actually make a mod. Being over-zealous in tracking the minutia would be counter to that goal.

Getting Started

With that out of the way, I’ll briefly touch on what I’ve done so far—mostly just getting things set up. I’ve had ideas swirling around in my head for at least a month, so I decided to document my initial thoughts in a Google Doc. I’ve downloaded the requisite files for modding, including ModTheSpire, BaseMod, and StSLib, and I’ve started a new blank project, which I’ve hooked up to a GitHub repository (which is private at date of publication). Although my mod is currently a blank canvas, I’ve got my development environment all set up,2IntelliJ IDEA is my IDE, if anyone’s curious and with my next article in this series, I’ll have an update on my initial progress.