Creating Steampunk Panic (Part 3)

The purpose of these Dev Logs will be to share with everyone the creation process for Steampunk Panic. A way to look behind the curtain, so to say. Some of these Dev Logs will be simple, others will give plenty of in-depth explanation for how things work or why things were done the way they were.

Fever Mode

Steampunk Panic will have a lot of button types that the player will be able utilize in order to increase their score. One of those button types was the fever mode button. While having this be a random button that appeared was cool, I didn’t like the fact that if the player wasn’t paying attention, they might miss it and have to wait for it to appear again. Of course, reaction speed and being able to read the button grid quickly is essential for this game, I want fever mode to be a reward and not a random chance. Thus, the fever meter was born!

While playing the game, every button hit can fill up the fever meter. The amount that the fever meter fills will be based upon how quickly a button is pressed, so it is linked to the timer bar much like the points you can earn per button tap. Once the fever bar is full, there will be an effect on it to draw your attention, a separate button near the bar will also light up and can be tapped. Once tapped, fever mode will activate and you’ll be able to tap any of the buttons in the button grid as fast as you can.

Device UI Concepts

For now, we’re focusing on concept art for what the game UI will look like, with the menu UI coming later.

For this UI, we had to make a decision on whether it should be a minimalistic UI, similar to what the early prototype was using (basically, just floating buttons on a colored background), or if it should be a more physical or themed UI that the player interacts with.

Minimalistic UI

– Simple and clean
– All elements are typically interactable
– Easy to add new elements
– Easy to fit any screen size
– Memory use is minimal

– Not much of a textured theme to stand out
– Can look sterile

Physical or Themed UI

-Interesting and unique
-More of the UI can be animated
-Feels like a toy or object that you interact with

-Harder to add new elements without updating lots of art
-Extra care is needed to make interactable elements clear
-Memory use is much higher

There have been lots of games popping out with a minimalistic UI style that revolves around geometric shapes and colors. They are easier to build and really distill the experience into just game mechanics and touching the UI. They look clean and easy to use, and that’s a huge advantage. But then there are games like The Room and Hearthstone that have physical UIs in the game world that you interact with. For Steampunk Panic, we decided to go with a physical UI like a device you might find in The Room.

So, what should the device look like? Since the game will be played in portrait mode on a phone or tablet, we need rectangular buttons instead of squares. Circular buttons waste too much space on the UI and feel like there is less space that is valid for tapping. So, using rectangular buttons and a tall device to interact with, we tried various layouts and options, then quickly colored parts of these devices to get an idea what it could look like. Here’s a very, veryvery rough concept of where we’re going:

Gears, gauges, wires and pipes … basic silhouettes for the device started to pop out for us and we settled on taking parts of some of these concepts and combining it with others to get this basic device shape and layout:

The device would be rectangular, with a gauge on the left for the timer (started filled with liquid and empties) and a smaller gauge on the right for the fever meter.

Current score would be displayed on the top of the button grid, in a style similar to a combination lock with spinning numbers. These numbers would spin to the current score, so the right 1-2 numbers might be constantly moving. The multiplier number at the bottom would use a flipping number display, like old school flipping number analog clock or calendar.

The left side of the grid shows a base score number wheel, which will probably go away. The idea was to show what percentage of the base score you would earn when you hit a button, but this can be also portrayed by adding percentage notches to the timer gauge itself.

The top gear and the bottom right gear are examples of where moving elements could go, with an example on this concept showing how fast the game is running by spinning the bottom right gear faster.

The purpose of this concept piece is to show the important elements and how they might function. The next step is to iterate on what the device’s non-interactable element might look like. This will be where some art deco influences will come in, adding texture and features to the device to make it look more like an actual physical device.

Score Validation

While the concept art of the device layout was happening, I tackled the score validation aspect of the game. When players are connected online and playing, they can submit their score to a global online leaderboard. To prevent cheating, I needed to provide a way for the server to replay the game submitted with the score and ensure it’s valid. There isn’t much to show about this feature, but the general idea is that the game records what the player presses in the game (the replay data) and the server replays it and, at the end of the replay, the scores need to match up.

