Frontier of Freedom Postmortem: What I Learned from Making Pongg

Pongg is the game that I designed for the “Frontier of Freedom” assignment in Jesse Schell’s game design class. The title is a portmanteau of “Pong” and “GG,” where “GG” is an abbreviation for “Good Game.” It’s essentially Pong, with a bullet hell component added. Here is a video demo of the final product:

The initial idea of the game was actually a mix between Pong and breakout, since I thought that adding breakout blocks would be a cool way of altering the Pong field to create interesting gameplay. However, after a quick prototype, it just wasn’t really that much more interesting than regular Pong. I mean, there were bricks in the middle of the screen… but it just felt like playing Pong with bricks.

After a bit more brainstorming, I came up with an Undertale-inspired Pong where you have to dodge bullets. The difference between “Pong with bullets” and “Pong with bricks” is that it’s a lot easier to make bullets more exciting than it is to make bricks exciting.

So yeah, that’s how that happened. And rather than re-documenting the playtesting process, I’ll use the rest of this blog post to list a few things that I learned from making Pongg.

Some of the Things that I Learned

1. Getting People to Understand a Game can be Really Hard

One of the major problems that I had with the game is that very few people could actually play the game without me having to explain it to them. A lot of feedback that I got throughout the process is that the point of the game wasn’t clear, which is surprising given how simple the game is. Just play Pong, while dodging bullets at the same time. How complicated could it be?

What I didn’t realize is that I designed my game based on my experience playing various bullet hell games. In particular, in bullet hell games, there is a concept of a “hitbox,” a small area within your sprite that can get hit by bullets. The hitbox is usually just a few pixels in the center of your sprite, and the rest of your sprite is just decoration. In my game, I had a paddle with a heart-shaped hitbox in the middle, but for someone who has little experience with bullet hells, this concept can be a bit hard to explain.

But what really made the problem worse was that the paddle had an actual function. It wasn’t just a decoration like you would see in other bullet hells; you have to hit the moving ball with your paddle in addition to dodging the bullets with your heart. In a way, it’s like having two separate hitboxes, a tiny one for bullets, and a large one for the ball.

At this point, the game is already slightly complicated, and I haven’t even started to explain any of the fighting system yet. Yes, there is a fighting system with HP and energy meters, basic, special, and ultimate attacks, and you can also change the size of your paddle and movement speed. You probably guessed where this is going… a lot of my players didn’t realize that these mechanics existed without me having to explain each of those mechanics.

For the assignment, I addressed this problem by creating a lengthy help screen that explained all the mechanics as clearly as I could. But to be honest, this is a pretty bad solution. What I ended up with was a lengthy series of instruction screens with quite a bit of text, and a lot of people skipped through it. Given enough time, I would have created a set of single player “feature tutorials,” which introduce each of the mechanics one by one. It would go somewhat like this:

  • Phase 1: Just have a regular Pong game with regular paddles, where you’re up against an AI. No hitboxes or bullets or anything else. Since most people have heard of Pong before, this should be a good introduction to the game.
  • Phase 2: After you score a few goals in the previous phase, introduce the heart hitboxes and bullets. The AI controlled enemy would “get upset that you scored so many goals” and start shooting bullets at you.
  • Phase 3: You are introduced to normal attacks, so now you can fight back.
  • Phase 4: After the AI gets hit by one of your bullets, it will “get angrier” and use a special attack.
  • Etc, etc, until all the mechanics are explained.

Having a series of tutorials like this would be much more interesting for the player than reading some help screens, and the dialogue is a good way of introducing characters, if I ever want to go in that direction.

2. Sound is Super Important

This is a really obvious point, and everyone knows that it’s true. But still, sound is often overlooked in the design process for some reason. I was guilty of doing this when I was making Pongg.

I knew I needed to add some background music early on, so I went to Kevin MacLeod’s free music site and picked out something that sounded good. But what I hadn’t thought about was what it felt like to play my game, and how well the music fit the feeling of my game. It turns out that the music I picked was a terrible match for my game. The music is very calm, but my game has a lot of action, and this mismatch makes the game feel weird to play.

Near one of the last playtesting sessions, a player made a comment about the music, and I realized that my the music that I selected was a poor choice for the game. I quickly switched to a more energetic piece of music, and the results were astonishing. Before, most people would only play one or two games before asking me when they could stop. But in the playtests conducted after I changed the music, none of the players asked me when they could stop.

So the important thing here is that just adding music to your game isn’t enough. You have to consider how well the music fits your the style of your game; otherwise, the game won’t feel good to play.

3. Balancing Asymmetric Games is Hard

This is also a bit obvious, but I never really thought about the work that goes into balancing until I actually had to do it for this game. In the last few playtests, I got feedback that one player was a lot more powerful than the other player. More precisely, it was that the pink player’s ultimate attack was too random and impossible to dodge. After tweaking it just a bit, all of a sudden, the blue player was now too powerful – but that’s because the blue player’s special (not ultimate) attack was better than the pink player’s special attack.

