Designing games for no one


Last year I didn't release a game, the first time that's happened since I first started putting my games online 10ish years ago. That's kind of sad, but it's also not really true. I did make and release something last year, but no one really knew about it or played it. That also isn't true though.

The game I'm talking about is called Auto Academy. You haven't heard about it because it was made for Roblox. Brief context, I worked at a Roblox game studio for almost 3 years, so that's my relevant background. I worked on Auto Academy for about 6 months. It was not commercially successful and was effectively put to rest (dead game) a few months after launch. This was a very predictable outcome that we even anticipated and expected, but it was still disappointing for me nonetheless.

The game is "dead" in that nobody plays it, but it is technically still playable; anyone with a Roblox account could play it right now, even you! I don't know that I'd recommend it, though. Partly because one of my current side projects is to rebuild and partially redesign the game as a singleplayer game (off Roblox). I don't know whether that'll have legs though, so it's possible that this game will just fade away and be forgotten. If that does happen, I thought it would be nice to talk about what the game is and how I designed it, because although it wasn't commercially successful, it was well liked by those that played it. It just didn't belong on Roblox, there weren't enough players looking for this kind of game.

A Shallow History of Genres

So what is Auto Academy? Well, it's an autobattling game where you play constructed decks of cards, rather than drafting random battlers from a shop. It's the first of its kind, to my knowledge, and if you're confused by what I mean by this, I'll try to explain more clearly.

An autobattler is a game where you control a team of characters that battle other teams automatically. Games like autobattlers have existed for a long time, but the first game to really spark this as its own genre was Dota Auto Chess (Auto Chess for short). Auto Chess is a real-time autobattler, meaning battlers moved and acted autonomously in real time: last man standing wins. There are also turn-based autobattlers, where characters perform actions against the enemy team one at a time in turns. I don't know what the first (post auto chess) turn-based autobattler was, but Hearthstone Battlegrounds (BG's for short) was the first popular one. Singleplayer variants have also sprung up from this genre, such as Vampire Survivors (real-time) and Luck be a Landlord (turn-based). The other major aspect of autobattlers is drafting. You typically purchase, or recruit, battlers to your team from a shop, the contents or which are usually randomized. This shop is where the primary strategy of the game comes from.

I shouldn't need to explain what a card game is, but here is a very brief explanation nonetheless. "Card" games have obviously existed for ages, but that's not what I'm talking about. I'm talking about collectible card games, like Magic the Gathering, Hearthstone, and Yugioh. The "game" is a collection of thousands of different cards which can be put together in a deck, then matches are played between players using these player created decks. 

Auto Academy takes the "autobattling" part of autobattlers, and replaces the drafting with card based deckbuilding. You collect cards from card packs and construct decks which you can play against other players. Hopefully this makes sense!

Combining Surprisingly Incompatible Genres

