The Tale of ARPG Manager (So Far)

Justin Duewel-Zahniser
13 min readJul 21, 2019

Creating my first independent game while working, single-parenting, and dating.

The loading screen for ARPG Manager.

How the Project Started

I was closing in on my mid 30s, divorced, with two teenage boys that I took care of 9 months out of the year. I had been working in IT Product Management for almost a decade up to this point and found myself in a job that paid well, but mostly sent me home exhausted and upset. While most of my co-workers were capable, intelligent, delightful, earnest people, a few very important ones (including two of my eventual bosses) proved to be anything but.

The company eventually embarked on a massive, expensive project whose objectives I felt to be most likely non-achievable— specifically because I had previously worked somewhere that sold solutions to the very problem this project would create. Additionally, I believed the project would not create value for the company — rather, it seemed designed to create career value for the project sponsor. I stuck it out as long as I could, against the advice of my awesome, new-at-the-time girlfriend, in order to build savings that would allow me to detox for a while on a TBD personal project. While all my equity turned to toilet paper, I did have a good salary and I lived well below my means, and so this part of the plan worked well.

I have always been a gamer. It started with pen and paper RPGs, such as Dungeons & Dragons, Shadowrun, Rifts, Vampire, and many more. Eventually, my friends and I got into Magic: the Gathering, as well as video games. I begged my parents for a Nintendo Entertainment System and “Mario” for Christmas. My family was not wealthy, and so this was a stretch as far as Christmas requests went. As I unwrapped what I knew to be the coveted NES, I couldn’t fathom what the odd, oval bulge in the wrapping paper would reveal. My father, always the jokester, had delivered.

A can of Mario olives, medium pitted black.

My favorite games growing up were always the RPGs. I even talked my grandmother into buying me a strategy guide to Final Fantasy, which I didn’t own. I read it front-to-back for at least half a year until I had enough money to buy the game. So, if I was going to take time off, keep busy, learn something new, and hopefully create something I would personally enjoy, I decided that my project would be to create an RPG computer game. After doing the math, I concluded that I had a 9 month window in which to pull this off before needing a new source of income.

The Game

Next, I had to decide what kind of game to make. I had long dreamed about creating a location-based RPG that would help foster community and player physical health[1] but it would have been insane to try to be noticed alongside Pokemon Go, which was exploding around this time. So I put that aside for the time being. The two influences that ultimately converged to push me down the path of ARPG Manager were Path of Exile and Fallout Shelter.

Path of Exile (POE) is probably my favorite game of the modern era. It is a 100% free loot grinder Action RPG (or, ARPG) supported entirely by ethical micro-transactions. It sits in a genre most recognizable as the land of the Diablo franchise, though few will disagree that Path of Exile is best-in-class. In the spirit of my love for POE, I very much wanted to create some kind of loot grinder. However, I was keenly aware that trying to create a full ARPG would be a suicide mission.

At the time, I had also recently stopped playing Fallout Shelter. While I initially enjoyed the game, the mechanics that forced me to play constantly and react at all times in a crisis-management mode were exhausting and off-putting. I wanted to play it casually around other games, like POE, which were the focus of any significant time I could spend gaming. However, I enjoyed the simulation-of-an-RPG feel, and especially the wasteland exploration inspired by Progress Quest.

Blending these two together, I came up with the idea of essentially removing the crisis management aspects of Fallout Shelter and using loot grinder mechanics to orient the game around the Progress Quest-esque exploration. In order to provide reasons to explore, the game would still need to allow you to expand your base of operations, a la Fallout Shelter. It just wouldn’t ever come under attack or burst into flames when you were trying to do anything else with your life. And, thus, the concept for ARPG Manager was born, wherein you are the invisible sim overlord hiring and directing a team of explorers through automated exploration. In short, a casual “Football Manager” of a sci-fi ARPG.

Once the core idea fell into place, I tapped several other influences to build out the world. In addition to bad space jokes and terrible pop culture references, ARPG Manager contains references to some other personal favorite games throughout history. This list includes, but is not limited to:

  • Phantasy Star Online
  • Final Fantasy
  • Asheron’s Call

I also made the decision to make the game entirely free, using a similar ethical micro-transaction approach to POE. Of all the decisions described thus far, this one has so far taken the hardest turn. I’ll talk about this more later, but rest assured the game is still 100% free. Like, actual free with no strings attached.