In the end, I decided to add an “auto-balancing” mechanic: if one player wins too much, he will unlock “hard mode,” which is essentially a handicap for the other player. This isn’t a great solution, since the handicapped games are perceived as unimportant. Given more time, I would have liked to balance the two characters better, but there wasn’t enough time to playtest at that point.

In retrospect, what I should have done is make multiple versions of the game, each with a different balance, and test them all at a single playtesting session – rather than balancing a bit, then playtesting, then balancing a bit more, then playtesting again, etc. After having a hard time balancing just two characters, I’m really amazed at how games like League of Legends manage to balance over 100 different characters.

So What Now?

I do think this is a fun game, and a lot of my playtesters enjoyed playing it. In the future, I’d like to make a fighting game like this – one where you play Pong and shoot bullets at each other. It would be an online game, so two players can play against each other on different computers, and there would be more than two characters to choose from. I also want to replace the paddles with actual animated characters, so that it feels less like Pong and more like a novel fighting game. But for now, here’s the Unity project for anyone who’s interested.

Why Osu! has Kept Me Engaged for Over 4 Years

Osu! is a popular online rhythm game involving clicking circles. It’s been out since 2007, and it’s changed a lot over the years, but the core mechanic has stayed the same: click the circles (and sliders/spinners) that are synchronized with the music.

"Big Black" - one of the most difficult maps a few years ago.
“Big Black” – one of the most difficult maps a few years ago.

When I first started playing, I thought that it was a super hard game. In most of the “maps” (levels), I would die within the first 3 seconds of starting. That by itself is frustrating, but I kept playing because I enjoyed the music. Later on, one of my friends told me that he could clear this “super hard” map, and my first thought was “there’s no way you could clear something like that.” I watched him clear it in person, and I was suddenly motivated to clear it too.

"True Truly Love" - The first "hard" map that I was motivated to clear.
“True Truly Love” – The first “hard” map that I was motivated to clear.

As a game designer, I think that this type of motivation is very powerful: when the players’ goals are locked behind a skill wall, those players will spend tons of time obtaining the skill to reach their goal. For me, I attempted the particular map I mentioned over 600 times before finally beating it, and beating it was such a good feeling. At the same time, it’s hard to make people feel this type of motivation. Most players would probably give up at some point, and I probably would have done that too if it weren’t for the fact that I enjoyed the music for that level. But with Osu!, the sheer number of levels is so great that pretty much anyone can find a map that they enjoy.

This brings me to my next point. I only spent a couple weeks on that one level, but why did I keep playing for years and years? Well, it’s similar to what I just mentioned: there are just so many levels in Osu!. Shortly after I cleared that map, my skill level jumped up, and I could clear a tons maps that I used to fail at. But there were still tons of maps that were still hard for me. At this point, I had already felt that feeling of accomplishment from clearing the previous map, and in order to experience that feeling again, I kept looking for harder maps. The next most memorable map I cleared is this map, which took me over 400 tries. Even after 4 years of playing, there are still maps that are too hard for me, and I won’t be running out any time soon.

"Manima Ni" - A harder map that I was motivated to clear.
“Manima Ni” – An even harder map that I was motivated to clear.

But how does a game get so many levels? It’s impossible for game designers to have so much time on their hands – just planning out all the beats with the music takes a ton of time already, and then there’s all the playtesting and iterations that have to be done too. Osu! gets around this problem by letting the players create levels; almost every single map in the game was created by players.

To me, letting players create levels is a good idea. Players can play the game, but if they have a favorite song that isn’t in the game, they can just make their own map using that song and share it with others. But just having a level creator has a bit of issues. If anyone can create a level and submit it, there is no quality control happening. And any kind of quality control would be difficult to manage for the developers because of the sheer volume of levels being made. But what Osu! does is really interesting. In addition to letting the players create levels, it also gives players the role of quality control.

But here, “quality control” doesn’t mean that you have to pass the test to share your map with others. Instead, there are two categories of maps: “ranked” and “unranked.” Anyone can create and submit a map, and it will automatically be placed in the unranked category. However, if the map passes the player-driven quality control process, it will get moved into the “ranked” category. The difference between ranked and unranked maps is that ranked maps have a global high score table and unranked maps don’t. When players play ranked maps, their scores get recorded, and based on how well they do, they get performance points which are used to rank players.

The osu! players with the highest ranks.
The osu! players with the highest ranks. At the time of this post, my rank is around 48,000.

Having player created content in game has multiple benefits. I’ve already mentioned an obvious one: there is tons of content in the game. No matter who you are, there is at least one map that you’ll like, and there is always new content coming out every week. As a player, I’ll never run out of content to play. In addition, it’s super exciting when a map comes out and it references something cool, like the recent Undertale map that came out. As developers, you get a never-ending stream of content updates without having to do a thing, and even better, you don’t have to pay anyone for it!

"uNDeRWoRLD MoNaRCHy" - A really cool Undertale inspired map that came out recently.
“uNDeRWoRLD MoNaRCHy” – A really cool Undertale inspired map that came out recently.

