Today marks the one year anniversary of Taco Tom 2 being released on Steam. It’s the biggest game I’ve made and the one I put the most effort into, as well as the first game (and only game so far) I’ve charged money for. A while ago, a friend of mine suggested that I should write a postmortem about the game. I thought it was a great idea, but I never got around to it until now.
This article is mostly aimed towards people who have played Taco Tom 2 and are curious about its development (all three of you), or people who are game developers who want to know what someone’s experience of making a game from start to finish was like. This article goes into pretty great detail about the development process, launch, and post-launch of the game. It also discusses the things that I think were good and bad about the finished game.
If you’ve never played Taco Tom 2, here’s a brief overview of how it works. You play as Taco Tom, who is on a mission to find out what happened to his ex-girlfriend who mysteriously died. Going through 10 worlds with 9 levels each, you move left and right to collect or avoid ingredients that are falling from the top of the screen. There are five types of ingredients: meat, sour cream, lettuce, tomato, and cheese. Collecting one of each ingredient without collecting two of any ingredient awards you with a Full Taco. You need at least one Full Taco in a level to move on to the next one. If you do collect two of an ingredient, you’ll lose a life and all of the ingredients you’ve collected so far. You can also speed up and slow down time to make the ingredients fall as fast or slow as you want. The game is naturally harder when the ingredients are falling faster, but it’s necessary to get 3 stars in the time and score categories for each world. Additionally, you can dash through solid walls, which is necessary to beat some of the levels.
The Taco-Based Games I Made Before Taco Tom 2
In 2004, when I was 8 years old, I got issue 10 of Retro Gamer magazine. The issue came with a disc that contained, among other things, a game development tool called The Games Factory. I really enjoyed using the program, and made a bunch of small games with it over the next few years. I used the program in early 2011, when I was in 9th grade, to create a game called TacoSalad PC. TacoSalad PC was made up of three mini-games, all of which involved moving a taco from left to right on the bottom of the screen. “Meat” had you collect a stream of meat that moved from left to right, “Sour Cream” had you avoid a storm of sour cream raindrops, and “Packages” was just Breakout but with moving bricks. I released it on my website at the time, and I was amazed when it got 20 downloads! Most of them were probably from students in the Geometry class I was in, where I showed the game to everyone in the class.
I made several revisions to TacoSalad PC, most notably creating a Flash version creatively titled TacoSalad Flash!, which I posted to Newgrounds. It’s still available to play. The Flash version removed the MIDIs that played during the game, which were just some of the default MIDIs found in The Games Factory. It didn’t review very well on the site, but that’s probably because it wasn’t very good. The games were simple and the graphics were drawn rather poorly by myself.
In 2012, I worked on a spin-off of the “Sour Cream” mode, titled Creamed! (I later changed the name to the less suggestive Avoid the Sour Cream). Creamed! was going to be released on the Xbox Live Indie Games service for the Xbox 360, but I never finished it.
At some point, I bought Multimedia Fusion 2, which is an updated version of The Games Factory, and at some later point, I bought Clickteam Fusion 2.5, which is an updated version of Multimedia Fusion 2. I also bought the Android exporter, and made my first Android game, Everyday Stacker. I also made prototypes of several other games on Android, including a port of TacoSalad PC, known internally as TacoSalad 5. I have no idea why I chose to put the number 5 at the end of it, but it doesn’t really matter, since that version was never released. It eventually morphed into Taco Tom when I got the great idea to give the floating taco a face, arms, and legs, and spent a weekend putting the game together in November 2014.
In Taco Tom, you control Tom, moving left to right to collect one of five different ingredients — meat, sour cream, lettuce, tomato, and cheese — that fall from the top of the screen. If you collect exactly one of each of the five ingredients, you score a point and can start collecting all of the different ingredients again. If you collect two of any ingredient before getting all of them, you lose. It had a Flappy Bird-esque difficulty curve, where getting more than one or two points was very difficult. That being said, I added a speedrun-esque feature in an update where you tried to get ten points as quickly as possible. My guess is that most players have never gotten ten points, so adding that may have been a mistake.
Brainstorming Ideas (Oct 2015 — Jan 2016)
Of the three Android games I had released at that time, Taco Tom was the most successful, and I liked the character of Tom, so I decided to make a sequel to it. I had several ideas for a sequel, including increasing the number of ingredients from 5 to 8 (adding onions, olives, and beans), adding a multiplayer mode, and adding different playable characters. The sequel was originally going to be called Taco Tom & Friends, and would feature a supporting cast of characters such as Burrito Bruno, Chimichanga Carlos, and Mexican Pizza Pete. Each character would have had a different set of ingredients to collect. I scrapped this idea pretty quickly, though, and the Mexican food characters and extra ingredients were never heard from again.
The name Taco Tom & Friends stuck for a little while longer, as I created another cast of characters for the game. These included a boombox-wearing penguin, a squid named Squiddie, and a floating styrofoam alien named Sputnik who I took from an unrelated comic and short film universe I made almost a decade prior. All of these characters made it into the final game pretty much unchanged, although the penguin was given the name Sidenote, and Squiddie’s name was changed to Sapphire.
Although Taco Tom was created with Clickteam Fusion 2.5, I had recently discovered a different game development program called Construct 2. Construct 2 is a 2D game development engine much like CF2.5, but it has much better support for visual effects, and is easier to program with in my opinion. The downside is that since it compiles to HTML5 code, it’s not as efficient as CF2.5. Foreshadowing alert: this becomes a problem several times during development. After experimenting a bit with both programs, I settled on using Construct 2 for Taco Tom 2. I also decided that Taco Tom 2 would be on the PC instead of on Android, as I would be less limited by the features I could add to the game that way.
At this point, I stopped doing much with the idea of Taco Tom 2, but I would return to it later on in the year.
Early Development (Jul — Nov 2016)
Since the first Taco Tom was made in a different engine, I had to recreate it in the new engine. I spent some time doing that, and then I started testing out new mechanics to add to the game. Some of these included having the ingredients fall at different speeds compared to each other, which was scrapped; having Tom be a random color, which was also scrapped; and letting the player choose how fast the ingredients fall, which was kept in the final game and is one of its defining gameplay features. I also added a strike system, so instead of the game being lost as soon as one incorrect ingredient is collected, you have to make three mistakes before losing.
I also began working on the game’s UI, which was significantly different from the first game due to the aspect ratios of the games being different. Taco Tom was played in portrait mode on phones with a native resolution of 480x800, while Taco Tom 2 was a 720p game played on PCs. During this portion of development, the entirety of the UI was on the right side of the screen, pushing the game to the left side. I also didn’t care about aesthetics at this point, so it’s incredibly ugly.
At this point, I began fiddling with the idea of Taco Tom 2 being level-based. Taco Tom only had a single game mode where the ingredients fell at random, but I wanted Taco Tom 2 to be much more in-depth and story-based. Having a bunch of worlds and levels within each world seemed like a good way to accomplish this.
The original level generation algorithm that was implemented at this time was rather broken. I first drew each level out as a picture pixel-by-pixel in Paint.net. The levels were 16 pixels wide, and up to 256 pixels tall. A Construct 2 Canvas object containing the picture of the level was then added into the game. The RGB values of each pixel of the Canvas object could be sorted through as if they were an array. If the RGB value of a given pixel was a certain color, than an instance of the ingredient corresponding to that color was spawned in the appropriate relative location above the game map, so that the ingredients were spaced out enough that a row of 16 ingredients would cover the entire game screen.
At first, this process occurred one line of pixels at a time. When a row of ingredients reached a certain point on the screen, the next row of ingredients was spawned. This caused an issue with the speed-changing mechanic, as rows of ingredients would often be misaligned when the speed was changing during their spawn. The obvious solution was to process the entire level at once, but this meant that there was a slight pause between each level as the next one was loaded, which was far from ideal. The Canvas object could also only load one level at a time at this point, meaning that it couldn’t switch to another level after the first one was beaten. It would be a bit of time before I found a better solution to level generation.
Less Early Than Before Development (Aug — Nov 2017)
I took a break from working on the game for some time after November 2016, and started working on it again around August 2017.
I started this section of development by improving the game’s graphics. I made the UI not hideous, although still far away from the final version, and added a second UI column on the left, centering the game on the screen. New ingredient graphics were made, which ended up being the graphics used in the final game. The game’s logo was made, albeit using a different color scheme than the final version. Taco Tom’s sprites were updated, and I used a program called Spriter to make his movements fluent. A ground sprite was added, so it didn’t look like Tom was floating in mid-air. Shadows for both Tom and the ingredients were also added, so that it looked like they were actually hitting the ground. There’s one shadow sprite per column, and the transparency of the sprite changes based on how close the closest ingredient to the ground in that column is. The algorithm to make this work was surprisingly complicated.
One of the game’s defining aesthetic characteristics was also implemented — the stock photo background images. I didn’t want to have to draw my own background images for each level or even for each world, so I sought out some royalty-free images to use instead. All of the game’s background images were found on Pixabay, which is one of my favorite websites for getting graphics for games. Many of the stock photo images used in the game match the theme of the world they’re in, while others are rather humorous. I hadn’t (and still haven’t) seen stock photos used to such a degree in many games, so I felt that it gave Taco Tom 2 a somewhat unique appearance.
Several gameplay changes and improvements were also made during this time. I changed Tom’s movement from one of the default Construct 2 movements to a custom movement. This allowed for a far greater amount of customization, making the movement feel more solid. The dashing mechanic where Tom can go through solid objects up to two columns wide was implemented around this time. The pause screen was also implemented, although it didn’t have any menu buttons yet.
I also began working on the game’s menus. The movie that plays in the background of the menu was added, along with the Press Start and level select screens. The level select screen at this point used different graphics compared to the final version of the game.
The level generation algorithm got even worse. The Canvas object could only easily load one level at a time, but it could take a snapshot of what was underneath it, and make that screenshot its new canvas. My solution to load multiple levels was to add a Sprite object directly beneath the Canvas object, and have each of the level pictures loaded into the Sprite object as a different frame of an animation. Then, whenever a level was beaten, the Sprite object would switch to the next frame of the animation, the Canvas object would take a snapshot and paste the contents of the snapshot onto itself, and the pixel-by-pixel color searching algorithm would run again. This solution, while technically functional, was messy and unreliable. If I accidentally moved the Canvas or Sprite objects even a pixel, everything would completely break. This also didn’t solve the problem of the game pausing between each level.
Around November 2017, I got the idea of porting Taco Tom 2 to the Xbox One under its Creators Collection, where anyone could submit games to the platform. It’s essentially the same thing as the Xbox 360’s Xbox Live Indie Games service. I bought an Xbox One, spent six hours trying to get the game to compile and run properly, and when I finally did, discovered that the game ran like garbage. The pauses between each level that were previously maybe half a second were now close to ten seconds long, and the frame rate was unacceptably low.
I knew at this point that finding a solution to the level generation problem was absolutely necessary. Fortunately, I did come up with a solution that worked much better. I got rid of the Sprite and Canvas objects entirely, and instead used a .csv file to store the game’s level data. I wrote a Java program that went through each pixel of each level’s image file, and combined them into a .csv file where each pixel was represented by a digit. For example, 1 represented meat, 2 represented sour cream, and so on. The .csv file was then loaded into the game, and ingredients were spawned one row at a time based on the file’s data. This was much more efficient, resulting in no pausing at all, and is the algorithm used in the final game.
I also modified the speed-changing algorithm so that rows of ingredients were no longer misaligned. A fake ingredient was added off-screen that always has the same Y coordinates as the top-most spawned row of ingredients. Once that row of ingredients is low enough, the fake ingredient moves up 52 pixels, and the new row of ingredients is spawned at the same Y coordinate as the fake ingredient. Since the ingredients never fall more than 52 pixels in a frame, this keeps each row synchronized with each other.
I experimented with adding hats as an unlockable award, but these were removed as they covered the ingredient indicators on Tom and made it more difficult to pick up ingredients. I also experimented with a collectible bonus icon in each level, but scrapped this as I thought it wasn’t fun to try and collect them.
Finally, I made about a third to half of the game’s 90 levels. I put out a call on Twitter for people to make levels for the game if they wanted to. I received one level from Ratheronfire, which I modified and is called Ratheronfire’s Level in the final game. I also added most of the game’s sound effects, mostly from Clickteam’s sample library and from NoiseForFun.com, and uploaded the first version of the game to Steam for alpha/beta testing, which was surprisingly difficult.
Not Early But Also Not Late Development (Jan— Apr 2018)
Spoiler Alert: This section discusses the plot of Taco Tom 2 in detail.
My focus at this point went away from programming the game, and more towards writing the game’s story. At this point in development, I wasn’t hugely confident in the gameplay, so I wanted to make the story extremely weird and have a bit of shock value to make up for it. I liked the idea of the player thinking that the story couldn’t get any edgier, and then the story getting more edgier, and that happening several times throughout the story. The original idea for the story was generally similar to the final game’s story, just a lot edgier and inappropriate as a result. Here’s a synopsis of that version of the story:
(If you don’t want to read about super edgy/inappropriate stuff, then you might want to skip most of this section.)
Taco Tom and his girlfriend Taco Sally are hanging out when for some reason Sally tries to kill Tom. In self defense, Tom kills Sally by eating her, and discovers that he really enjoys eating tacos, and is therefore a cannibal. Tom’s friend, Sidenote, is a penguin who has a drug addiction which has made him broke. Sidenote is trying to start a business with his scientist friend, Sputnik, in order to make some money. They’re working on developing a shrinking ray, with its primary purpose being to shrink Sidenote’s girlfriend, a squid named Sapphire, so that she can be used as an inappropriate type of object in inappropriate types of shows. Sidenote wants to propose to Sapphire with a sapphire ring, so he tells Tom to find a sapphire stone for him so he can put it in the ring he already has. Tom is reluctant because he has a crush on Sapphire, but agrees anyway. Everyone happens to be in Sputnik’s lab one day when Tom is accidentally shrunk with the shrinking ray. He then finds a place called the Sapphire Caves, which he enters as it seems like a great place to find a sapphire stone. He doesn’t find any stones, but does find a giant object which is moving towards him, forcing him to run out of the caves.
This object is a human/hedgehog/shoe hybrid named George And Babby Getoot (one name).
It is Sapphire’s child.
The Sapphire Caves were not actual caves.
Sapphire happens to love kids, but Sidenote hates them, so he tries to kill George And Babby Getoot, but fails, and learns to tolerate it. Sputnik’s life goal is to turn himself into a potato and change his name to Spudnick, which he eventually does, but he ends up in severe chronic pain because of it and tries to kill himself. There was supposed to be a crazy ending to the story but I hadn’t thought of it at this point.
I decided pretty quickly that this was a bit too much, especially since it was originally going to be more explicit than in the above synopsis. By the time I actually wrote the first draft, the story was a fair amount less edgy and inappropriate, but still a fair amount more edgy and inappropriate than the final version. Taco Sally’s death at the start of the story is no longer given a direct cause, with Tom not remembering what happened, only remembering that he wanted to break up with her because she was being annoying at the amusement park they were at. Instead of Sapphire already being Sidenote’s friend, Tom and him discover her early on in the story after Sally’s death, and more emphasis is placed on Sapphire and Sidenote starting to date and choosing to get married on the same day while Tom has a crush on Sapphire.
The original ending of the story involves Sidenote telling Tom to kill Sapphire and George And Babby Getoot for him, as it’s revealed in a flashback that Tom killed Sally out of self-defense by eating her because she gets angry that Tom is oblivious to what she wants to do with him (this was all set up just so I could use the line “tomato not to mate”) and attacks him with a knife when he breaks up with her. However, Tom enjoyed eating Sally, which means he’s already a murderer, so it won’t matter if he kills someone else — especially because Sidenote has a Get Out of Jail Free card, which was definitely not just taken from some board game, that he can give to Tom. Tom refuses because he still has a crush on Sapphire, but pretends to kill her by flooding her house, knowing that she won’t be affected because she’s a squid. This does, however, kill George And Babby Getoot, as it’s revealed that it was just a toy after all, and the water short-circuited it. Sidenote gets his police officer friend, Gordon, to throw Tom into his dungeon. Sapphire finds out about Sidenote’s plan and breaks up with him.
Sidenote then goes a bit crazy and decides he wants to kill Tom and take over the world. It turns out this is because the flashback Tom saw was fake, and it was actually Sidenote who killed Sally, which he did because Sputnik is his drug dealer and accidentally gave him a bad batch of drugs, which were given to him by Sapphire because she wanted to drug him and force him to give her a bunch of money. At least, that’s what Sputnik thought, but he used a device called the Truth-O-Matic 6000 which determined that there was actually a pharmaceutical error, and the drugs Sapphire picked up to give to Sputnik were the wrong kind. Also, Sally wasn’t actually killed at all — it was only a clone of her that got killed. She had signed up for an experiment Sputnik was running where he offered $50 to be in an experiment where you were cloned. Therefore, nobody did anything wrong, Sidenote and Sapphire decide to get married after all, and Tom and Sally get back together. It’s implied at the end that Sputnik is the main villain in the story, setting up for a potential third game.
The story went through at least five drafts, with the help of several of my friends reading through the story and making suggestions for improvements. Most of the story was relatively finished at this point, with only minor changes being made, usually to make the story less edgy. Instead of Tom being shrunk and finding a “cave” that might contain sapphire stones, Tom is told to go inside Sapphire to figure out why she’s feeling so bad. Sapphire also canonically throws up George And Babby Getoot, although it’s still Sidenote’s and her child. All explicit drug references were also removed, although regular medicine is still brought up in the final story.
The ending still went through a lot of changes. The first draft’s ending was very long-winded, so the next drafts sought to simplify it. The character Spudnick (now Spud Nick) comes back in the second draft’s ending, although he is no longer in any pain from changing bodies from styrofoam to potato. George And Babby Getoot no longer dies, and is also no longer a toy. It’s revealed that George And Babby Getoot couldn’t be Sidenote’s child, as Sapphire met Sidenote one day ago, while the gestation period for a squid is two weeks, which means that him wanting to kill Sapphire and George And Babby Getoot was pointless. Sally is now actually dead, and Sidenote killed her because he had taken too many Drugs. Tom is freed from the dungeon. Sidenote is sent there by Gordon. He then bribes Gordon with $10 to send Sapphire to the dungeon with Tom and him (Tom is still in the dungeon due to a continuity error in this draft). It’s not a good ending for Tom or Sidenote, and especially not for Sapphire. Sputnik’s no longer any sort of secret villain, either.
Eventually, the ending was changed again so that Sidenote killed Sally because he thought that knocking out Tom and killing Sally for him would be easier than Tom breaking up with her, and not because of any sort of drugs or Drugs. Sapphire doesn’t get thrown in the dungeon at the end, and decides to date Tom in the end because he eats one of her tentacles and she’s into that for some reason.
While much of this period was spent working on the story, I still did some programming as well. The menu system was mostly implemented, with the first version of the main menu and options menu made, along with an updated level select screen. I made the rest of the game’s levels, although some would still be modified or replaced later, such as the Pseudorandom levels. There was going to be one Pseudorandom level in each world, which emulated the gameplay of Taco Tom by having ingredients generated in a random pattern. They weren’t actually random, as the pattern was the same each time the level was played, but the pattern itself was randomly generated. I cut these levels out as they weren’t very fun. I also added the Speedrun and Endurance modes, and had some of my friends play-test the game and provide feedback.
I also started adding the music during this time. I thought about composing my own music, but since I have very little experience in this area, and didn’t want to spend a ton of time trying to make songs that didn’t sound terrible, I decided to buy some royalty-free music instead. Most of the game’s music comes from Pond5, and the sample versions of the songs I put in the game had a voice say “Pond5” every twelve seconds as a watermark. This became a running joke, and I even had a joke option called Pond5 Mode which would play the sound effect every ten seconds (I couldn’t count, apparently) throughout the entire game. I cut this before the final release though, as it wouldn’t make sense to most people.
Actually Maybe Finishing the Thing (Jul — Nov 2018)
I took yet another break from developing the game, but got back into it around July when I decided that I really needed to finish and release the game that year. Back at the start of the year, my target release window was June, although I had never publicized that. Since July is after June, that meant that I had already missed that date. I set a new target date for October, and started working to finish the game.
One of the big things left to do was implementing the story dialogue into the game. All of the story drafts were written in a spreadsheet, with each character’s line being a different line in the spreadsheet. Each line also had columns for which characters to display, their facial expressions, and which one is talking. I saved the dialogue lines as a .tsv (tab-separated values) file, and the other columns as a .csv file, and imported them into the game.
One annoying aspect of this was that I had to manually add which line in the script each section of dialogue starts inside the program. This meant that if I ever changed the script and added or removed a line, which happened several times, all of these numbers had to be changed. Several individual lines also have special features which required extra programming, such as the line where Tom specifies whether or not he wants his groceries bagged in paper or plastic bags based on the option selected in the options menu (Hint: you can get an achievement by choosing plastic bags!).
I also added Wacky Mode during this time, which takes advantage of Construct 2’s effects and makes weird things happen to the screen in each level. I finished up the menus, too, and made a website for the game.
Multiplayer Mode was a late addition suggested by a friend, and involved copying all of the code from the main game and modifying it so that there were two characters and playfields. If one player gets a full taco, the other player gets pushed up the screen, making it harder for them to collect ingredients and easier to lose by getting three strikes. The first player to win five games wins the match. I was worried at the time that it would take a lot longer to get working, potentially up to two weeks, but I was able to get it working reasonably well in just a couple of days. I didn’t implement any sort of online functionality as I had no experience in this area and didn’t feel confident in making it, nor did I feel it was really necessary. Now that Steam’s Remote Play Together feature is out, people can play Taco Tom 2 online together that way. (Fun/Sad Fact: Until Remote Play Together came out, I had never actually played a multiplayer match of Taco Tom 2 with another person; I tested everything by playing against myself.)
Arcade Mode was an even later addition. This is basically just the gameplay of Taco Tom added to Taco Tom 2, so it wasn’t very time-consuming to implement. Ingredients are randomly generated, and become more frequently generated over time. The game ends when the player loses 3 lives. The scoring system was changed from Taco Tom so that each ingredient is worth 100 points, and getting a Full Taco adds bonus points based on how fast the ingredients are falling at the time.
Some of the last additions were programming the Steam achievements and leaderboards, which I was very worried about, but turned out to not be too difficult. The main issue I ran into was properly formatting the leaderboard times, as they won’t send properly if they have a decimal point and therefore aren’t integers. I added a practice mode that let players continuously play any individual level. I also got around to buying the music for the game so it didn’t play “Pond5” all the time, and I made the credits, adding fan art that my friends had made over the years.
Oh yeah, and every single image for every character for the dialogue.
At this point, it’s already November, having missed my internal October deadline. I had set a final new deadline for November 22, but it looked like that was going to be missed too, so I had a final final new deadline for November 29. I hadn’t wanted to spend a ton of time working on the art for each character, and a friend had offered to draw all of the character art for me, but deadlines were looming, and I decided that having a different person draw the character art would probably result in the characters looking too different to how they were represented elsewhere in the game, where I had drawn them. As a result, I spent a good four days pretty much non-stop making all of the character art, which ended up being well over 100 images. I decided to add an option to choose between the two sets of character art, so that my friend’s art could be added in a later update.
I then loaded all of the animations into the game and discovered that the way I had decided to choose which expression to load for each character was pretty fundamentally flawed. Each character had a set of up to 14 expressions, and their expression would be chosen based on what was happening. The problem was that for some of the expressions, their mouths would be open, and for others, their mouths would be closed, and this had no relation to who was actually talking. This meant that there were situations where the character whose mouth was open was not talking, and the character whose mouth was closed was talking. This was obviously very confusing, so I had to go back and remake each of the expressions with open-mouth and closed-mouth versions. This didn’t take quite as long as before though, as I already had the base of each expression, and just needed to swap out or create new mouths.
The game’s star system, where you’re awarded up to three stars based on how quickly you beat each world and on the score you got, wasn’t even thought of until the day before the game went gold. Most of the last two days of development were spent adding that system and figuring out which values would be appropriate for the star limits.
As the release date approached, I had several people play-test the game. Based on their feedback, I decided to lower the movement speed of Tom and the maximum ingredient fall speed by about 30 percent each, which made the game a bit slower and easier to play. I also modified a few levels that were too difficult or not designed very well.
Preparing for Release (Nov — Dec 2018)
Finally, I decided that the game was ready to release. I spent the next few days making the trailer for the game that would appear on its Steam page. The trailer doubled down on the game’s stock photo aesthetic, using a bunch of default text templates in the movie editing software I used that were vaguely reminiscent of WordArt. There’s an intentionally unprofessional look to the trailer that I was slightly worried about, but the reception of the trailer, at least from my friends and the people I showed it to, was pretty universally positive.
I also decided on the final price of Taco Tom 2: $6.99. I was thinking about making it $4.99 at launch, but my friends convinced me that was too cheap. Likewise, $9.99 seemed too expensive, so I settled on a number in between the two. I planned to put it on sale fairly frequently at a good discount — there was a 20% discount at launch.
The game’s official release date was set to Friday, December 14, which was either the earliest or second-earliest possible day to release based on when the Steam store page went live (the store page needs to be live for at least two weeks before the game can be released). I was also thinking about choosing Monday, December 17, as it appeared that fewer games were going to be released on Steam that day, but decided on the 14th as it meant the game would get more exposure over the weekend.
I also updated Taco Tom 2 to version 1.0.1 before release, which mostly fixed a few minor bugs and updated the credits. (Fun Fact: between the first save of Taco Tom 2 and its version 1.0.0 save, there were 69 different versions of the game saved. Nice!)
In order to publicize the game’s upcoming release, I used Steam’s Curator Connect feature to send Steam keys to over 50 curators, which I found to be mostly useless. Of the 50+ curators, only one left a review of the game. I also used Keymailer to send keys to other people not in the Steam Curator system, which was also mostly useless. I also contacted several Twitch streamers, mostly smaller ones who I enjoyed to watch myself, but I didn’t receive any responses from them either. I did get a few sales from advertising the game in a Discord server specializing in niche indie games, which was pretty cool.
Release Day! (Dec 14, 2018)
The most bizarre instance of advertising the game occurred on its release date. I was browsing Twitter as I tend to do every day, and I noticed this tweet from games journalist/YouTuber Nick Robinson (I know he did some bad things that he shouldn’t have done and a lot of people don’t like him because of that, but I thought this story was still worth bringing up as it’s the only instance of a well-known person mentioning the game):
Naturally, since the tweet was very urgent, I replied. This was my response:
It appeared that this response was a good one:
And indeed, it was the winner:
Nick also gave me a shoutout for providing the winning response:
Now, while I do technically have a SoundCloud, I hadn’t used it in a very long time, and the things I had uploaded to it were mostly just MIDI remixes of songs with the instruments replaced with the “bee” sound effect from Klik-N-Play (it’s a long story). One of my friends mentioned that I should advertise that I was releasing a game on Steam that day, so I did:
Nick retweeted this tweet, resulting in the only mentioning of Taco Tom 2 from a well-known games journalist happening because I suggested that Bowser putting an amiibo of himself up his ass would be funny. I doubt that this resulted in very many sales, but I do know that Nick bought the game, as he posted a time on the leaderboard and tweeted this picture, jokingly asking for a refund:
Eventually, I pressed the button on Steam that makes the game go live, and it was available for everyone to purchase. It was really cool watching people in my friends list buy the game in real time. I would refresh the game page and several more people from my friends list had the game in their library. I didn’t expect that they would be really waiting for the clock to strike 1:00 PM Eastern so that they could buy it.
The game appeared in the main pages of the action, casual, and indie sections of Steam. I don’t know how common this is, but I don’t think every game manages to do this, so it’s cool that my game did. This resulted in over a million total impressions of the game on Steam, which was way higher than I would have expected.
Sales remained pretty consistent throughout the first week, but I was slightly disappointed by them. I had already realized before launch that the chance of Taco Tom 2 becoming an actually successful game were minuscule, but I was hoping that it would sell a bit better than it did. By the end of the first week, it had sold just under 100 copies, at which point sales dropped to 0–1 copies per month, where they’ve stayed ever since, except during sales. The game also received only two reviews, although both of them were positive (which I later found out were both from my parents).
During the launch period, I was contacted by several organizations offering offers and requesting requests and stuff, and for the most part, I just ignored these. But there was one offer that I decided to accept from IndieGala. IndieGala is a well-known seller of Steam game bundles, and they wanted to put Taco Tom 2 in one of their upcoming bundles. Putting Taco Tom 2 in a bundle was definitely something I had in mind for its long-term selling goals, but I hadn’t expected an offer to come up so quickly. My friends and I were initially unsure about whether it would be a good idea to put the game in a bundle so quickly after launch, but I decided to go for it. Taco Tom 2 ended up in the Monday Motivation #66 bundle during January 2019, where it sold around 2,000 copies. Naturally, I made a lot less money per copy sold on IndieGala compared to Steam, so the amount of money I made from Steam and IndieGala ended up being pretty similar. I ended up making around $550 total from first-month Steam sales and IndieGala sales combined.
I made Taco Tom 2 50% off during the Steam Lunar New Year Sale, where it sold a staggering one copies. In May, I went all-out and made Taco Tom 2 90% off for a week, where it sold for a nice 69 cents. It sold about 15 copies during this sale. The game was 90% off again during the Summer Sale, where it also sold about 15 copies.
I updated the game a couple of times post-launch. The version 1.0.2 update came out on December 22, and fixed a few bugs and changed a few lines of dialogue. The version 1.1.0 update, known as the Soft-Shelled Update, came out on March 16, and added a bunch of new features, including an easier difficulty mode where you can have infinite mistakes per level, an optional slower movement mode, and Taco Sally as a playable character.
In October, I decided to permanently reduce the price of the game to $4.99, as it simply wasn’t selling at all at $6.99. This coincided with the release of the game on itch.io. Releasing the game on itch.io was something I had considered before the original launch, but I decided against it because the Steam achievements and leaderboards naturally wouldn’t work. I changed my mind because the game had already been out for close to a year, and because I wanted to see how many people buy games on itch.io. The answer so far appears to be not a lot — it’s sold just one copy there so far.
I also set the game to 90% off for the Halloween Sale, and 86% off (69 cents at $4.99, because that’s apparently a funny number) for the Fall Sale. Again, about 15 copies were sold during each of these sales. The game also got four new reviews during the Fall Sale, probably because Steam added a reward for reviewing a game that came out in 2019 (Taco Tom 2 came out close enough to 2019 that it counted).
You might remember I mentioned an Xbox One port of the game quite a bit earlier on. I had intended to release this version of the game shortly after the Steam version came out, but I ran into a bunch of technical difficulties and eventually cancelled the port. Construct 2’s exporter to the Xbox One is simply not efficient enough for the game to run well on the system. There are definitely things I could have done to get the game running a bit better, especially in the main game which uses up several hundred MB of RAM, which is apparently too much for the Xbox One to handle and caused the game to crash a lot of the time, but the frame rate was so bad that I felt it wouldn’t be feasible to get it working well enough.
I also worked on an Android version of the game during the summer of 2019, despite my original thinking that the control system would be too complex to work on a mobile device. I solved this by having two buttons on the left to move left and right, two buttons on the right to speed up and slow down the ingredients, and swiping the screen left and right to dash. Multiplayer and Wacky Modes were removed, but a new Random Mode was added to compensate, where the specific ingredients that spawn are chosen at random. This version of the game was fully completed, even with Google Play achievements and leaderboards, but it was never released. That’s because the Google Play store requires the developers of any paid games to list their real address. I didn’t want to pay the money to get a PO Box with an included address, and I certainly didn’t want to have my actual address publicly visible there, so I ended up just never releasing it.
As I mentioned previously, I was somewhat disappointed overall with Taco Tom 2’s sales. I still haven’t received any money from sales after the first month, except for the one sale on itch.io, as Steam has a $100 minimum payout, which the game still hasn’t met. So, what went wrong? What could I have done to make Taco Tom 2 be more successful?
The game wasn’t marketed.
Nobody can buy your game if they don’t know it exists. I did very little marketing for the game, most of that being right before or right after the game launched, most of which was unsuccessful. Getting involved in marketing is not something that I particularly enjoy doing myself, so I simply avoided it for the most part. I also chose to not spend any money on marketing. I could have spent money if I wanted to, but I was unsure about the potential returns I’d get, so I didn’t. I hoped it would just become popular through word-of-mouth, which it didn’t.
The game was only in English.
I didn’t have the resources to translate the game’s story to other languages, which meant that people who don’t speak English wouldn’t be able to follow the plot, and would be less likely to buy the game. Had the game been translated into other languages, then its marketability in those regions would have greatly increased.
The game maybe wasn’t fun enough, or the difficulty was maybe too high.
Based on the Steam leaderboard data, of the currently 60 people who beat the first world out of 10, only half beat World 2, one third beat World 3, one sixth beat World 5, and just over one tenth beat the full game. This means that either the game wasn’t fun enough and people got bored, or the game was too difficult and people couldn’t beat the levels. It’s normal for the percentage of people completing later levels to decrease, but I feel like it’s more pronounced in my game than it usually should be. Additionally, only about half of people who have played the game even beat the first world, based on achievement data. I think there might be a glitch that can cause every achievement to be unlocked, as the rarest achievements have unlock percentages that seem to be too great, so the actual number could be even less.
The overall presentation was maybe a bit cheap.
This one might be a bit controversial, as there’s definitely something to be said about the game’s overall aesthetic. I’ve heard from some people that the stock photos made the game seem cheap, while I’ve heard from others that it makes the game unique and stand out. Personally, I think that the stock photo graphics were fine in terms of presentation, but there were other areas that could have been improved. The 8-bit pixel graphics of the ingredients clashed with the rest of the graphics in the game, and the character art was a bit rushed and lacks detail. The dialogue system is also not as fluid as in some other games, like Celeste and Donut County. The text just appears without any “typewriting” effect, and there are no custom sound effects for any of the characters talking. I probably could have improved this a lot if I spent more time working on it.
There were definitely also some good things about Taco Tom 2 that are worth mentioning:
The trailer is apparently pretty good.
The trailer for Taco Tom 2 was pretty universally well received, as I mentioned earlier. Had I made more of an effort to market the the trailer, there’s a chance that it would have caught on and the game would have become more popular that way.
The game is solid (as in it doesn’t have any glitches, not as in it’s a physical object, because it’s not, it’s digital-only).
I spent a lot of time during the development of Taco Tom 2 to ensure that there were as few bugs as possible in the game. I can’t actually think of any significant bugs that I know of in the current version of the game.
There are also some things worth mentioning that I don’t know if they’re good or bad:
Pricing the game.
It’s hard to say whether initially pricing the game at $6.99 was the right thing to do or not. Most of the game’s non-super-sale-price sales came during its first week of availability. Would I have sold more copies if the game was $4.99 ($3.99 at the 20% launch discount)? Probably. Would it have been enough to offset the loss in profit per copy? I don’t have any idea, and there’s no real way to know the answer to the question. Overall, even though I eventually did lower the price to $4.99, I don’t regret pricing the game what I did.
The IndieGala bundle.
Most of the copies of Taco Tom 2 that exist today came from the IndieGala bundle it was in. However, the percentage of people who got the game from this bundle that actually played it is extremely small. My guess is around 3 percent, although I have no real data to back that up. While the bundle was a great way to get increased sales numbers, it didn’t really help to get increased player numbers.
The gameplay and the story.
This is something I’ve thought about for some time. Essentially, since the gameplay and story are the most important parts of the game, this boils down to the question “Is Taco Tom 2 actually good?” which I don’t really know the answer to. I like the game a lot, of course, but I’m obviously biased because I made it. I definitely don’t think it’s one of the best games ever made, either — I left it off of my Top Ten Games of 2018 list for obvious reasons, but I also mentioned that even if I did consider it for inclusion, it likely wouldn’t have made the list. Perhaps this was just me overcompensating for potential bias, though. My friends all say it’s a good game, but they’re my friends, so they’re naturally biased too. Not enough random people have really talked about the game for me to really get a feel on what the general opinion of it is. So while I think and hope that it’s an alright game, it’s hard for me to really know for sure.
So, what would I have done differently if given the chance? I think it comes down to two things: spend more money on developing the game, and make it even better. The total amount of money I spent on developing Taco Tom 2 was about $600, including all of the assets used in the game, the cost of the programs bought to do certain things for the game, and all of the licensing fees. I could have spent a lot more money on the game if I wanted to, but my goal was simply to spend as little money as possible. I could have spent more money towards commissioning graphics and artwork for the game, or towards custom music made especially for the game. Additionally, spending money towards marketing the game could have helped sales through increased recognition, but there’s also the chance that it wouldn’t have. Marketing is always a risky thing in that regard, and I don’t really know the best ways to market an indie game. I kind of feel like there aren’t really any — it’s super hard for an indie game to get anywhere these days.
In terms of making the game better, I would have spent more time on making the game look as aesthetically pleasing and convenient as possible. As previously mentioned, the dialogue could have moved more fluently and the characters could have had more personality through individualized sound effects. The game over screen is basically just a static picture of text — this could have been animated in some way to make it look nicer. There’s no way to play the Endurance or Wacky Modes for a single world, which makes those modes a pain to play. The little things like that can add up to make a game a lot more immersive and enjoyable to play, and I think I could have done more in that regard. Would doing these things have made Taco Tom 2 a massive success? Probably not, but it definitely wouldn’t have hurt.
In the year since Taco Tom 2’s release, I’ve mostly focused on making little One Hour Game Jam games, which are games made based on a given theme in an hour or less (or a bit more). I’ve made more than 25 of them so far this year. Here’s a link to them if you want to try them out. I plan on working on more in-depth projects over the next year, although nothing’s set in stone yet.
Hopefully you enjoyed reading about the development and release of Taco Tom 2. This article ended up being way longer than I thought it would be, so hopefully it was worth your time if you made it this far. I’d consider adding even more, but then it would be past midnight. Thank you for reading.