[1] I pitched this to friends and colleagues in the mid-to-late 2000s. At the time, however, phone GPS accuracy, bandwidth, and battery life were hard constraints. Pretty sure I have “the receipts.”

The Stack

From the start of the project, I was confident in my web development and general programming skills. I was even confident in my ability to create a lightweight multiplayer game, having previously created a simple MUD from whole cloth as a way to learn Ruby over a decade ago. What I expected to be the biggest hurdle was learning game client development.

On the basis of this skills inventory, I decided to create the POC for the game server using what amounts to a REST API for the active portions of the game, and threads to run the automated explorations. I had fond memories of working with Sinatra and ActiveRecord, but I wanted to use Python for this project, and so I landed on a Flask server backed by MongoDB. Thus began the lingering, persistent dread that I still feel to this very moment that the server will eventually hit a scale ceiling or inhibit some critical functionality and need to be completely re-built.

In order to tamp down the dread initially, I decided to create a proof of concept (POC). The scope of the POC would be character creation, hiring explorers, managing inventory and gear, and simple combat. The client would be a simple React SPA that played the game like a MUD with a forms-based GUI. For the middleware that publishes adventure updates to the client, I adopted the amazing Pusher platform. I had to be able to connect to the POC with a handful of player accounts simultaneously with different browser sessions and should be able to play the game as several pseudo-people in parallel without any noticeable speed or play boundary issues.

It worked. In fact, it worked well enough that I made my first mistake: I added too much functionality to the React client over a two week period. I should have set it aside immediately and started learning graphical game client development because, in the grand scheme of things, those two weeks were essentially thrown away. It’s all washed out now that I’ve been working on this project for several years. But, a mistake is a mistake, and you don’t learn from them if you don’t acknowledge them.

Following that mistake, I did a bit of research and landed on Unity as my game development platform of choice. The tl;dr here is that I was presented with many options, but most of them seemed either too small for what I wanted to do (e.g. GameMaker) or too big for amateurs (e.g. Unreal). If you use either of those platforms at a high level, you are probably aware of all the ways in which my conclusion was and still is flawed. But, I had to pick one, and I picked Unity. This was definitely not a mistake.

Let’s talk about some more things that were.

It’s Dangerous to Go Alone

I knew from the beginning of the project that it would require art and music. And I knew that I could produce neither of these things to the level of quality required. So from the moment I started working on the graphical client, I knew that I would eventually have to either scrap the project or contract out these elements.

However, I definitely thought that working 6 days a week, 12 hours per day on average for a 9 month period, even as a solo developer, would be more than enough to create and launch the game I envisioned.

I could not have been more wrong. I unequivocally bit off more than I could chew with the scope of the project, leaving me with two key problems:

  1. I exited my target time frame with a working, enjoyable game that was, nonetheless, not polished enough to release and scale[2].
  2. I completely and utterly failed to account for the intense amount of marketing and promotion that would be required to even attract enough beta testers, let alone acquire enough players to sustain a business. Don’t get me wrong: I had a viable pessimistic financial model, which I ran by several smart and experienced people in the field and related fields. What I didn’t do the math on was how many human beings it would require to be actively doing both the building and managing, as well as the promoting.

Here is the key takeaway from this mistake: what seems like the smallest, simplest game is a tremendous amount of work and probably insane to attempt without at least one partner.

With this experience under my belt and what I know now, I am much more gracious of bugs in other people’s games, and I never say “that’s it?” until I’ve at least seen the credits screen to know how any people and/or teams have been involved. Based on some of my experience consulting with game startups and participating closed and open betas as a tester myself, I was always understanding of the complexities of making a world of, say, Skyrim’s size behave. Now, I will probably stand up and applaud your minesweeper clone with the same fervor. Games are that crazy to make.

[2] At the end of this period, I started a new job to rebuild the old war chest. Development slowed way down for the following two years, while I commuted 3 hours to and from my new office. I’m talking, 95% slow down. The reason I’m back on it hard now is three-fold: I moved closer to work, adding ~2 hours per day back to my life, my oldest son finished high school, and my girlfriend and I moved in together. I have free time, and I have more energy to use it productively.

A Big Boi

Especially this one. While the sim overlord / automated exploration dichotomy created simple game play patterns, a few choices conspired to balloon the size of the game in ways I would not understand until I got underway.