Another benefit is that creating this player-driven system also generates a ton of innovation that otherwise wouldn’t have happened. Over the course of 4 years, there has definitely been a shift in the style and increase in variety maps. At some point, a player “figured out” a good way of mapping dubstep songs using really crazy sliders, and all of a sudden, a ton of dubstep maps popped up, all with a similar style:

And then there are some other innovative maps that only the creator would have thought of making. For example, the following map removed the hit-circles and used the blue bar in the background video to tell you when to click the circles instead:

And sometimes, a map is so entertaining to watch that it doesn’t even matter if it’s playable or not (the intro in the following video ends at 0:50; see if you notice the Pong and Tetris references):

Despite how good of an idea player-created content sounds, why don’t many games make use of it? Recently, Super Mario Maker has taken this approach, and it seems pretty successful – but that’s pretty much the only other game that uses player-created content that I’ve heard of. Other than some legal complications that may come up, is there a reason for not using player-created content? It might not fit for certain types of games, like story-based RPGs, but as game designers, if we’re making a game with lots of levels, couldn’t we turn the level-creation process into some type of social game as well? That just seems like a blue ocean waiting to be explored.

How I Got Hooked into League of Legends – and Why I Eventually Stopped Playing

For those of you who don’t know, League of Legends is one of the most popular online games in the world. It is a MOBA style game where two teams of five play against each other, and the goal is to destroy the opposing team’s base.

When I was first introduced to League of Legends, I actually didn’t enjoy the gameplay. I’ve never played a MOBA game before, and I wasn’t used to it. However, I still kept playing the game because of the characters. League has an impressive cast of over 100 playable characters – more than any game that I’ve ever played – and wanting to learn the backstory behind each character was my initial motivation for playing the game.


Because the amount of champions was overwhelming, I tried the ones that looked the most interesting first. There were three that caught my attention right away: Teemo (a cute, fuzzy animal-thing), Veigar (the black mage from Final Fantasy), and Thresh (a cool looking grim reaper type of character). All of them were satisfying to play, though the one that stood out the most was Thresh.

In my opinion, Thresh is a very well-designed champion. Although his skills are a bit complicated, they allowed me to pull off very intricate (and satisfying) maneuvers in the game. But that’s not the reason why I think he is a good champion. Rather, I think Thresh is well-designed because his style of play matches very well with his character. Take a look at his signature hook skill:

It’s a very satisfying skill to land, but moreover, every time I use the skill, I feel as if I were actually in the game, catching other people in my hook. This skill created a level of immersion that literally hooked me into the game.

After playing a lot of games as Thresh, Teemo, and Veigar, I became pretty familiar with League of Legends. And strange as it may sound, this is also the point where I stopped feeling the immersion that I used to feel when I just started playing the game.

In the beginning, my motivation for playing was to explore and learn about all the characters in the game, but as I became more familiar with League, that motivation started to shift towards completing objectives instead. The game was no longer about interacting with the characters or the world; instead, it was now about winning games and gaining ranks.

This new motivation added a level of stress to the game that originally wasn’t there: if you win a game, your rank goes up, but if you lose a game, your rank goes down. This stress is amplified by the fact that games are played with four other people on the team. If I picked a risky champion and perform badly, I would be letting the other people in my team down. Champions who had interesting characters were no longer who I could pick. Instead, I could only pick champions that had good chances of winning. Needless to say, this made League of Legends a lot less fun for me.

Maybe it’s just my mindset that made me enjoy the game less. After all, someone who doesn’t care about winning or losing can still have a ton of fun playing all the characters in the game. However, because League of Legends is a pretty competitive game, I think it’s safe to assume that a large portion of its target audience has a similar mindset.

How Can this Problem be Fixed?

After thinking a bit about this problem, I came up with a solution. One of the main reasons why League of Legends becomes stressful is that for me (and probably many other players), the primary motivation for playing shifts from having fun to winning games. And whenever winning becomes the primary motivation for playing, the frustration associated with losing surfaces.

This is particularly true for League. Since you are randomly matched with a team of people, your chances of winning are now dependent on how good your team members are – which is something out of your control. This problem is exacerbated by selection bias: we tend to remember bad games more than we remember good games, so even if the number of good and bad games are equal, it will seem like we have more bad games than good games.

So how would I address this problem? The key question I asked myself is, “when did I have the most fun playing?” And as expected, the answer wasn’t “when I won games.” Instead, I had the most fun with League when I was playing with others, and during these moments, League functions more as a social game than a competitive game.

Thus my solution to this problem involves improving the social aspect of League. If it is easier to get with a group of people who all know each other, then the motivation for playing League will start to shift away from winning games, back to having fun with a group of people.

Unfortunately, League does not currently have a social structure that makes it easy to find a group of people. Even a Riot employee admits it: “the game’s social features don’t offer enough support for players looking for like-minded, similarly-skilled players today” (source). But luckly, there is a well known structure that can make people connect more easily: guilds.

