Rss Feed

Developer Blog


I've been working on Kairo for nearly a year now and while it won't be finished until later in the year I figured it was time to open pre-orders. However the exciting news is that by purchasing a pre-order you will get download access to alpha builds.

The alpha build currently includes the first (and smallest) of the game's three areas in a fully playable form.

Pre-orders are priced at $8 and can be found at the Kairo microsite site:

If you've not been following development let me tell you about the game. Kairo is a 3D first person atmospheric exploration and puzzle solving game inspired by minimalist and abstract architecture.

Here's a recent gameplay trailer:

I describe Kairo as a 3D atmospheric exploration and puzzle solving game. I list the puzzle solving last because to me my primary goal is to build a fascinating world for the player to explore. However the puzzles are also a huge importantly part of the game because those are what will make the world more engaging, and I want the player to feel invested in this world.

I have found developing these puzzles to be the most difficult part of designing the game. They need to be varied, they need be interesting and they need to feel like they're an integral part of the environment and not just pasted on top. They also need to be challenging without being totally frustrating to the players.

So I wanted to help you understand how difficult I've found this by focusing on a single room that I've really struggled with. Which I'll be calling the Circular Room for reasons that will become obvious.


Puzzle rooms start as a blend of two ideas, one being an idea for the what the architecture of the room will look like and the other being an generic concept for what type of puzzle it's going to be. For this room I wanted the architecture to be based around circular discs forming the floors and structures and for the puzzle I wanted to be based around playing with light and darkness.

This is one of the few rooms that I've never really sketched out on paper and nor does it come from any reference imagery. It's just a very clear visual look in my head I've wanted to portray.

The puzzle for this room is also unusual because it's based of an existing game of mine. At the World of Love 2010 Game Jam we were doing a 3 hour jam where I'd spent 90 minutes playing with Unity water effects and was nowhere near making a game out of it. So I started again and put together a very simple game in the remaining 90 minutes that I called The Darkening.

In The Darkening you had to navigate a simple set of platforms avoiding shadows. If you touched them they'd absorb you and you had to start again. Some of the shadows moved along patterns and some expanded outwards once your were near them. Not too complicated but I thought a fun little jam game.


My first version of the room was focused on the visual style I wanted for the room, I spent a lot of time building the circular platforms the way I wanted them to look. Afterward I replicated the shadow mechanics of The Darkening in the room giving the player a set of challenges to navigate. You can see the model of this version below, the red lining is the collision boundary and was invisible to the player.

In short this version of the room was unplayably bad. I knew this as the shadows were in there and you can move through the room. The shape of the room did not work well the mechanics. You could initially just walk around the dangerous areas very easily and my attempts to make it trickier just made it more frustrating. I got some people to test it and they hated that puzzle more than anything else in the game.

I played around with the room layout and shadow layout a bit but knew I was getting nowhere. The original jam game had been fun, this was not. I needed to get closer to the original game. So I redesigned the level to resemble the original Darkening much closer though adopting the circular floor aesthetic. This level structure allowed for a better flow of the shadows mixing different types: static, expanding, swinging, chasing.


A version of the game went out to other developers for testing. Even still it came back as the most hated room in the game. While the rest of the puzzle in the game were about solving a mental challenge this was a fast paced skill challenge. I tried to tweak and change the speeds involved to make it more forgiving but at that point it was no longer even a challenge, just a chore to work your way through.

I went back to SketchUp and tried out a few different room layouts to see if I could find one that would "work" but I knew it was a lost cause. The whole puzzle just wasn't working out. While I know there's definitely milage in the light and darkness mechanics and it's something I'm going to revisit in later parts of the game I needed to start this puzzle again with something fresh.


Around this time I was struggling with not only this but a few other puzzles in Kairo. They were too arbitrary and felt more like busy work than progress. When I was designing The White Chamber I didn't want traditional adventure games puzzle that often made little sense, I wanted every puzzle to be a genuine obstacle your character is facing that needed to be worked through. It took me the longest time to realise that this is what Kairo needs too. Less locked door puzzles and more engineering challenges.

