Skip to main content
If you click on a link and make a purchase we may receive a small commission. Read our editorial policy.

Level With Me, Richard Perrin.

A niche game


“Level with Me” is a series of conversations about level design between modder Robert Yang and a level designer of a first person game. At the end of each interview, they collaborate on a Portal 2 level shared across all the sessions – and at the very end of the series, you’ll get to download and play this “roundtable level.” This is Part 7 of 7.

Richard Perrin is currently working on Kairo, a slow-cooked first person puzzle game where you explore monumental ruins of a past civilization – it's a game without words or dialogue, just spaces. He's shown the game at Develop, Notgames Fest, and PAX to generally favorable reactions and has one of those alpha pre-order thingies up too.

(There are some moderate spoilers for Kairo, but the final game will be so different / you'll have forgotten it by the time you play it.)

Robert Yang: So what's the last thing you did for Kairo?

Richard Perrin: Actually, I haven't been working on Kairo for the last few weeks. At Indiecade, Terry [Cavanagh] convinced me to submit a prototype of my next game to the IGF, and I said, “but I've only got a week.” Then he said, “it's like a game jam.”

RY: Oh, then can you tell me about this prototype?

RP: The game before Kairo was called “Journal.” The artist was my best friend but she was too busy, so I had to ditch the whole project. A lot of it was based on things from her life, so I didn't like working on it with someone else. The inspiration for Kairo was actually from the failure of that project, the third or fourth game I've had to leave because the collaborator let me down or I let them down. So I started making a game where I could do everything.

RY: What genre is Journal?

RP: It's a 2D sidescroller, everything takes place in a hand-drawn, sketchbook world. The world used to feel very real, but now it's more of an “Alice in Wonderland” kind of thing.

RY: And it's still about your friend's life?

RP: It's about childhood and all the things you go through as a kid, but don't seem so important to adults. Lying to friends, spreading malicious rumors, cheating on tests...

RY: Grown-ups do that all the time.

RP: But as an adult, you don't care; it's not the end of the world. Each part of the game is a little vignette about this girl's life, and through conversation you choose how she remembers the event.

RY: It reminds me Deirdra Kiai's work, especially Life Flashes By. I'd recommend looking at it to steal some ideas.

RP: Oh, I think Stephen [Lavelle] recommended her to me.

RY: She's an excellent writer too, you should definitely look at it.

RP: The one thing I'm not doing yet with games, but I really want to do, is exploring more personal stories in games. That's kind of what had drawn me into it in the first place.

RY: So Kairo isn't personal, you'd say?

RP: It's about challenging myself, going out of my comfort zone – storytelling is what affects me in games like Final Fantasy or Silent Hill. With Kairo, I want to tell a story using a world, not by using traditional crutches like dialogue or exposition. Under those constraints, I can't tell a complex story, which is good. So Kairo is, to me, about telling a story about Kairo. The puzzles aren't just arbitrary puzzles, but feed into the purpose of the world. I want the game to be self-evident. The ending will be very clear.

RY: When I played the latest build, I think it loaded my previous game from an older build, so I started in the middle of the game – and then I came across these rooms that were already solved, as if my character had a “past” in the game and I was just taking over.

RP: That's not what I was intending, but I think there's something in that.

RY: I thought, “Wow, this is really experimental and daring!”

RP: [laughs] I'm not quite avant-garde just yet. It's interesting to think of how to do that – just simply communicating that it's a puzzle, and that this puzzle's already been solved. Part of Kairo is figuring out what the puzzle actually is. You usually have to make it so obvious. It's something I've had to resist when watching people playtest, when they solve a puzzle without realizing it.

RY: I actually took issue with the “hint” function, because now I have a binary indicator that tells me what's a puzzle or not. I was in that long yellow hallway with the coffins, but then the hint function told me there was nothing so I stopped exploring.

RP: I wasn't sure about the hint function. People can rush through the game really quickly without seeing anything, but I'm also torn with the puzzle games that are completely stoic and the experiment breaks. Sometimes it's not a matter of skill or patience, sometimes you just can't solve a puzzle, and so you quit out of the game and google around for an answer.

RP: I'm banking on the people who want to explore, who want to get the most out of the world. That yellow corridor, for example, has two specific things in there that related to the story of what happened in Kairo. I think it's definitely a niche game like that.

RY: In an earlier interview, I think Dan Pinchbeck argued for erring on the side of no hints and blurring the line between puzzle and non-puzzle – because if a game does only what you expect, it's kind of failed a little.

RP: I guess we all like to be surprised, but... to me, that's not the goal of this game. Even without puzzles, I'd still enjoy wandering around the world. I'm not strongly on one side or the other, but I had to make a call. There aren't any pop-up tips in the game, it's still very disconnected. I think most people will give it their best shot.

RY: I agree that players will often self-regulate. But when I went into that one room with musical floor tiles, I thought it was a puzzle, and I never would've known it wasn't a puzzle if I hadn't used the hint function.

RP: It's very hard. People see something interactive and they always think it's a puzzle. I actually had to move that room, because it became a huge game blocker and players would spend ages there, only to give up and feel frustrated.

RY: But it's just a toy.

RP: Yeah, it's about the joyful glee of just playing with something. When you're making a puzzle game, it's too easy to think, “what puzzle is this?” or “what's the player's reward?” The goal is to make a world, and a world is full of things that aren't just objectives to overcome.

RY: There's that part in Half-Life 2, on the coastline, where you find a tire on a rope, hanging from a tree. You know it's not a puzzle. You know it's a toy. [Or, alternatively, that playground in the first few minutes of Half-Life 2.]

RP: I've tried communicating that to some degree. The third room has bridges that respond to where you're standing, to make it fun to walk backwards and forwards and watch them collapse and pull back. You're then in the garden, and there's actually nothing to do there, though I might add things in that environment that respond to you. It's tricky to communicate, given the abstract nature of the visuals... I'm never going to hit my deadline on this. [laughs]

RY: Well, this was just the first chapter right? At the end, you actually enter the city of Kairo?

RP: Yes and no. You're actually in it already... well, if this weren't an interview, there's lots more I'd say. You're entering the second building, and each is different in tone, feel, and style.

RY: I liked the relation between the different rooms and scenes. The same motifs pervade through them. You'll activate one beam and see it in two other rooms.

RP: Yes, I want to think about how it works – these aren't just rooms, but they're part of a system, a machine. The puzzles aren't meant to be things the people of Kairo would've had to solve, but you're fixing the equipment, you're going through a maintenance routine to get things up and running again. So yes, the beams, the water –

RY: Oh, the water. I really liked how you did that.

RP: The water was actually one of those happy accidents. I was playing with particle systems, and thought I should do a proper water effect – but then I got that square thing running, and decided, you know, I really like it like this.

RY: It's so much better as a square.

RP: Especially if you jump in it, it has this really weird effect due to the billboarding of particles. I can't really explain it or take too much credit for it, I was just playing with it. A lot of the really nice elements of games were probably happy accidents.

RY: I like how if you looked at a screenshot of the water, you wouldn't know that it's water, but in-game you instantly know because of how it behaves and how it sounds.

RP: The sound of real water is actually kind of a cheat, though...

RY: And if you saw another screenshot of that octagon thing, you would have no idea what it is. But in-game you quickly realize it's a progress bar or something. It only makes sense from how it functions.

RP: That actually came out of playtesting. I've actively resisted adding any kind of HUD element, but I want players to understand what they were doing was changing another part of the world. How do you communicate that you've solved a puzzle if the result isn't something like a door unlocking? I'm trying to avoid locked door puzzles. That's a frustration of mine, so that's what my website's called.

RY: It all reminds me of Myst a lot.

RP: I'm happy to acknowledge Myst as an inspiration, but I was actually thinking more of Ico with that idea of exploring a giant castle. I guess the first person view makes it come across more as Myst though. It's a good touchstone though, and I usually explain this game as something like Myst or Ico.

RY: I think a big part of what makes Ico work is the benches, the save points: when you get to those, that's kind of when you know you've solved a puzzle. I never knew when Kairo was saving my progress.

RP: I'd argue it's more about Ico being very linear, and seeing a new area means you've moved forward. I wanted Kairo's save system to be transparent, without people having to bring up a GUI and type in a name for their save game, or things like that. I want to stay in the game. And after people play the first section, I've found most people understand.

RY: What was the general response? You were at the Notgames Fest?

RP: Well, the first event I did was the Develop conference in Brighton, UK. Tons of people played, but it was probably the worst response I got. We were 10 indies, all on these small booths next to each other. Most people just tried each game for 5 minutes, to “get it,” and then they'd move on.

RY: [laughs] Wow, that's impossible with Kairo.

RP: I ended up having to explain it and “give a sales pitch” to each player, for two days. A few people did sit and play through it, but mostly I really struggled and it worried me that people weren't going to get it. Then I went to Notgames, a totally different experience. They put the games in a museum context: each game had its own specially constructed cardboard booth, the place was dimly lit, and they had music playing near every game that'd give you a feel for them as you walked around. It was the most beautiful way of playing Kairo: you'd just sit in a secluded booth, and the color of the screen would light the whole booth. Most people played through it.

RY: But say I'm at the Notgames Fest, waiting to play Kairo, and someone's sitting there for an hour. When is it my turn to play?

RP: It wasn't really a problem. Notgames Fest seemed to have a... it was never really crowded at one time, there was just a constant flow of people. There was always at least one game free. It was the right amount of busy, a museum or art exhibition that isn't packed.

RY: Then you go see the Mona Lisa and you have to queue for 20 minutes.

RP: [laughs] Good thing I'm not working on the Mona Lisa then! Yes, Kairo needs at least 30 minutes, and maybe that doesn't make it the best suited for a video game show floor – in fact the only trouble I had with that was at PAX. One woman got very frustrated because she had been waiting for a while to play. Ultimately I think I just have to accept it, and even more mainstream games have that problem. At PAX, I shared a booth with Skulls of the Shogun, and they had quite a long intro and took 20-30 minutes to get into it.

RY: That's what scares me about the public exhibition of games. The museum model has you standing in front of a painting for a little while, then you get out of the way and let someone else take your spot.

RP: Theoretically, I would agree with you, but my experience has mostly been fine. It's not optimal, but they have a good experience. Maybe I'll just have more computers setup for PAX East. I think Kairo's look attracts a self-selecting audience, who've already partially bought into the experience, so the people who sit and play will want to finish at least half of it.

RY: You're okay with that self-selecting audience?

RP: Kairo's a niche game. I've been approached by Microsoft and others, but I don't think this would work on a console service. That's the beauty of indie games, you can make a niche game and still find an audience.

RY: I didn't mean in terms of business. Again, to harp on that point we already disagreed on – [laughs]

RP: I'm not sure what the alternative would be. Have a game that looks like one thing, but then it's a different thing? That seems more like a gimmick.

RY: I... agree, but I don't think gimmicks are bad.

RP: [laughs] No, I hated it as soon as I said it. I find people often use “gimmick” to describe an idea they don't like, and I just used it in that same context there. My hope is simply that people will want the kind of game I'm making – but one counterpoint is that one of my main supporters didn't like the newest trailer, thought it was more like a horror film, and he sees Kairo as something more safe and comforting. Actually, with the new musician I'm bringing on, we're trying to change some of the rooms to something more oppressive, more ominous. So for the player who wants to wander freely and feel nice everywhere, but I'm also trying to give them a contrast in experiences.

RY: I respect that, even though I'd argue against it.

RP: The games that are centered around a turning point – they're more my “jam” style of games, just short things I make. I've never managed to build a large game that turns on that, to trick the player. Like, people got so upset with Metal Gear Solid 2, when they just changed the player character, even though the gameplay stayed the same.

RY: I think Braid is more the model here. That last level.

RP: Kairo's last world is definitely different from the others. And the ending kind of comes out of left field –

RY: Okay, that's good. I'm comforted by your assurances that you're going to mess with us.

RP: Yes, I don't want the full game to feel like the alpha build times 4. I can't elaborate much more.

RY: About the process of making Kairo: you make the levels in SketchUp, right?

RP: Yeah, I'm no 3D modeler. I learned it when I used to work for an architecture company. And the ability to just drop the files into Unity and walk around and explore them immediately was very appealing. I've always found other tools to be too difficult to use.

RY: Do you find SketchUp limiting at all?

RP: With Kairo, no, I designed it very pragmatically. The abstract blocky visual motif works very well in SketchUp, which doesn't do round shapes very well. A lot of that came from a specific image – I saw it posted as inspiration for someone else's game, but to me, their game didn't really convey that image. So I wanted to convey that treatment, of a very marbled surface, and it was possible with the tools I knew.

RY: What luxel resolution are you using for your lightmaps? (A lightmap is a flat 2D image baked and wrapped around 3D models to simulate photorealistic light and shadow. A luxel is a lightmap pixel.)

RP: The problem is that the Unity lightmapper only allocates one 1024 x 1024 lightmap per mesh (though I've modified it to use a 2048 x 2048 lightmap) and each level is one mesh that has to share all that lightmap space. Maybe in the end I'll break it up into different pieces, but that makes it much harder to edit in SketchUp. In the meantime, I've learned a lot more about lighting and using more shadows and contrast. Right now I'm concerned more with getting the rest of the content in.

RY: That's probably the smart way. I can't work the smart way.

RP: So I've been thinking about what I'd change or add to the Portal experience. I always think about function and past use. If there were some way to die in the level, like one of those acid pits – but what I'd like is that each time you come back, there's an additional ragdoll body floating in the pool, dead. Previous test subjects were killed in this place. The game is supposed to have a sense of levity, but I like the idea of finding more bodies the more you explore this world.

RY: I don't know if the Chell player model is setup for ragdolls.

RP: Do you have any access to content from Half-Life 2 then?

RY: No, everything is separate. And since there are no humanoid NPCs in Portal 2, I'm not sure if the code is even still there.

RP: You could probably get away with some of these static poses if you lay them flat, face-down in the water.

RY: There's no collision model on it either, it can't even be physically simulated. [Tests the level and Chell's corpse suddenly disappears.] Oh dear. Maybe they could all be ghosts instead?

RP: My immediate thought was to represent this without letting the player touch them. Maybe they could fall into the same death trap. Because there are so many different players that are Chell. That's why I never got into modding: as soon as I opened the tools I'd want to do what it wasn't designed for. But it's good to break things in interesting ways.

RY: Okay, so let's see if this works: I've taken the character model and attached her to this block, and that's her collision model. So we can physically simulate her in this weird way, but she'll have severe rigor mortis and no pupils.

RP: But that's okay, she's dead.

RY: So how do we do this pool?

RP: Can we just lower that floor section, over there?

RY: Like this?

RP: I was imagining a smaller section... yeah, that. Lower it and make that acid.

RY: And each level iteration, we add one more body?

RP: Yes.

RY: So now what I'm doing here, is assigning her to a template, so I can instance copies of her corpse with all the settings intact.

RP: It amazes me that you can use the tools like this. I only got into 3D because Unity makes it so easy.

RY: But how do you script stuff in Kairo?

RP: It's all Javascript. There's not much code, really. “You walk into this trigger, enable this.” It's super super simple. It doesn't need really complicated code. All I'd do in Unity is to make this corpse a prefab and instantiate it.

RY: [watches Chell sink into a pool of acid] We need to use something that floats. What floats? Plastic stuff... nope, there's no plastic stuff. What about barrels?

RP: [laughs] That's better than the... that's so awesome.

RY: [laughs] When the player fishes her out, she's going to roll around.

RP: That's not what I had in mind, but I'm happy with that.

RY: Should I hide the barrel?

RP: I'm torn. That's incredibly funny, but I don't think it'll fit and it'll miss the point.

RY: Right. Thanks for your time.

(Transcript edited for clarity and length.)

Read this next