Guilds are already used in many MMORPGs, and they allow large groups of people to organize events, like parties for dungeons, large scale “PvP wars,” and so on. In League, this would allow people to organize teams of five much more easily than the current systems in place.

But more importantly, guilds are extremely good at letting people connect with each other. The moment you join a guild, you instantly form a connection with every member of that guild, and you are now part of that group. This feeling of membership makes you want to play more, just to be part of that group – so this is an extremely good way of retaining the more casual League players.

League of Legends seems to be heading down a competitive path, and as an E-sport, it’s important for the game to feel competitive. But at the same time, I think that focusing too much on how to make the competition better will slowly shut out the more casual audience. In my opinion, it is important for Riot to take a couple steps back and think about how they can improve the social aspect of the game – as time goes on, the game will become more and more complex, and it will be harder and harder for new players to get into the game. Improving the social aspect of League would not only make it easier for new players to get into the game, it would also help retain the older players in League.

Disgaea and Final Fantasy Tactics: A Comparison of Two Isometric Strategy Combat Games

Recently, I have played Final Fantasy Tactics A2: Grimoire of the Rift and Disgaea 2: Dark Hero Days, two really good games in the isometric strategy combat genre. Because those are pretty long, in this post, I will abbreviate them to “Disgaea” and “FFT” respectively.

Disgaea vs FFT Graphics

On the left is a screenshot of FFT, and on the right is a screenshot of Disgaea. Although both games were fun, I had more fun playing Disgaea than FFT. There are a few reasons for this: the combat in Disgaea is more fun than the combat in FFT, and the characters in Disgaea are more entertaining than the characters in FFT. In this post, I will explain why I enjoyed Disgaea more by examining the differences between the combat systems and characters in Disgaea and FFT.


The main combat system in Disgaea and FFT are very similar: combat is turn based and takes place on an isometric field, and each turn, every character can move a certain amount of tiles and perform some actions.

Turn System
The first difference between the combat systems is how taking turns work. In FFT, each unit has its own “turn counter,” and units get to move when it is their turn. In Disgaea, combat alternates between player and enemy turns. On your turn, you get to move all of your units, and on the enemy turn, all of the enemy units can move. This difference significantly affects how the game feels:

  • In FFT, a large portion of combat feels like you are waiting for your turn, especially if the enemy units outnumber your units. Furthermore, during your turn, you can only perform one action.
  • In Disgaea, because all enemy units move simultaneously, a lot less time feels like waiting. In addition, you can perform a lot more actions per turn (one per unit you control), creating a lot more depth in strategy.

Mana System
Another difference between the two games is the mana system. In FFT, during each battle, your units start with 0 mana, and they gain some mana per turn. Every special ability costs some mana to cast, and the more powerful abilities require more mana. Because of this, in order to use your more powerful abilities, you have to “skip” a turn. The pacing of turns in FFT already seems slow, and not being able to cast abilities every turn makes the game even slower.

In Disgaea, units start out with full mana and do not regain mana per turn. In this system, you can cast your most powerful spells right from the beginning, and you can keep casting them until you run out of mana. The ability to do this makes combat feel better, since there is less waiting involved.

Additional Mechanics
Other than the usual mechanics found in strategy-combat games, each game provides a twist on the normal combat system. FFT has “laws” which are conditions that you must obey during the battle. If you break a law, you will get punished. Disgaea has “geo panels” which are conditions that affect certain tiles on a map. Units that are standing on these special panels will gain the effects on those panels. Below, in the screenshot to the left, you can see that “Harming Moogles” is illegal. In the screenshot to the right, the blue panel has the “Evade” and “No Lifting” effects.
Laws vs Geo Panels

Gameplay-wise, the “law” mechanic in FFT feels frustrating. One of the main reasons for this that enemy units can completely ignore the law, while you have to uphold them. This creates a feeling of unfairness in every battle in the game. Even though you can break the law (the punishment for doing so pretty negligible), it still feels unfair to be punished for it, and this feeling makes combat less fun than it could be.

On the other hand, the “geo panel” mechanic in Disgaea (usually) affects both your units and enemy units, which makes combat more interesting. In the above screenshot, the “Evade” condition makes units miss their attacks more often, but if you can get your units on those tiles, you gain an advantage in battle. There are still some effects like “Enemy Boost x3” and “Ally Damage 20%” which boosts enemy stats and damages your units respectively, but unlike in FFT, you can remove these effects in battle by destroying the corresponding “geo symbol” unit.

When you destroy a “geo symbol” unit, if it is a different color than the panel it’s on, it will change the colors of the panels it effects to its own color, damaging all units on those panels (usually enemy units). So unlike in FFT, you are rewarded for removing conditions rather than punished, making the combat feel more fair. In addition, when you destroy “geo symbols,” the damaging effect can end up destroying other “geo symbols,” starting a giant chain reaction:

This is the most fun mechanic that I’ve ever seen in a turn-based strategy combat game. Not only does it add a really cool puzzle element to combat, it also gives a high risk, high reward choice to the player (you get bonus items for getting high combos). Should I risk being attacked by enemies and create giant chains, or should I ignore the puzzle and just kill all the enemies?

