Press Ctrl — Design Diary

In this post I will share my experience participating in GMTKJam 2020 and making Press Ctrl, a mind-bending puzzler where your avatar controls another avatar via an in-game keyboard.

Idan Rooze
4 min readJul 15, 2020

The keynote for the event happened on Friday, 10 PM Israel time. The theme for this year’s event was Out of Control, which made me immediately regret starting an out-of-control game just three days earlier. I went to sleep and woke up Saturday morning, ready for two consecutive days of work.

The idea came to me after a frustrating 2-hour brainstorm session. I came up with a few ideas that didn’t feel like they had legs, the main one being a platformer/puzzler game where you control a character via keyboard input, but lose the keys the moment you stop holding them down. After blueprinting some levels in my notebook with this idea in mind, I quickly realized that it was not going to go too far. Then I drew a stick figure standing on an arrow key, moving another stick figure.

My gamejam timeline went something like this:

Day 1: Create the core mechanic > Add layers one by one > Testing > Realize that layer 4 is probably the right place to stop > Create Art and animations > Find free Sound Effects online > Add a win condition and complete the gameplay loop.

Day 2: Level design brainstorm > Add Esc button mechanism > Create promotional art > Start creating new levels > Realize that my code is spaghetti > Almost have a meltdown > Debug like hell > Finish the three levels > upload the game 4 hours and 23 minutes before the deadline.

Decisions, decisions

There were quite a few decisions that I made during the jam that I thought might be interesting to discuss.

Design

Limiting the game to three levels. While playtesting the game I kept reminding myself that people are going to have a much harder time with it than I do, and they are going to experience it once, so it can’t be too long. I scrapped a level where the keys would spawn in random positions, which I believe was the right call. At the beginning of the jam I was even thinking to make it into a bullet hell. Understanding that the core mechanic is good enough on its own was an important realization.

Limiting each level to 4 layers. This was a very important decision for me, as I had enough pixels to go one more layer in. After some playtesting, I discovered that the 4th layer was the most I was willing to let players deal with, as it was difficult even for me.

Insisting on coherence. Artistically, it was extremely important for me to have the simulation within the game be as coherent as possible. I wanted to keep the internal logic consistent, so if a character presses the escape button, its screen will close — just as the game will close if you press the escape key on your keyboard. There were a few moments during the development that I debated on how certain behaviors should work and I think it contributes a lot to the aesthetics and purity of the game.

Simple Communication. I wanted the game to communicate its ideas with minimum intervention. The large beating “Ctrl” animation that appears at the beginning of each level, as well as the game title, are part of that. The game also serves as a tutorial to itself. The deeper you go in any given level, the fewer pixels I have to convey the different buttons. Making all 4 levels have the exact same layouts helps players orientate despite the limited information.

Production

Finishing the game early. This decision wasn’t actually mine. I had to finish earlier because I was teaching during the evening (I teach artists Unity in my local gamedev community MakeGamesJLM). This meant that I had a much stricter deadline, which helped me to stay focused during the day. I stopped working a little before 6 PM.

Taking breaks. I took short breaks and left my computer to walk around the house, think about the next step, and let off some steam. This was the first jam that I participated in on my own and I had to keep myself focused to be able to complete all of my tasks.

Messy code. It’s hard developing not knowing exactly what your game is going to be. I made a few tactical mistakes that cost me some frustration and time, mainly not keeping my code and assets organized and failing to refactor when I had to. I struggled to determine exactly how much emphasis to put on redesigning my code, as time was very limited. Adding the Esc button mechanism was especially nerve-racking. The longer I kept pushing, the more cumbersome my process became. Thankfully I managed to release the game bug-free (haven’t had any complaints with more than 5k downloads), so this may have been the right call after all.

Conclusions

All in all, this was a deeply empowering, educational experience. I’m happy that so many people got to try the game, even if some of them haven’t finished it. I got some amazing feedback from players about how to improve the game even further.

You can buy the game on Steam.

--

--

Idan Rooze

Idan is Head of Games at Totem, independent game developer, and game design lecturer at Bezalel Academy of Art and Design.