First off, ARPG Manager is an online game. While it is certainly no MMORPG, there is a client and a server, there is a database, there is concurrency, and there are some small ways in which players can interact asynchronously. The hooks are in place to do races and ladders, as well. This required far more scaffolding that would be needed for a game with one player, simple persistence, and only a client. The jury is still out on whether or not I should have done it this way. However, I plan to continue working on this game as long as it makes even a small amount of sense, so I believe this will pay off in the long run.

Secondly, RPGs require a lot of content development. Had I made a platformer, even with light RPG elements, I could have skipped over creating and balancing the thousands of possible combinations of character, item, and monster stats present in the current, small iteration of ARPG Manager. If you are contemplating developing your first game, and especially if you are working alone, I strongly suggest not starting with an RPG. If you must, I suggest keeping it tiny and making it as procedural as possible. Another mistake that I made early on was attempting to hand-create all the game’s items. This proved too brittle — every time I changed some aspect of scaling, I had to adjust all the numbers again. Eventually, I wised up and started moving many of the scaling systems towards algorithms based on statistical models.

I did a few smart things along the way, though. I don’t want you to think I’m a complete idiot and only still alive through luck!

Good Decisions

One of the better decisions I made was to pivot away from the business model of selling ethical micro-transactions to a Patreon-based model. While I would one day love to be a full-time indie developer and live modestly on income from games, that is simply not where I’m at in life right now. And so, what I really want out of ARPG Manager is enough devoted fans to help offset the ongoing operational costs to keep the game running and growing. And, eventually, maybe enough supporters to be able to start a second game with a team where I am not needed in a lead development role. Patreon is a much better fit for me and what I want to do than retail pricing, subscription pricing, cosmetic sales, or Kickstarter.

Another great decision, which I credit to my product management experience, was baking qualitative and quantitative analysis into the closed beta process aimed validating my assumptions about the state of the game and player experience. The heartwarming part of this process was that the participants enjoyed the game and played more than I expected, on average. I also came away with data-driven insights into what aspects of the game were most and least engaging. If you’re interested in learning what aspect was the least engaging, as well as what I did with that information, check out the Patreon link below and read the July 19, 2019 post. As a bonus, that post contains markov chain-generated (and lightly hand-edited) patch notes for the final closed beta release, which is a tradition I straight up stole from POE.

Another good decision, which I mentioned previously, was adopting a SaaS-based middleware, in the form of Pusher. This one doesn’t require much explanation, however, as it simply saved me a healthy chunk of precious development time. I will disclose that they sent me a t-shirt and some stickers, but that was long before this plug.

And last, but not least, I found these amazing people to contract out the pieces I couldn’t do myself:

I love the art, I love the music, and I will hopefully be able in the future to need and afford Heather’s services again as well. They were worth every penny.

Current Status and Next Steps

As a final note, there are only three tasks remaining on my task board before cutting an open beta candidate:

  1. Write up this ^ Medium post. Yes, this is semi-promotional. Gotcha.
  2. Push to production and smoke test.
  3. Host and start promoting the download link for the PC client[3].

[3] The game also works great on Android. However, sideloading the .apk was really only manageable for the 25 closed beta testers. I need to go through the Google Play Store process to get beta distribution rights, which will take a bit longer.

Where to Go if You’re Interested in the Game

If you would like to try out the game during the open beta period — and first off, that warms my heart — your best bet is to keep an eye on one or more of the following resources. Once access is available, they will all be updated accordingly. I have a business trip over the next two days, and so I’m likely to flip the switch mid-week so I can be available for emergency tech support, bug fixes, and some amount of community management.

If you want more information about the game, check out the official website and/or the Patreon page.

I also have a Discord server set up, which has seen most of its activity during the original closed beta phase, but which will hopefully ramp up again during open beta. IMHO, it’s worth joining if only so you can use our sweet ARPG Manager emoji.

The ranid enemy type (a whimsical, mutant tree frog in pixel art form) shooting out its tongue.
Herpaderp.

And, last but not least, you can follow Crane Mountain Gaming on Twitter. If you have questions about the game, this article, or my journey so far, hit me up on any of these channels. You can also email me through the Contact form on the official website.

Peace.

--

--

Justin Duewel-Zahniser

A professional software person (manager, not developer) and a hobbyist game person (developer, not manager).