With respect to gameplay, the “geo panel” mechanic introduced by Disgaea adds a lot of depth to the strategy, whereas the “law” mechanic introduced by FFT just feels like something that was arbitrarily added to make the game harder.

Character Development

When it comes to characters, Disgaea also did a better job than FFT. When I was playing FFT, I found myself not really caring about Luso or any other character in the game – for the most part, they felt shallow and boring. In Disgaea though, the characters were much more interesting, and I was compelled to use them in combat.

Facial Expressions and Emotions
One of the reasons why Disgaea has more interesting characters is that the characters in Disgaea have facial expressions. Though you can infer the character’s emotions through dialog in FFT, it wasn’t very convincing because the characters were stone-faced in the game. Take a look at the sprite sheets for Luso (left) and Adell (right), the main characters in FFT and Disgaea respectively:

Luso Sprite Adell Sprite

On the right side of Adell’s sprite sheet, you can see him go through a variety of facial expressions and other animations, but none of that exists in Luso’s sprite sheet. While Adell can perform all sorts of poses, the only thing that Luso can do is walk around, sit, and lie down.

Reasons for Using Characters
In both games, there are generic characters that you can recruit and use in battle. These generic characters have very small impacts (if any) on the story of the game. Having generic characters is fine; they’re actually really good at making the main characters feel more unique. The problem occurs when the generic characters are too similar to the main characters – making your main characters feel less special.

This is exactly what happens in FFT. Almost everything a main character can do, a generic character can also do. There are a few character-specific classes in FFT, but Luso, the most important character in the story, is just a re-skin of the generic human character. Other than a few battles where you are forced to use Luso for plot reasons, there is no other incentive in the game for using him.

On the other hand, Disgaea does a really good job in making its characters feel unique. All of the characters have a set of unique skills that generic characters cannot obtain. Below are two examples of these unique skills:

Not only do these skills give you a reason for using the characters, the short cutscenes that play when the character is performing the skill are perfect opportunites to build their personalities even further.


Although the Final Fantasy Tactics A2: Grimoire of the Rift and Disgaea 2: Dark Hero Days are both good games, I thought FFT fell short in two really important areas: the combat and the characters. The combat system in FFT feels slow, and the various mechanics don’t allow for a lot of depth in terms of strategy. The characters in FFT feel shallow, and it is hard to care about them. So how could these problems be fixed?

Combat Improvements
The current unit-based turns in FFT makes combat slow, but changing that around would require redesigning the entire combat system. By itself, I think the current turn system is fine, but when you add in the mana system, your mage units have to skip their turn in order to cast more powerful spells – and skipping turns never feels good. Reworking the mana system so that you start at full mana would require rebalancing many magic spells, but it will also eliminate the turn-skipping problem that mages face.

The “law” mechanic in FFT is frustrating because it creates an asymmetric situation that is never in your favor. Though this might add another layer of strategy to the combat, it also makes combat feel unfair. There are a few ways that this problem can be addressed. First, change the law mechanic so that it affects both your units and the enemy units. This is how the law system in Final Fantasy Tactics Advance works. With this change, you can use the law to your advantage by forcing enemy units into situations where they have to break the law.

Alternatively, have some battles where the law affects you but not the enemy, and have some battles where the law affects the enemy but not you. This would require reworking the punishment system for breaking laws, but it’s a lot closer to the current system in that game has. A benefit for using this system is that you can greatly change the difficulty of certain battles by setting laws against the player or against the enemy.

Character Improvements
There are a lot of things that could be done to make the characters in FFT more engaging. The easiest thing to do is to give the character some more portraits with different emotions, and change the portraits during dialog to reflect their emotions. The sprites can be the same, since players will project the personality that they see in the portraits onto the sprites.

Also, we can make Luso more unique by giving him a class that only he has access to or an item that only he can equip. In the story, he’s from a completely different world… there has to be something that makes Luso different from the other humans, right?

Of course, all of these ideas might have their own problems, and playtesting is the only way we can know about them. For anyone who is considering on making a similar type of strategy-combat game in the future, creating a well-paced battle system that feels fair and making the main characters engaging are important things to keep in mind.

Ritual of Vitriol: A Global Game Jam Postmortem

This past weekend was my second time doing the Global Game Jam. Last year, I was on a team of five, but this year, I wanted to challenge myself by going solo. In a period of 48 hours, I created the game Ritual of Vitriol, a game about clicking the downvote button on Reddit.

The theme this year was “ritual,” and I decided to interpret “ritual” as daily routine. During the brainstorming session, the phrase “Virtual Reality” came up, and I said “what about Viritual Reality” somewhat jokingly. But then, this pun made me think of the word “vitriol,” which means harsh criticism. This eventually led to downvotes and Reddit, which is the theme for my game. The game was pretty successful and received an honorable mention from the judges, and playing the game was actually fun.I want to use this post to discuss what went well, and what I could have done better during this game jam.

Things That Went Well