I have some test cases set up that has gone through 1 hit games all the way up to 10,000 hits in a game and the scores all came back validated and correct, so even with the random aspect and different modes being turned on and off, everything is validating correctly!


While testing out the slow/freeze button and the fever buttons, we decided that the fever button needed to separated from the button grid. But we also saw too much similarity with the fever mode’s “locking of the timer bar” and the slow/freeze button doing the same thing. So, I made this button type just be a “slow” button, so the timer is slowed down for a small amount of time. I mentioned trying this in the last Dev Log, and sure enough, it was a good decision. It provides a breather for the player to slow down for a sec and then have the game pick up again. It is still a little jarring to go from a very fast game (due to having been playing for longer than a minute) to a slow timer and then immediately going very fast again. I will try adding some code to speed up the timer to the correct speed over the span of a few button hits, to let the player get used to the speed jump.

Lessons Learned

Having the fever button be separated from the main button grid has opened up extra strategy for the player, while at the same time, allows for all players to be able to access the mode as long as they hit enough buttons to unlock it. Although there is a “slow” button type as well, it doesn’t feel as much as a special mode as a small modifier, so keeping it in the game grid feels pretty good.

The button for the fever mode, like the button grid, also needed to register a hit when touched, not when released (which is how a button would work in a game). Since it this is a speed based game, I need to make sure that input is quick and has no delays.

When I added the concept art into the game, it was still not tall enough to fit the screen, so we’ll be making it a little more taller in the future. The button grid feels good when tapping it, keeping the four button hit boxes as rectangles behind the scenes, instead of forcing it to conform to the shape of the button. That way, you could tap a little bit outside of the curved rectangle button and it still registers as a hit.

Coming Up

There are still a few extra button types I want to prototype, as well as an easier way for me to balance the game by stating how often and when button types can start appearing.

Leaderboard support and some server work will be happening soon as well.

Monetization is also still a thing and since this is a score chaser, there won’t be many options for me to pursue … most likely ads and an option to disable ads.

Since we like the art deco steampunk aesthetic, we’ll need to start looking into music options as well, perhaps electro swing?

I look forward to sharing more of this process with everyone over the next couple Dev Logs!

Creating Steampunk Panic (Part 2)

The purpose of these Dev Logs will be to share with everyone the creation process for Steampunk Panic. A way to look behind the curtain, so to say. Some of these Dev Logs will be simple, others will give plenty of in-depth explanation for how things work or why things were done the way they were.

Button Types!

Today, there won’t be any images, as I haven’t added any new parts to the temp UI. Along with the original button types that you can tap (Normal, Multiplier, and Lose), I also added new types to provide more variety when looking at the game grid. Since these buttons are just colored buttons, there isn’t anything new to see.

Combo Button

The combo button (teal color), when hit, will start a combo! While a combo is active, every new set of buttons that appears will always have a combo button to be pressed, allowing you to continue the combo chain. Currently, the combo count is added to your current multiplier, allowing for a temp multiplier boost while you continue the combo. For example, if your multiplier is x5 and you start the combo, the next hit will provide the base points x (5 + 1) to your score. Hit the combo button again, and it goes up to (5 + 2), then (5 + 3), etc.

Since hitting the combo button makes it very easy to boost your multiplier quickly, there needed to be risk to this reward. So, while a combo is active, the game speed actually increases more quickly with each hit, allowing the game to go faster than the max speed the more provides. The player will need to decide when to force an end to their combo, otherwise they will get to a state where it could be impossible to hit a button in time and end the game. When the combo is ended, the multiplier bonus disappears, the game slows down to the speed it should be at, and the player can continue.

Flex Multiplier Button

