Episode 10: Omaze

Christa Mrgan: Mazes are puzzles that can make you feel like you’re just wandering around in circles. Well, what if a maze were made of nothing but circles and also involved the critical elements of precision and timing? That’s what you’re up against as you try to circumnavigate the circular puzzle platformer, Omaze.

Welcome to the Playdate Podcast, bringing you stories from game designers, developers, and the team behind Playdate, the little yellow game console with a crank! I’m Christa Mrgan.

Today, I’m talking with Gregory Kogos who made the tricky and addictive Omaze.

Slight spoiler alert: while we don’t reveal any specific puzzle solutions, we do talk about the overall gist of the game and some of the types of obstacles you’ll encounter.

Okay. Let’s meet Gregory.

Gregory Kogos: So I’m Gregory Kogos. I was born and raised in Ukraine and I’m currently based in Germany. And yeah, I’m sole developer on Omaze. I did all by myself, surprisingly. The game is circular puzzle platformer, where you control the circle that is running in the circles, to aim the final circle. It’s very circular game.

Christa Mrgan: Yes, you play as a little white circle with a black dot in its center. And you use Playdate’s crank to move clockwise or counterclockwise around each of a series of circles. And use the B button to switch between circles. But you have to be quick and fairly precise to switch in the right spot, because of course, new, increasingly challenging elements are added to the circular maze puzzles, from obstacles that move when you move to auto rotation, and enemies that chase you. And the number of circles is always changing, too. There can be as few as three or as many as fifteen.

And in addition to solving the puzzle of each level, timing and precision become more and more important as the game progresses.

So like a standard platformer game, you’re moving a character through an environment to reach a goal, while avoiding hazards and enemies. But each level is also a puzzle that has to be solved, which is what makes ma fit the puzzle platformer sub-genre.

The circular game play in Omaze feels really natural with Playdate’s crank. So you might imagine that’s where the idea came from, but the game actually evolved out of another one of Gregory’s creations!

Gregory Kogos: So my background is I was into alt control games, which are custom hardware games. People who went to GDC, for example, they know that there is this alt control section there, where people just make their own games out of custom made electronics. Mostly it’s Arduino- based.

Christa Mrgan: GDC stands for “Game Developers’ Conference,” and like the name implies, it’s an annual conference for video game developers.

The main conference is held in San Francisco, California. There’s an exhibit called alt.crtl.gdc, showcasing games that use custom hardware or alternative controllers.

And Arduino is an open source hardware and software platform that lets users build things by connecting small circuit boards together in pretty much anyway, imaginable. You can get a kit to build something specific, or just buy the components you need to make whatever you want.

It’s basically a DIY electronics platform. Anyway:

Gregory Kogos: So I had a game which is called RotoRing. And it was quite successful for what it is, for a hardware game. It has the rotating knob and the button. And it is also circular puzzle platformer, but it has only two rings, not the 15, like Omaze has. And I was traveling basically all around the world with this game to a different festivals, even won some awards! And when I went to Korea in Busan, I met Nick Suttner, and he actually played the game and really liked it.

Christa Mrgan: Yeah, this was at Busan Indie Connect, the independent games festival mentioned back in the Whitewater Wipeout episode.

Nick Suttner comes up a lot on this podcast, since he helps Panic with games- related business development. Nick is also the co-founder of game studio Furniture and Mattress, and has a podcast called “Eggplant: the Secret Life of Games” that you’d probably be into, since it’s also all about game development.

But yeah, since Nick had played RotoRing at Busan Indie Connect and enjoyed it, Gregory decided to pitch a Playdate version of the game to him.

Gregory Kogos: I saw the Playdate announcement and so basically my pitch was, I just wrote to Nick " I wanna make RotoRing that you played, but only for the Playdate."

And he said, "Sounds good." And first I got SDK, then hardware unit came and I tried to make basically exact replica of Rotoring, but for the Playdate. And I failed miserably. It was so disappointing.

Mostly, I I was disappointed in myself 'cause, like, I thought it’s, it is such a good idea. RotoRing, it was made for the Playdate. So it can be just replicated for that, and it turned out no. It’s not. And but I sent my first pitch, where I just recreated the RotoRing and like I didn’t feel good about it. I didn’t feel good about my, my pitch and yeah, I think for in that exact moment Panic was very busy with publishing Goose Game.