Because I was working alone, I didn’t want to over-scope my game. Thus I started out with something like Cookie Clicker, except with a minimalist down arrow instead of a cookie. The sole objective of the game was to click on the downvote arrow, and my objective was to make the act of clicking as fun as possible.

I took inspiration of a game that I encountered during LD34 called Very Hungry SNAKE. The first time I started playing that game, I had the oh-this-is-just-a-clone-of-some-existing-game feeling, but as I picked up a special powerup, I was surprised at what else the game had to offer. It wasn’t as intense as the feeling I got from playing Candy Box 2 for the first time, but it was similar, and I wanted to recreate that feeling in my game.

Both of the games mentioned start out super simple, then introduce some unexpected twist that is fun to experience. In my case I started with a large stationary downvote arrow, and once you click it enough times, it starts to move down off the screen, smaller downvotes and upvotes start flying around, and the game suddenly becomes more interesting (see video for details).

Designing the Interest Curve
Because I scoped my game well and the mechanic of my game was so simple, I had a playable version by the end of Friday night. I spent almost all of Saturday and Sunday on polishing and improving the game. A large amount of this time was spent thinking about interest curves. An interest curve is a plot of how “intense” a game is versus the amount of skill you have. For a game this simple, your skill correlates closely to how much time you spend playing. An ideal interest curve should increase overall, but have peaks and valleys.

An interesting example of designing an interest curve can be seen in the EXP tables for Tree of Savior. The drops in the EXP curve at level 47, 87, and so on are valleys in the interest curve. These valleys provide breaks for the player and adds a refreshing moment in the gameplay.

For my game, I took a similar approach. Initially the game starts off slow, but it quickly ramps up. Then there is a break, which then ramps up again, and so on. The different “levels” of gameplay is determined by how many downvotes you have clicked during the game, and each time you progress to a new level, the “yay” sound effect plays. Below is a detailed list of every level in the game with a description of each level:

Downvotes Description
0-10 A large stationary downvote in the center of the screen. This serves as a tutorial for the player, and it creates the initial part of the “Candy Box Effect.” Initially, the downvote range was from 0-25, but this was changed to 0-10 because people got bored before reaching 25 clicks.
11-25 Downvotes start to spawn from the top and slowly move down the screen. The main purpose for this stage is to introduce the fact that downvotes can move. This also completes the “Candy Box Effect” which is set up by the previous level.
26-50 Upvotes are introduced for the first time. Upvotes appear over downvotes, and block you from clicking them, and they add a feeling of “danger” in the game.
51-70 The speed and spawn rate is increased. This is the beginning of the first difficulty ramp.
71-100 The speed and spawn rate increase even more.
101-130 The speed and spawn rate increase even more. In addition, the HP drain is doubled. At this point, most first time players have lost already. However, because of the quick ramp, most players who reach here end up trying again. (The increased HP drain is a sneaky way of killing off players without them noticing. Most of them will get past this part within their next few tries.)
131-165 The speed is decreased, but the spawn rate stays the same. At this point, large, dark-orange upvotes are introduced. These upvotes appear behind the downvotes, so if you’re clicking the downvotes, they have no effect. These new upvotes have 2 purposes: one is to serve as a penalty for missing a downvote. Their second purpose is to increase the amount of orange on screen, which makes the game feel more intense. The presence of these new upvotes combined with the decreased speed of other object results in more objects appearing on screen which increases the intensity of this stage.
166-200 Large upvotes no longer spawn. Speed and spawn rate is reset. This is the first valley in the interest curve and serves as a break for the player. I also use this as an opportunity to introduce upvotes and downvotes that move diagonally.
201-230 The speed and spawn rate is increased. This is the beginning of the second difficulty ramp.
231-250 The speed, spawn rate, and HP drain is increased. In addition, the size of the arrows are decreased, and the penalty for clicking an upvote is increased. However, the HP gain for clicking a downvote is increased to compensate for the increased HP penalties. This stage usually does not last long because a downvote from the previous stage lasts long enough for you to get to 251 clicks. The true purpose of this stage is to introduce smaller arrows, while teaching players to take advantage of the easier to click arrows.
251-280 The speed and spawn rate is increased. The arrow size is also increased. The HP drain and HP gain is reset to initial values.
281-320 The speed and spawn rate is increased further. Arrow size is also increased. Large upvotes start to spawn again.
321-360 Large upvotes become even larger, which increases the intensity even more.
361-400 The speed, spawn rate, and size is reset to base values. Large upvotes stop spawning. This is the second valley in the interest curve. I use this as an opportunity to introduce the last mechanic in the game: upvotes and downvotes can now spawn from all sides of the screen and move in all directions.
451-500 The speed and spawn rate is increased, and the size is decreased. This is the beginning of the final difficulty ramp.
500+ The speed and spawn rate is greatly increased, and the size is decreased further. The HP drain and HP penalty for clicking an upvote is greatly increased as well, and the HP gain is not increased as compensation. As the last part of the game, this level is intentionally hard. Given more time, I would have liked to balance this stage a bit better.