Auto Academy's design actually came together very quickly. There were a few fundamentals that changed during development, but the main concept was more of less finalized before any code was written. When I started designing Auto Academy, all I knew was that I wanted to combine autobattling with card collecting/deck building/card playing. Here are some things I came too early on:

  • Hearthstone Battlegrounds (BG's) has my favorite autobattling system, so let's just borrow that as is. No need to reinvent the wheel.
  • I did not want to include a shop. All of your resources would come from the cards in your deck.
  • There needs to be some system that imposes a pace to the game; I can't let players draw randomly from their deck or problems will arise.

I want to touch on that third point because it is the biggest design problem I had to solve when designing this game (I'll argue that it's actually an unsolvable, cursed problem, so I don't think the solution I came to is perfect). Before that though, I should explain how BG's works.

In BG's, your team can be composed of at most 7 minions. Minions are displayed in an ordered list. You can freely reorder minions during your turn. During a battle, minions attack in turns: team A's minion attacks, then team B's minion attacks, etc. The team that gets to attack first is decided by who's team has the most minions. Minions attack sequentially, from left to right. If there is a tie, the first attack is chosen randomly. When a minion on a team is chosen to attack, it chooses a random enemy minion to be its victim. Here's a text example:

  • Team A: goblin, ogre, orc
  • Team B: archer, knight, lancer, horseman

Team B has the most minions, so they will attack first. Archer is the first minion on the team, so it will attack. Archer randomly chooses to attack the ogre. Then Team A gets to attack. Goblin is their first minion, and it randomly chooses to attack the archer. Then the turn goes back to Team B, where knight is next in line to attack. It randomly chooses to attack the orc, and so on.

Minions have two numbers that are relevant for combat: attack and health. When one minion attacks another, the attacker and victim deal damage equal to their attack to each other. So if a 3 attack 2 health minion attacks a 2 attack 3 health minion, they both die.

Minions may also have additional abilities defined in their text boxes. There are also a variety of bold texted keywords that have common functionality, like Windfury (ability to attack twice in a row) or Divine Shield (ability to negate the first damage taken in a battle).

A battle ends when one side has no minions remaining, after which the losing player takes damage and each player's team is reverted back to the way it was before the battle. This is last part is the source of our cursed design problem, or at least one of the sources.

The Cursed Problem

If you're unfamiliar with the term "cursed problem," please give this talk a watch. The basic definition is: "a problem which is unsolvable because it is fundamentally at odds with itself." That isn't a great definition, the talk will provide a better one.

Here is the cursed problem I faced with Auto Academy. Let's say we take a naïve approach to designing this game and just use a standard card drawing system. All cards are shuffled to form a deck, and you draw a starting hand of 5 cards, then draw one additional card each turn. Nice and simple. Why is this bad? Well, it's bad because auto "battles" are actually simulations. When a battle finishes, all of your minions come back exactly as they were before, regardless of the outcome of the battle. These are simulations of battles, minions dying is never permanent. Theoretically you could change this and try to design an autobattler where death is permanent, but that will likely not be very fun for reasons I won't get into here. 

So why are battle simulations a problem? Well, it's an issue primarily with game balance and statistics. In card games, and strategy games in general, there's a concept known as tempo. Tempo is sort of an abstract concept which has to do with how powerful a move is right now. If given the choice between playing a minion right now, or giving a minion in your hand a buff so it can be even stronger later, playing the minion now would be making a tempo play, while buffing the minion and not playing it would be making the value play. Each has will have an upside or downside depending on what your gameplan is doing, and what your opponent's gameplan is. This is where a lot of the interplay comes from in many strategy games, and especially in card games

In a card game, a common strategy is to play the best minion available to your every turn. In hearthstone, this would equate to playing a 1 cost minion on turn 1, a 2 cost minion on turn 2, and so on. These are tempo plays. This is not unstoppable though! Because card games are interactive, so you play cards that destroy enemy minions. So if you fail to draw your minions when you needed them early in the game, you can still make a comeback by destroying enemy minions in later turns. This kind of back and forth interaction is what makes drawing from random decks fair: you can always make comebacks if you fall behind on tempo early on.

But Hearthstone is not a simulation! If you kill an enemy minion, it stays dead! This is not true in an autobattler. So if, in an autobattler with a simple card draw system, you draw your early minions when you wanted to draw them, and your opponent did not, there's nothing they can do about that! That is a permanent advantage they've gotten on your which will impact the entire game. If you have a game where different cards have different costs, and some (or most!) cards are not playable in the beginning of the game, and you want cards to be drawn in a random order, then this will be completely at odds with a simulation based autobattling system. Utterly cursed!

(Attempting to) Solve the Cursed Problem

I'm no expert at solving these kinds of problems, but when faced with this one I knew that something would need to be fundamentally changed, and the way cards are drawn is what I chose. My third bullet was "There needs to be some system that imposes a pace to the game" and we can finally start dissecting that. When I say pace, I mean that you should have access to weak cards early in the game and powerful cards late in the game. Autobattlers typically solve this with drafting. You design minions for different tiers and allow the player to increase their tier during the game so they can slowly get access to stronger and stronger cards. I didn't want to include a shop in auto academy, so I had to figure out something new.

A tier system would probably be the way to go though. It's just a matter of how a player can increase their tier and how that interacts with drawing cards. Like I said earlier, I came to this solution sort of quickly, so I'll just jump straight to what I came up with. It is twofold:

  • Utilize a draw, discard, reshuffle system (like Dominion or Slay the Spire)
  • Only include tier 1 cards in your first draw pile
  • Increase a player's tier and add cards of the new tier into the draw pile whenever the draw pile is reshuffled

A brief explanation of the draw, discard, reshuffle system. Basically you are cycling through the same cards over and over again, whether you've played them or not. You draw cards from a draw pile, which is your shuffled deck. Played cards are put into a discard pile, and all cards left in your hand are discarded at the end of your turn. Then you draw a new hand of cards. If you ever try to draw a card while your draw pile is empty, the discard pile is reshuffled and that becomes your new draw pile. 

My system adds a new pile, the reserve pile, which is where cards above your current tier are kept. Whenever you reshuffle your draw pile, you "tier up" and cards of that tier are shuffled into your draw pile, along with the contents of your discard pile. This means that the first time through your deck, you'll only have tier 1 cards. Then you'll have tier 1 and 2 cards, then 1, 2, and 3, etc. This system has a downside of being sort of complicated to explain, but in practice it feels perfect! Everything is automated, and the pace feels really nice. It might sound like it takes forever to tier up, but you might not have very many tier 1 or 2 cards, so you could draw through those cards in just a few turns. 

One last thing that is important to this game is deck building restrictions. I really didn't want the game to have many restrictions. If you wanted to include only cards of tier 4+, I wanted you to be able to do that. However, I didn't like how that could cause you to tier up many times on the very first turn from having no cards in your deck to start with. So, I decided to force all decks to include 5 generic tier 1 minions to ensure that players would always have 5 cards in their starting draw pile at a minimum. This felt bad to some players, but it was a necessary evil. I'd rather do that than force players to include X number of tier 1 cards. 

Class Design

Ok there's a lot more design problems I could discuss, but I wanna talk about cards!! First, let's discuss classes.

Auto Academy is class based. There are 5 different classes plus some classless cards. You can include any number of cards from up to two different classes, plus any number of classless cards. This is a fun way to design a card game which can allow for lots of crazy interactions while still be grounded in some limitations. Magic has this idea of a color pie [chart] which is meant to show the strengths and weaknesses of each color (class) relative to each other. Some classes are good at drawing cards, others are good at gaining mana, that kind of thing.

My class design philosophy focused more on designing strategies for players to find, giving them direction in deckbuilding. Strengths and weaknesses came as a result of that. I'll list out each class and some of their signature strategies.

Academy

Academy is a pretentious, snobby, bureaucratic class. They have the easiest access to flying minions and are good at increasing their maximum mana. They also have very strong battle spells, which is a concept unique to this game.

Battle spells are effects that you queue up like minions which resolve one at a time during a battle, before your minions get to attack. This gives the game a way to indirectly interact with your opponent outside of just minions attacking each other. A few key cards here are Hail, which does chip damage to enemies, Inflame, which buffs the attack power of your battle spells, and dragon rider, which attacks whenever you cast a battle spell

Lyceum

By far the most popular class among those who did play the game, Lyceum is a class of devoted cultists who are determined to draw energy from the moon and treat it like a god. They're very good at manipulating their cards to quickly increase their tier. Their relentlessness also comes through in the form of summoning moonlit acolytes during combat.

Beckon thy Moon was one of the first cards I designed, and is still one of my favorites. It's so eye catching because it looks so terrible but the effect is actually useful in this game. If you discard your draw pile, then that's X cards you no longer need to draw to increase your tier!

Garden

Garden is my favorite class, partially because the strategy for it is not very clear. It's mainly a utility class, which is best used as a complement of another class. It is very good at manipulating minions through sacrifice. It also has a a minion summoning theme through Spores and access to deathtouch, a keyword which destroys anything damaged by the deathtouch minion.

I really like the design of creepy statue. It's meant to be an reference to the weeping angels from doctor who, a show which I've never watched, but I think the idea of weeping angels is very cool (they only move when you aren't looking at them). So every time you discard the creepy statue, it just goes back to the top of your draw pile. It also costs 5, even though it's tier is 2, so you'll be unable to play it for many turns unless you have a strategy to allow you to play it sooner.

Porch

These are basically just paladins, but with a dark secret. They're actually all sort of cursed because they wear cursed armor which makes them very powerful, but also turns them into ghosts. This comes into play through the series of forgotten cards which give minions a powerful buff and the fleeting keyword, which is porch exclusive. Fleeting makes a minion discard itself from your team after a battle. So Fleeting minions are meant to be more powerful, but you have to replay them for each combat.

Porch also has a Level 1 theme (I keep saying "tier" but the game calls this level). Reinforcements is another card which I really like the design of. It used to just pull 1 card and not give fleeting, but this was obscenely powerful with a garden card which was level 1 but costed 5. Adding fleeting + another card makes it a much more interesting trade off, and still lets you do combos with uproot and other such things.

Another mechanic I haven't discussed is the recall mechanic. You can drag a minion from your team and back into your hand for free. This is nice because it lets you open up space whenever you need it, at no cost, and lets you replay minions repeatedly to retrigger effects. This can become fairly parasitic however, and I'd likely explore something else if I did remake this as a singleplayer game.

Tub

Last but not least, we have the strange tub. Tub is a class full of outcasts. I didn't design the class themes, but it's based on the idea of giving away all living possessions and living in squalor to become closer to yourself. This to me seemed perfect for a trash/exhaust/depletion mechanic, where you can permanently remove cards from the game to gain some benefit. This class and garden were not popular with players, which is surprising because Tub seemed like the strongest class in the game in testing. Maybe it's just too complex or maybe I was just wrong. Hard to say considering our players were teenagers and there weren't very many of them.

I know I said before that beckon thy moon was my favorite card, but actually my #1 favorite card is the jar headed one, or the mysterious jarhead as I liked to affectionately refer to him as. The mythos of this card is that this entire class was formed when this guy just appeared one day and brought it into being through a sort of bureaucratic "glitch." The jar headed one has no name and does not speak. He has removed so much of his physical attachment to earth, and his body, that he has gained the ability to teleport and phase in and out of existence at will. If you try to destroy him, he'll just phase back into existence on your team. The buff was originally +5/+4, but I had to nerf it during playtesting, which is sad because I really liked the 9, 8, 7, 6, 5, 4 numerology. 

Reflection

This game was more or less doomed from the beginning. It didn't belong on Roblox, and may have done better on another platform where it would have been easier to attract the kind of players that would be interested in this kind of game. It's just so quick to make multiplayer stuff with Roblox. It's hard to argue with a game engine that has account management, cloud data saves, in app purchases, and server hosting all built in. 

It's a weird feeling to built a game like this when you know it will probably fail. Why try, you might ask. Well, because there was a chance it would take off, and the game is really fun. There's only 191 cards, but probably close to 30 different deck archetypes to try. I've found that a lot of indiedev is just going for it, even if it probably won't pay off. If you're having fun making the game, and are proud of the end result, then it doesn't matter as much if it doesn't succeed, especially if the budget is $0.

Regardless, I don't know when to take no for an answer and do want to try this again as a singleplayer game like I have already said. I've already done a lot of the initial groundwork, I mostly just have some new design problems to solve to make this work as a singleplayer game. A lot of it just works by default, the main issue will be how to handle deck building (deck construction is not common/popular for singleplayer games) and whether to simplify some of the mechanics or not to make it more approachable. Also art. Art is a problem. 

Hopefully this very very long post was of interest to someone. Thanks for reading!

Comments

Log in with itch.io to leave a comment.

I happen to come across your post and had the urge to read it. You sound very passionate about your work so I hope transitioning it to a single-player game will work out well. Cheers!

Thank you!

nice