I came up with a new vision for the Circular Room, instead of getting past some nonsensical shadows it was more about starting a pilot light for a great engine. The puzzle is simply to work out the start up sequence to get this vast system up and running again. It's a simpler puzzle and maybe less inventive but it's one that I feel fits into the game work better than what I'd been struggling with.

I've still got a lot of work to do on Kairo and the puzzles are likely to change more over the course of development. I want the player to feel like they're bringing the machinery of a dead world back to life and not just jumping through hoops I've put in their way just to slow down their progress.

The Kairo Process

I've been working on Kairo for over 6 months now and I've found it a difficult game to blog about. I chose the game design because I wanted something that I liked, but also something I wouldn't find too difficult to develop on my own. So what this means is that I'm not doing lots of exciting and innovative things, most of my development time seems to be overcoming annoying unexpected problems. Exactly the kind of thing I've always thought people wouldn't want to read about.

However talking to Michael Todd at GDC I realised that people avoid talking about their failures and indie gaming is presented like it's a constant stream of successes. So I think it's time I get into the nitty gritty of the problems I've been tackling. I'll cover some of these road blocks in the coming weeks but I wanted to give them some context. So I thought it's time for the obligatory "my development process" blog post. Once you understand how I make the game, the unexpected difficulties I've encountered will make a lot more sense.

Paper First

The design of Kairo is mostly about lots of interesting unique rooms. So each room starts on paper. In my initial prototyping I tried making rooms straight away on the computer but they kept coming out like very game-like boxy rooms. So I took a step back to get out of that game design mindset. I consult a bunch of references including abstract paintings and whatever I can find online, however my main reference is architectural books. From there I make a very basic sketch in my notepad. I don't need a lot of detail, that can come in the modelling processs. I just need a basic structure and outline to work with.


Rather unsully I model the entire game in Google Sketchup. It's the easiest modelling program I've ever worked with by a large margin. I know it's often used for game protoyping but I don't think it's very widely used for final game assets. This makes sense as it's not great for everything, but for the sharp minimalist design aestheic I'm going for it's perfect. It also means basic room layouts are done in minutes and full room models are done in mere hours.

So anyway I take the sketch and try to recreate in Sketchup as best I can. Usually once I've got the basic shape on screen ideas start flowing as to how to enhance the design and give it some life beyond the simple outline. I typically don't texture in Sketchup even though I could, I just assign colours to each different surface type. Generally rooms in Kairo only use around 3-4 different materials so it's not complicated.


From Sketchup the models go straight into Unity. I throw in the basic Unity "First Person Controller" along with a few of my global scripts and image effects and the room is instantly playable. There's a level of iteration with Sketchup as I make sure everything is the right size and the room can be navigated as expected but that doesn't take long.

To get the visual style of the room right I first throw in some point lights to give the room some life. Then I adjust he basic colours from Sketchup and change them to textures I want within Unity and scale them appropriately. Then I choose a tint colour for the lights that make the room "feel right" and the most basic non-interactive version of the room is done.


Now I need to hook in the actual gameplay. Rooms in Kairo are either puzzle rooms or mood rooms. The mood rooms are just there for exploration aspect of the game and act as a bridge between puzzle rooms. For these mood rooms all I need to hook in is the door scripts and they're done. For the puzzle rooms there's obviously a fair bit more work.

Most of my puzzle are coded using invisible cubes working as triggers which are in co-operation with Unity's animation system to make the room change as neccesary. In all honesty I try to do as little coding as possible and generally Unity is flexible enough to do allow me to do most of this without relying on code.


The very final phase for a room is lightmapping. Once the room looks and feels right and the scripting is all in place all I need to do is the final layer of polish. Unity 3 includes a great lightmapping tool that allows me to take some very flat looking rooms and give them a huge extra dose of atmosphere.


So that's it. In thoery these simple steps allow me to make rooms for Kairo really quickly and easily. In fact this all went so well in my prototyping phase I was convinced I could have the game finished in six months. However of course that was rather optimisitc. Next time we'll start to see why.

I recently completed the Legend of Zelda. Suck it Ganon! Although I have played most of the Zelda games, many for a significant amount of time I don't think I've ever finished one. Typically because, for me at least, they tend to outstay their welcome. Running on a few dungeons longer than I have the patience for. However with the talk of the game's 25th anniversary I decided to give the very first game a proper attempt.