Polish and “Juice”
In addition to designing the interest curve, I also spent a lot of time on adding juice to the game. Because my game is so simple, a ton of juice is needed to make the game look and feel more appealing.

During my past projects, I have noticed that there are some scripts that I use over and over again. I have refactored those scripts into a separate, light-weight library that I can use in future projects. By using this library, adding juice took very little code during the actual game jam. The code isn’t anything particularly hard to write, but during a game jam, anything that reduces the amount of things you have to do helps (especially since I was alone).

Almost everything in my game has some form of juiciness added. Here are some of the things that I did to increase the juiciness of my game:

  • All arrows compress a little when you click on them. Afterward, they spawn an expanding effect that fades out.
  • All arrows create a sound effect when clicked on. The downvote sound effect was inspired by the Mario coin sound.
  • The background changes color with your HP. In addition to looking cool, this also lets you know how well you’re doing without having to look at the HP bar at the top of the screen.
  • The squares in the background respond to all in game sounds. There is also a background music selector in the lower right corner with an equalizer effect.
  • The squares in the background rotate and zoom in and out slowly to create a feeling of depth.
  • There is a sound effect for clicking through screen. (This wasn’t actually audible during the showcase though.)
  • The “yay” sound effect adds some more humor to the already ridiculous premise of the game.
  • The custom cursor consists of two parts rotating in opposite directions.
  • The custom cursor compresses a little when you click, and it also creates a particle effect.
  • The entries in the high score table light up and flash.

The Highscore Table
The most important part of this game is the high score table I added at the end of the second day. I originally didn’t want to do it, since it would involve quite a bit of coding, but because multiple people requested it, I decided to add it. That was definitely the right choice to make.

What I didn’t realize at the time is that a high score table creates a competitive feeling in the game and gives people a reason to play. I realized this for the first time during the showcase, when people would play my game multiple times just to beat their friends on the high score table. The highest score recorded was over 570 downvotes! The player who reached that high score played at least 10 times. For something that didn’t affect the gameplay at all, I was surprised at how much better my game became after I added it.

It was really satisfying seeing people come back to my game again and again to play, since at that point, I knew I had created something fun.

Things That I Could’ve Done Better

As this is a Game Jam game made in a period of 48 hours, there are tons of areas where it can improve. Obviously, there are a few bugs which need to be fixed (the high score table doesn’t properly save upon quitting), but rather than listing those out, I want to talk about some of the less obvious things that I could have prepared for.

The Mouse
The mouse that I used during the Game Jam and showcase was this Logitech Gaming mouse. At first you might think, why would this choice of mouse be bad for showcasing a game that is based on clicking? Wouldn’t a gaming mouse be better for a clicking game? Yes, a fancy mouse would be better for playing a clicking game; however, it is not good for showcasing a clicking game. A lot of people that come by don’t use the same mouse, so they wouldn’t know what the buttons on the mouse do.

This mouse was particularly bad because of the two buttons (labeled G7 and G8 in the diagram) on the upper left of the mouse. These two buttons change the sensitivity of the mouse, which causes the mouse to move faster and slower. For a game that is primarily about left clicking, a lot of players accidentally hit those two buttons and were thrown off for the rest of the game.

The Instructions Screen
The instructions screen is definitely a case of too much text. The main purpose of the instructions screen was to explain the HP bar on top. During playtesting, I noticed that a lot of people would be stuck reading that screen for a long time, but I was not able to come up with a solution to the problem during the Game Jam.

In retrospect, I probably could have skipped the instructions screen altogether and replaced it with an overlay on top of the initial stationary downvote. By doing this, I could’ve drastically reduced the text that players have to read through.

Working Alone
Working alone was a good challenge, and I created a game that was relatively successful because I understood my workflow and capabilities before the Game Jam began. The downside about working alone during the Global Game Jam is that during the showcase, I needed to stay by my game most of the time. Because of this, I was unable to try out as many games as I would’ve liked.

Though this point doesn’t really relate to the game itself, it’s still part of the Game Jam experience. For the next Global Game Jam, I definitely want to look for another person to work with.

All in all, I think this Game Jam was a really satisfying experience, and I learned a lot about showing games at events with lots of people.

Here are some links to the game: Global Game Jam Site,

My Experience with the Steam Greenlight Process

Last Friday, Invert got greenlit on Steam! It was quite a surprise to me. I was definitely unprepared when I initially put the game up for greenlight, and I made a ton of mistakes in the process. Compared to some of the articles I read, my game had nowhere near as many votes; it didn’t even reach the top 100! Here are the stats for my game (click for full size):Invert StatsAs you can see, my game only has 581 yes votes compared to the thousands of votes that others had. So how did my game get greenlit? I tried various things to raise the publicity of my game, including participating in Ludum Dare 34 at a local gaming group and contacting a Twitch streamer who offered to comment on my game.  It’s not clear how effective these attempts were (nothing came close to the traffic that Steam gave in the first few days), but by going through the entire process, I gained some insights that I otherwise wouldn’t have gained.