Next, we have the Flex Multiplier button type (magenta color). This button is a special type of Multiplier button that, instead of increasing the multiplier by +1 when it, it could increase it by +0 up to +4 instead, based upon the time it takes to hit the button. So, when the button appears, it behooves the player to hit it as quickly as possible to boost their multiplier quickly. However, if the player doesn’t react fast enough, they might only increase the multiplier by +1 or even +0 (no increase).

This is another button that feels like it should have a risk/reward associated with it, but I haven’t decided what to do with it. The first thought is to allow the multiplier provided from the button to not only count down to +0, but go further, possibly to -1 or -4. By doing this, the player would need to make a quick decision to hit the button, but also move away from the button to another button if the multiplier drops to a negative amount. I’ll be iterating on this idea in the future…

Slow / Freeze Button

This button (blue color) appeared out of a desire to provide a bonus mode for the game. When this button is pressed, the game timer freezes for a small amount of time (currently 10 seconds). This provides a break if the game has been going a while, allowing the player to take a break or simply take their time to hit a few buttons, before picking back up to whatever speed the game should be at.

I currently have the button freezing the timer, but I also want to try just slowing the timer so it decreases 3-5 times slower. That will happen during some testing I perform to see which feels better.

Fever Mode Button

Again, I wanted another special mode, so I thought it might be fun to add a “Fever Mode” type of button (green color). When active, every button on the screen will be a valid button to tap, with no “Game Over” buttons appearing. The mode lasts for 5 seconds, allowing the player to spam all the buttons as quickly as they want.

To combat an instant-lose situation that appears when the mode ends, I opted to specify a certain number of button hits after the mode ends where no “Game Over” buttons appear, so if the player is mashing buttons when the mode ends, they can slow down and start playing normally after a couple hits go through.

This button feels really good when hit, and the buffer I added at the end for the button hits helped to make this mode perform even better.

Difficulty Modes!

Currently, there is an Easy, Normal and Hard mode for the game. The difficulty dictates what the base score should be, with Easy providing a max of 10 points, Normal a max of 100 points, and Hard a max of 1000 points when a button is hit. Of course, these points will be based upon how much time is left in the timer for the current hit. If you hit the button quickly, you’ll earn most of the base score. If you hit it really late, when the timer is almost empty, you’ll get a small amount of the base points. This rewards quick reaction speed.

The difficulty will also dictate the start speed of the game and what the max speed the game can reach normally. For example, Easy mode might start with a 2 second timer, providing plenty of time for new players to hit buttons. As they hit the buttons, the speed increases up to the max speed of 1 second per hit over time.

The idea is that as a player plays the Easy mode and gets used to the game, they will graduate to the Normal mode, earning an even higher score, but playing a faster game. Once they are good with Normal, the Hard mode will be where all players will eventually aim for, as this mode provides the highest score as well as requires quick reaction speed skills.


When the difficulty modes were created, I needed to find good speeds for the game. A special debug mode was added to the game in order to allow me to increase or decrease the starting and ending speeds for a mode, as well as dictate how fast the game speeds up per hit. The main goal is to try and allow the player to play the game comfortably for at least the first 50 hits. I didn’t want the game to end after a couple of hits due to the timer, nor did I want the player to not feel challenged by the timer until hit 300.

After a few hours of testing, I settled on some good speeds for these modes and put it in front of some players to test out. Sure enough, most of the players were able to get at least to hit #50 in easy mode, then the hit number decreased for the other modes, which makes sense since the players are not prepared or skilled enough for the faster speeds. After playing some of the easier modes first, these players retried the harder modes and made more progress. This is the type of progression I expect for the game, so that worked out well.

The bonus modes (Slow/Freeze and Fever) were welcome additions and, when triggered, the players definitely felt more powerful and just went to town. Some who had a large multiplier and hit the fever mode watched their score explode, and when their game ended they felt very accomplished!

Lessons Learned