Christa Mrgan: Untitled Goose Game, a stealth puzzle game by indie game developers House House was published by Panic in 2019. There is a whole episode of the Panic Podcast about it, if you’re interested,

But yeah, that was a super busy time at Panic. And since he didn’t hear anything and wasn’t super happy with the pitch himself, Gregory kind of just figured panic wasn’t interested in RotoRing for Playdate.

Gregory Kogos: I didn’t hear the answer from Panic for a long time. And I thought, “yeah, fair enough. That the game is not good enough.” but at, at that same moment, I basically understood how to make RotoRing, but just take the essence of the RotoRing and its pillars and to make it specifically for the Playdate. So not replicating it, but taking its core and making it appropriate game for the Playdate.

And that’s how my second pitch came out and yeah, that’s the thing right now.

I would really like to make games that I would play.

I’m more into simple interaction. Minimalistic mechanics that go deep. So, stuff that you can take immediately and understand immediately without any instructions, but then realize that it’s, it has a lot of depth and I’m not like " it needs to be a puzzle game." I also like written games and just fun interactions, artful interactions. But my thing is to create something that is immediately understandable, but also deep.

Christa Mrgan: I feel like Omaze really fits this description. The feedback is immediate and obvious, and there are lots of clever visual cues.

Gregory Kogos: I feel that this jumping from one circle to another feels pretty good. I have enough of the feedback for example, this little dot inside of your circle that you’re controlling.

It goes in the direction of the circle that you will jump on. So it says to you that now you can jump to this circle.

Christa Mrgan: It does. And the movement of the dot also makes the circle you’re controlling look like a little eyeball. So it seems to actually be looking in the direction that’s now available for travel, which is really intuitive and also makes this little circle feel more like a character or something that’s alive.

Gregory Kogos: So this is good feedback for the player. And also the actual gap is quite big. It’s actually bigger than the visual gap. So I give the bigger room for the player.

So I’m, I’m trying not to punish you.

Christa Mrgan: The gap doesn’t feel that big when you’re trying to get through it in a hurry while escaping an enemy. But I appreciate that it’s actually slightly larger than it appears! But with the platformer element of Omaze being arcade like enough in its need for precision and timing, why did Gregory also decide to make all of the levels into little puzzles to solve? Why not just make it a straightforward platformer?

Gregory Kogos: It’s not enough to just make a platformer. For example, I really like the game Katana Zero where you need to defeat all the enemies in the room and you have all this time mechanics that you can slow down. But before that you need to scan the room and actually have a plan.

How will you kill the enemies? One by one, you go through this enemy and that enemy, like, maybe you can improvise it, if your skills are good enough. But yeah, there is also a puzzle element to planning how you will go through the room. And that’s how I tried to make the Omaze levels. Like the visual language of Omaze is very simple. Therefore, very scanable. Like you can see everything on the level. You understand completely how every circle will behave and therefore here is the first puzzle element to it and then you have a to execute. So, yeah, I, just really like this kind of games for myself and I’m trying to stick to what I like.

So most of the mechanics in the Omaze as I said, are coming from the RotoRing. And most of the puzzles and mechanics and challenges were already in my head, I just needed to transfer it to Omaze and to be accommodated by the crank and two buttons.

So for me, challenge was not how to make it more challenging, but how to make it gradually challenging and accessible. And frankly, I, I still don’t know if I succeeded, because I used to play test my games on the festivals and fairs, and I usually see through entirety of the play through of the game.

And here I saw only how people go through the first level pack, which is probably a third of the game and it actually is easier third of the game. And then I just need to rely on my gut, on my experience, and on wonderful QA testers that you have. And I hope it came out good.

I also tried to make it easier to start fresh, for example, you stuck on some level. And you quit. Okay.

But then you come back to the game and you immediately go to the level that you quit on. So you you don’t even have a menu to go to the level before, you just bang on, on the thing that you left.

I think it’ll be easier to just tackle it. I feel like it is like my experience with making a game. Sometimes I work too hard on something and then I get stuck and then I need some time. And then when I come back to it, suddenly something becomes more apparent and I hope it’ll be the same experience with the levels that you stuck on.

Christa Mrgan: And I appreciate that there’s no concept of lives or having to repeat levels after too many mistakes. You just keep responding on the same level where you failed until you make it through!