It Takes Effort for People to Play Your Game

Before I put my game up for greenlight, I thought, “if I put up a playable demo for my game, it will make up for my lack of a good video trailer.” I could not have been more wrong. It takes effort for people to play your game, especially if your game is a download. Many people won’t want to spend that effort to get to your game, especially if they don’t have a good reason to.

I experienced this for myself during the Ludum Dare game jam mentioned above. As a part of the judging process, I had to play other entries to raise my own entry’s “coolness,” which determines how visible my game is to other contestants. During this process, I realized that I liked the entries that offered web-embedded games much more than the entries that didn’t, simply because I could get right into those games without waiting for them download. (And also, I wouldn’t have to delete them after I was finished with them.) I still tried out games that were download only, but only because I understood the effort that goes into making games. I’m sure the Ludum Dare community also understands this, but the Steam community is dominated by players who have never developed games before.

Below is a list of a few things to keep in mind when offering a playable demo of a game. Your overall goal should be to make it easy for your audience to obtain your game.

  • Web embedded games are better than downloadable games. Playing in a browser is much easier than downloading a game.
  • Some skeptical people will think that your files will harm their computers. This is especially true if your game involves an installation. (Installations are also harder to remove, which might deter more people.)
  • If you are going with downloads and you have multiple builds, they should be kept separate. It’s easier to upload a zip file containing the Windows, Mac, and Linux versions, but it also increases the size of the file, which in turn, makes the download take longer.
  • is a good site for hosting your game. It can increase the publicity of your game, and it also gives analytics, which let’s you see how many people have downloaded your game. I regret not uploading to at the start of the process because now I don’t know how many people have downloaded my game.
  • People won’t always be on computers when they see your greenlight page. Some people might browse greenlight on their phones or other devices that won’t be able to run your game. If they don’t like your game at this point, they’re not going to come back to your page later when they’re on a computer.
The Video Trailer is the Most Important Part of the Pitch

There is definitely a reason why Steam requires you to have a video before submitting a pitch. It is one of the first things that people see when they reach your page, and first impressions are important. You want to have a good video before you start the greenlight process for a few reasons.

As soon as you start the greenlight process, Steam puts you in a “new games” category, which gives you a ton of traffic. This is very apparent in the graph above, and you want to take advantage of this traffic as much as possible. After the initial period of 3 days, it is much more difficult to get views to your game. Having a good video early makes a larger portion of the initial traffic interested in your game.

The trailer is also a way of getting people to want to play your game; it’s your chance to convince the audience that your game is fun. While it’s true that the trailer should show people what gameplay feels like, providing a playable demo will not make up for a lack of a good trailer. If the trailer isn’t good, then people won’t want to play the game, which defeats the purpose of providing a playable demo. This leads into my final point, which is…

Give People a Reason to Play Your Game

As I said above, it takes effort for people to play your game. If your greenlight page doesn’t look good, people are less likely to spend that effort for your game. After all, why would someone want to play your game when there are literally thousands of other shiny games just a few clicks away?

So your one and only goal during greenlight should be to get the attention of your audience, and keep their attention long enough to persuade them to play your game. Obviously, having a good trailer helps a lot, but there are other things that are important.

Branding Image

The branding image is what represents your game on Steam’s greenlight pages. It is the first thing that people see when they see your game, so the branding image is your way to catch people’s attentions before they even visit your page. I did not create an animated branding image, which I regret, since having an attention-grabbing animation is a good way to get more views on your page.

The best branding image that I have seen was for a game called Inversus, which I first encountered in this article. Here is the branding image for that game:

Doesn’t that just make you want to click on it?


The description is where you can say anything about your game. If you’re providing a playable demo, you can put a link to it in the description. What’s more important though, is to make the description look nice. Having nice images and formats will make your page look better, which in turn, makes people like your game more. (Having too many animations in the description can make it take longer to load, so be careful.)

As an aside, if you don’t know what to put on your greenlight page, just take a look at some other good looking entries. If you think that another game looks good,  then it’s really likely that those developers did something right.

So How Exactly Did I Get Greenlit?

Unfortunately, I don’t really know myself. The stats on my game seem way too low compared to other games that have gotten greenlit, and the things that I attempted to raise publicity didn’t seem to have much impact. Interestingly, my game was greenlit a few days right after it was streamed on Twitch. Maybe that had something to do with it? Or maybe that was a coincidence and I got lucky. In the articles that I’ve read, a common theme was that nobody knew the exact criteria for passing. I have a feeling that it might depend on the mood of the person in charge of greenlighting games.

If you’re a one person team like I was, and you think that doing all of this by yourself is daunting… it kind of is. At the beginning of the process, I had no marketing skills, no video editing skills, and I had no idea how greenlighting works. At the end of the process, I wouldn’t say that I suddenly have that knowledge, but I certainly learned more about them.

The entire process took 33 days, from December 6, 2015 to January 8, 2016. To be honest, I thought it would take a lot longer. Either way, I think that the greenlight process was a good learning experience.