Developer: Gregory Kogos
Release Date: 16/05/2022
Number of Developers: 1
How it started
My background is creating alt.ctrl custom hardware games. The most successful one is RotoRing -- a circular puzzle platformer played on two LED Rings with a rotating knob and a button that runs on Arduino.
To help provide a better understanding of the following article, here’s the video of RotoRing gameplay [below].
Since its creation in 2017, every time I saw a product with a physical spinning input (Microsoft Surface Dial, Logitech Craft keyboard or even Nintendo Labo) I reached out to make a "port" of RotoRing for it. Unfortunately, I had no takers. Still, when I saw the Playdate's crank I did the same, but this time I was lucky that Nick Suttner -- who was helping Panic with finding devs -- had already played RotoRing at a festival in Busan and was very enthusiastic about it.
My initial pitch was "port RotoRing to Playdate”. But as the development went on, the actual process was more like “remix RotoRing ideas for Playdate and see how it goes!"
How it went
The first trial was placing two rings in the center of the screen simulating original RotoRing. That didn’t work well. I quickly realised that I had four colors to use on RotoRing to indicate the player, enemy, exit and background. On Playdate there are only two colors, and while I could’ve got away with dithering and geometric shapes it simply didn’t look good.
The inner circle was also too small and crammed, and then I had all this unused space on the sides of the screen just sitting there. So, I decided to get rid of one orbit and instead make players switch between the inner and outer sides of the big circle. Eventually this layout morphed into the game's boss levels.
However, for the main game the layout was still too limiting. I had to come up with something that would convey the ideas of RotoRing on the rectangular 400x240 1bit screen. That's when the idea for a grid of circles hit me. It immediately solved all of the problems I had and added more gameplay opportunities, while preserving the original gameplay principals: going around in circular motion, and switching from one ring to another while avoiding enemies and solving puzzles. That’s also when the game got it's name, Omaze!
After visually studying "everything that has circles"I decided on the 5x3 grid size so it would fill the entirety of the Playdate's 400x240 screen. As I printed the grid layout to sketch the levels I found it aesthetically pleasing, and that's when the idea was locked in place.
Here are the examples of RotoRing mechanics remixed for Omaze. Same ideas -- different layout.
Hazards move when you move:
Spinning the crank is great, but it's also incredibly satisfying to dock it! There are APIs that detect whether the crank is docked or undocked, which essentially gives the Playdate one more on/off switch. It's a feature that might often be overlooked, so I decided to incorporate docking the crank into the gameplay.
I added the autorotate circles and dash circles, where with secondary action (button A). With those in place some sections of the game are played with two buttons only, and with the crank docked. It's nice a change of pace that helps freshen things up.
Coming from Arduino development I'm used to generating everything with code. That means all of the game's art and animations are generated with geometry drawing functions like circle, arc, and polygon. I also didn't use any built-in collisions because checking a player has hit the enemy is as simple as comparing their positions on the circle. Some pre-rendered images are used only for Omaze's launch card and menu.
I feel like this generative approach helps to make the game look as minimal as possible, which might be a good idea for bringing some clarity to your visual language on a rather small Playdate screen
The sound is generated with a built-in synth. Not only does it reduce the size of the game (it’s <60 Kb), but it also helps to make the sound design reactive and responsive. For example, the sound of movements in Omaze will vary depending on how fast you move: crank it faster and the pitch is higher and vice versa.
While working on audio I made little tool to check how the certain synth would sound directly through Playdate speaker and shared it on dev forum.
As with alt.ctrl games, developing for Playdate provides creative constraints that can inspire creators to dive deep into game design and aesthetic minimalism. It also helps turn the process of development into something that feels more unobtrusive and pure.