A harsh world

What struck me first, and I guess most obviously to anyone who's played it, is how unforgivingly hard the game is. It throws you into the world with no weapons, no instructions, you start the game and it just says go. Even once you've picked up your sword and have figured out the basics of combat there's still no real pointers as to where you should be going. You have no choice but to explore and find your own way in the world.

Obviously in this day and age I could have looked up an FAQ or found some maps but I didn't want to cheat my way through it. I wanted the experience as it was intended a quarter of a century ago. So I began to explore, dying many many times but starting to get a sense of the layout of the landscape around me. Eventually I found my first dungeon and the sense of satisfaction at just finding it was immense. When I finally beat it after 3-4 attempts I was incredibly pleased with myself.

From there the game became trickier, it took me longer and longer to find new dungeons and I would find them out of sequence making progression even harder. I had to start mapping the game myself in Photoshop so I wouldn't waste time running around in circles. Eventually I became totally stuck. I felt like I'd failed at game that a whole generation of children mastered and I'd fallen to it after only 4 dungeons. I resorted to an FAQ. I was a cheat.

A different kind of social gaming

I progressed through the rest of the game under my own steam as much as possible, but every now again I would hit yet another wall and rely on the internet to find my way past it. However I also spent some time reading up on the history of the game and realised my cheating was not as underhanded as I'd thought. The design of Zelda was intentionally opaque in places. This wasn't meant to be a game you'd work through from start to finish following a trail of bread crumbs. You were meant to struggle along with fellow players and then share your victories, the secrets you've discovered and the tactics that have worked for you. Miyamoto wanted this to be a social experience, so while it may seem an incredibly hard quest on your own, shared with other people the challenges become less overwhelming.

What interests me most about this design philosophy is that the most obvious modern comparison I can think of is not the newer Zelda games but surprisingly Demon's Souls. I can't fault Nintendo's decision to make Zelda a more guided and accessible experience for everyone because that's what they do and they do it better than most. However I do love a real challenge, not just a tricky fight, but a game that opens up and asks me to figure out what to do myself. Sure there are hard games, there are tons of bullet hell shooters, but for me there's not enough games that dump me in a world to explore knowing full well that only through the lessons learned from many deaths will I have gained an understanding of this world and how to survive in it.

I'll fully admit these aren't the kind of games I'm drawn towards making myself. However killing Ganon was the end of a very satisfying journey and the kind of thing I'd like to experience more often. Next up for me: A Link to The Past.

I'm back from San Francisco after my second time attending GDC. Obviously it was a really great experience and I will definitely be back again next year. I was a bit more prepared than last year with evening plans for every night already arranged, so there was much less milling around wondering what to do.

I met an absolute ton of great people along with seeing the friends I'd made last year once again. The indie love at that event seems to be getting bigger every year. On the night of pre-registration we ended up with like 30+ indies wandering the streets in a herd looking for a bar that would take us all. My only negative is that maybe we planned a little too much partying and I found myself very worn out and hungover on a few of the days.

On the plus side we got a lot more game jamming done this time around with two full days spent in Noise Bridge hacker space as well as a brief dueling game jam with Terry in the Hilton lobby. (I don't think he enjoyed the dueling aspect of it as much as I did ^_^) The two games to come out of those jams are not released yet and I don't know when they will be, but some point soonish. Hopefully.

In terms of what I've learned from this years event it's still a little early to say. As I didn't go to any of the main conference talks and will be catching up with them once they go up on the video vault site. However from the Indie Game Summit the two biggest points I got out of it were:
- I need to make Kairo a hell of a lot more awesome than it is now to reach the high bar other game developers are reaching.
- I was reminded how much I love player expression in gameplay (thinking of games like Deus Ex and Fallout 3) and it's something I need to find time to explore more.

So now I go back to work. I have big plans for Kairo over the next month.

Syndicate content

Welcome to the home of Locked Door Puzzle, the independent game development studio of Richard Perrin located in Bristol.

My primary focus is on creating expressive games that explore different forms of interactive storytelling.

For contact details check the about page.