The Easy mode is where most players will want to start, but some players will go straight to Normal mode for their first game. So, I needed to make the Easy mode speed good enough to not scare away new players (to the game, to the genre, or to games in general) and ramp up nicely so that the player felt like they were getting better and improving their reaction speed. The Normal mode also needed to provide a slight challenge for someone new to the game or the genre, but is not really where a player new to mobile games should touch.

If I want to add more button types to the game, I won’t be able to rely on simply colored buttons. There will need to be a textured appearance to the button, or some kind of extra treatment on the button to separate it from the other buttons. For example, the Multiplier and Flex Multiplier button types are essentially the game, so they could be the same button color but the Flex Multiplier could have some kind of “time” or “clock” art treatment added to it to inform the player that it is the timed version of the button. Likewise, I need to make sure each button stands out as the type of button it is, without confusion. This is important for color and display purposes, as well as for colorblind players. Relying on just color is a bad idea.

Coming Up

A few extra button types should probably exist, along with a way for me to pick how often these buttons should appear, or how many hits should happen before a button type can start appearing in the game.

With the differences in scores from the modes, I definitely need to let players submit their scores to a leaderboard for the mode itself, instead of a single leaderboard for all modes. This will let players compete against players in the same score range. Of course, I also need to validate this score to prevent cheating.

I’m still thinking about monetization for the game as well.

These questions and more will be addressed and tested over the next couple Dev Logs!

Creating Steampunk Panic (Part 1)

The purpose of these Dev Logs will be to share with everyone the creation process for Steampunk Panic. A way to look behind the curtain, so to say. Some of these Dev Logs will be simple, others will give plenty of in-depth explanation for how things work or why things were done the way they were.

Let’s Make A Game!

Today, I’ll be hitting upon the first prototype of Steampunk Panic and the first few screens made in order to operate the game. The goal of this first prototype was to determine if the gameplay was fun and provide, essentially, a small game loop that is the title screen, mode select, game screen and the results screen. I used simple pixelated button art and started building up the screens.

The goal with Steampunk Panic was to create a fairly simple game that players can just pick up and play in short bursts. Players are presented with a group of buttons and a timer. If the timer expires, the game ends. Every button that is tapped will perform an action, providing points and resetting the timer. Players need to quickly decide the best button to press in this limited amount of time. For the first prototype, the types of buttons available were:

1) Normal (Orange, provides points for current hit)
2) Multiplier (Purple, increases the multiplier for future hits)
3) Lose (Dark Red, forces the game to end)

Prototype Screens

Note: These are prototype screens. The layout, look, feel, features … basically everything is going to change. These are just to get the basic prototype done and are not meant to be pretty.

Select Mode Screen

The mode select screen allows the player to select a difficulty. For the purpose of the prototype, there is only a “Normal” mode, so all buttons take you to that mode. Having this screen show a few extra modes is a teaser for my play testers, to let them know that there will be faster modes and ways to earn even more points. The weekly and lifetime scores don’t work, but are another tease to show where I want the game to go.

Game Screen

The game screen is made of your current score, possible points to earn on this hit (with a multiplier shown next to it), a group of four boxes, and a timer bar. This is all that I needed in order to get the basic gameplay in front of a player and see if the game was fun. This is an image of what the game looks like when you start a new game. All buttons are valid buttons to be hit and the timer is not active for this first group of buttons. I wanted the player to not feel stressed when the game starts, until they start interacting with the buttons. The “9 x 1” is the score that you will earn for tapping a button, which is based upon the timer.

Game Screen (Being Played)

With the game in progress, the timer bar goes down and decisions must be made. The score in this shot is “6 x 1” because it started at 9, but since the timer has started, the score granted also drops. Since the timer bar is near 2/3 time remaining, you can get 2/3 of the base score of 9 (hence, the 6 that you see). I’ve hit the boxes a few times already and have 50 points, as I wanted to get to a group of buttons that showed all three prototype button types.