So Gregory talked about some of the challenges of adapting his existing ideas for RotoRing to work for Playdate, but how did the actual programming go working with the software development kit?

Gregory Kogos: I don’t know, it was surprisingly easy. I don’t consider myself a good programmer or coder. I’m basically a game designer or level designer, but it was surprisingly easy, maybe because I have very specific experience with Arduino, and it is kind of similar. There is this little console Arduboy. And the workflow is I think it’s kinda same. Some volunteers made the libraries and you just check them out and used them and, yeah. And that’s it. The only thing that I needed to learn is Lua, but Lua is very easy, way easier than C++ that I use, or C Sharp. So yeah, the whole workflow was very similar to me and I didn’t have any problems.

And also it was very helpful to just ask if you have some problems just to ask on, it was first on slack. Right? First there was a Slack then now it’s Discord. And every time I had a problem, I just asked and immediately had an answer.

Christa Mrgan: Yeah. The developer forum is a great community resource for asking and answering questions. For example, Gregory himself actually shared a really useful tool there that he built for working with synth sounds. So the Playdate SDK includes a pretty full synthesizer kit. Like what you would find in a chip tune tracker – We talked about those back in the Casual Birder and Boogie Loops episodes. The big difference though, is that what the Playdate SDK, there’s no graphical user interface to use to work with these generated sounds. So you have to actually write out what kind of wave form you want and define its various parameters. So it can be kind of difficult to go changing the values for each method, like “playdate.sound.envelope:setAttack(2.5)” or whatever, just to hear small differences. So Gregory made an app that runs in the Playdate simulator to make working with the synthesizer API a little easier.

Gregory Kogos: So it just gives me the sound of the same as of the certain as D R SDR attack, all this delay. And I don’t remember how, how it’s called. Attack decay. sustain.

And one more.

Christa Mrgan: Release! Attack, decay, sustain and release are some of the aspects that make up what’s known as a sound’s “envelope,” or how a sound behaves over time. Hey, that “Introduction to Electronic Music” class I took in college is finally applicable to my job.

So yeah. Playdate’s synthesizer API is pretty broad. You can define what kind of wave form you want. Like sign triangle, saw tooth, et cetera, and then adjust the wave form’s envelope. But you still have to actually write out exactly what you want, which again, makes it challenging to experiment with small tweaks.

So Gregory made an app that allows you to select a waveform type, and then adjust its attack, decay, sustain and release, plus pitch, step, and length in real time without having to write each value out. It’s really handy. And I think a lot of other developers would appreciate it. There’s a link to it in the show notes.

And by the way, you can also use the built in chip tune tracker that’s part of Pulp to create music and sound effects for your game and pull them right into your non-Pulp Playdate game, if it’s Lua- based.

Anyway, Gregory used the built in synthesizer API to create all of the sounds for Omaze in part, because he liked the idea of almost every aspect of the game being contained in one big file.

Gregory Kogos: uh,

The whole game is one big Lua file. And maybe three images for menu and few images for launcher card, but actual game works in one chunky file, like 3000 lines, I guess, or 4,000 lines.

I don’t remember. And yeah, it was one of my inner challenges for the, I wanted to make it like I made my Arduino games. Just one file. Everything is drawn through the comments, like graphic elements, like circle, line. Stuff like that. And the same approach goes to the sound.

Christa Mrgan: And even though he only had to write the code for the game without having to also design and program any hardware to go with it, like he did for RotoRing, hardware issues still came up for Gregory!

Gregory Kogos: The first Playdate hardware came with the broken screen.

Christa Mrgan: Oops!

Gregory Kogos: The screen didn’t work at all. And because I’m tinkering with the electronics, my first emotion was I’m going in, I’m taking this thing apart and I will check out what’s up with the screen. And that’s what I did. By the way, it’s very good. Like, it’s built very well.

And I checked out the screen and this little transistor on the connector of the screen, it was, soldered away, basically. The soldering just tipped off and it’s, it was too small for me to solder. I don’t have this fine tools for them. But after that, after this first emotion, like I need to take this thing apart.

When I had this thing, like wide open, I was like, what did I do? I, I might be, I might broke it. Oh my God. I had just, I had this only hardware that they sent me and I broke it and I took it apart. But then yeah, I realized I realized it, it wasn’t, it was actually the, the hardware failure over then. And I was waiting for the second one.

I already have three!

Christa Mrgan: Okay, before you get super upset about Gregory having three Playdates while people are still waiting for their first one. And you may be among them, keep in mind that these were all test units. And yeah, the reason he ended up with three will become very apparent.

Gregory Kogos: One is, was the broken screen. And I was using it as the controller for the simulator, cuz everything else was working.

Christa Mrgan: Oh, yeah: with the simulator app that comes with the free Playdate SDK, you can use a Playdate as a controller for .pdx files.

Gregory Kogos: And the crank, this handle came out on the first one. So the first Playdate right now is like a zombie Playdate. And the second one it’s holding up pretty well. The only problem with it is that this actual crank it’s too wobbly and it now it’s not metallic anymore. It’s oxidized. It’s kind of black.

Christa Mrgan: Yeah. There were a lot of iterations to get the crank, right. And to treat the metal pieces with a special coating to keep them from oxidizing. I don’t know which versions of the hardware Gregory had specifically, but if you’ve listened to the first episode of this podcast, you already have an inkling of the long and arduous process of getting to a shippable product. We recorded this interview back in November of 2021. So Gregory, hadn’t seen the final version of Playdate that shipped to customers, but he did have a unit that was fairly close.

Gregory Kogos: The third one right now, it works well. The menu button is sticky. Right now. But I think that the final Playdates will be spot on. I hope so.

Christa Mrgan: Gregory knows about hardware challenges firsthand and has a lot of appreciation for what goes into making a device that works consistently.

Gregory Kogos: Hardware is hard. It is my experience. I was when I was making the RotoRing, the one thing how I actually monetize it is I create the replica RotoRing for the festivals and for the museums and send them. And it’s pretty easy. Like it has the button, it has the rotary encoder. And it has the screen from 90, LEDs that I hand solder myself. And yeah, it took me some time to get everything right.

So like the button doesn’t bounce. The thing on the rotary encoder doesn’t fall off and yeah, there’s all the soldering on the LEDs doesn’t break. It’s crazy. And it doesn’t have a battery. And when I think about the Playdate-- for me, every electronic hardware, like iPhone or iPad or Playdate or Nintendo it’s for me, it’s a marvel.

It’s a miracle, that it exists and it’s actually working.

Christa Mrgan: Yeah. Seriously. And I know he said rotor ring is comparatively simple, but soldering 90 LEDs by hand sounds like a lot to me.

So what kind of experience does Gregory hope people will have with Rotoring’s cousin Omaze?

Gregory Kogos: I hope they will have experience of the old arcade games where you just come to arcades, and you just play it and you have no idea what, what will happen. When you play the arcade game for the first time? I think you have mixed emotions. It’s awe and frustration, because arcade games are very cool in their novelty, but they’re extremely hard. And that’s what I wanted to make with my game. But not as hard.

Christa Mrgan: I think Omaze is a perfect pick-up-and-play puzzle platformer for Playdate. I hope you have a lot of fun and don’t get too frustrated as you find your way through it. You can find out more about Gregory Kogos RotoRing and other things we talked about today via the links in the show notes.

Thanks so much for listening and stay tuned for more episodes coming soon to the Playdate Podcast feed.

Gregory Kogos: Thank you very much. Bye-bye.

Christa Mrgan: The Playdate Podcast was written, produced and edited by me, Christa Mrgan. Cabel Sasser and Simon Panrucker composed the theme song.

Additional sound effects were composed by Gregory Kogos and come from Omaze. I also snuck a little bit of Etude by Karlheinz Stockhausen in there when we were talking about sound envelopes.

Huge thanks to Tim Coulter and Ashur Cabrera for wrangling the podcast feed and working on the website. James Moore for making me an awesome Playdate audio extraction app, and Neven Mrgan, who created the podcast artwork and site design.

And thanks as always to everyone at Panic. Playdate is shipping now and available for pre-order at play.date.

Gregory Kogos: My English might be a little bit rusty because I didn’t speak for a long time. I I’m just listening to podcasts and writing, but I, I’m not actually speaking.

Christa Mrgan: Sein Englisch ist viel besser als mein Deutsch oder mein Ukrainisch!

That is, his English is a lot better than my German or Ukrainian!