Since this is just normal mode, your base points are set to 9. In theory, hard mode will have base points set at 99, and expert mode will have 999. For a score chaser, you are constantly trying to beat your high score or the score of someone else on a leaderboard, so you will want to pick expert eventually. Although not in the game yet, the idea is to have a different starting and final speed for each game mode, with expert being the most difficult.

Game Result Screen

Lastly, the game result screen. Doesn’t do much other than let you know your final score, which is all that is needed for this prototype. The games start and end pretty quickly, with little to no friction to start a new game.


With all of these screens in place, I was able to play the game all the way through and make adjustments to base points, speed, and timer length until I found something that was fun, hectic over time and fairly rewarding when you hit a stretch of quick perfect hits. I ramped the the points and speed to get an idea of what hard mode and expert mode could be like, then settled on what I wanted normal mode to feel like.

The game was placed in front of family and friends and the score chasing began. Gamers and non-gamers found it easy to play, which was a good sign. The first couple games were always fascinating to watch, as the player had no idea what to expect and the timer ended this game fairly quickly. After playing these first few games, the player would last longer and definitely score higher. I grabbed a piece of paper and wrote down names and scores, with players telling me their updated scores and I would reorganize the list and tell them their new rank. A hand-made paper leaderboard, essentially. Some rivalries started and after an hour or so, we decided that this was a good project to continue working on.

Lessons Learned

Base score matters. When it is too low (1-5 points), watching your score slowly climb is a pain. Setting normal mode’s base score to 9 felt good, and when I tested the 99 and 999 point range for hard and expert mode, it was really satisfying. I originally tried (5, 15, 25), (9, 19, 29), and (9,29,49), but adding more digits just makes it feel better. So, I expect players to hit billions of points if they’re really good.

Also, for the first prototype, there isn’t any animation or polish anywhere. Tapping a button simply changes all the buttons immediately and resets the timer. When you tap the buttons and are presented with a new button group that is identical to the previous one, not having the buttons have any response really feels like the hit wasn’t registered. I will need to add some kind of hit effect so the player knows they touched something.

Also, for a reaction speed game like this, the buttons need register the hit when it is touched, not when you release your finger from the button (like a click). Waiting to release the finger adds milliseconds to the input time, which could end a game early. I changed it to register on touch before the play test at the last minute and the game felt way better for it.

Coming Up

This score chaser needs more buttons and more choice!

It also needs those difficulty modes working properly, so I’ll be adding those features next.

I’ll also need to let players submit their scores to a leaderboard, so I need to decide how I want to validate scores. How many leaderboards? Should they reset?

Monetization is also something I will need to think about, so I’ll be brainstorming on various ways to tackle that area.

What should the theme of the game be? Should it be retro pixel art buttons and minimalistic in appearance? Should I push for crisp hi-rez images?

These questions and more will be addressed and tested over the next couple Dev Logs!

Behind The Curtains Of Our Next Game!

Hey everyone! After the massive 1.3 update for Idle Realm was completed and pushed live, I took some time off with family and friends for the holidays. During that time, a game idea popped into my head and I decided to make a quick prototype of the game mechanics one weekend and really enjoyed the result!

This next project doesn’t have an official name yet, so I will be calling it Re:Hit for a while until the game’s theme and art style are decided.

Re:Hit is going to be a fast-paced reaction-speed testing score chaser with online leaderboard support.

This project will allow me to explore some features that I want to add into Idle Realm (online leaderboard support, better server validation, more robust server code), tackle non-consumable in-app purchases (Idle Realm does consumables just fine, but doesn’t have non-consumables), and most importantly: provide the Android specific code that is needed to release my games on Android!

My hope is that once Re:Hit is completed, I can roll of this new code into the core Eat the Moon code base and Idle Realm, Taco Cat Taco, and all future games can reap the benefits.

Instead of just creating the game in a vacuum and then releasing it, I have decided to share the process with everyone! So, the next several dev log posts will share the creation process of this game, with prototype images, design decisions, concept art and more! I can’t wait to share this process, and the game, with you soon!