Posts Tagged‘simplicity’

Kairo Screenshot Wallpaper Title Screen

Kairo: Silence, Simplicity, Sorrow.

I have to admit that I’m developing a soft spot for these indie exploration games. It started out as a relationship of convenience, my dedication to one review per week can sometimes see me scrambling for time and this particular genre of games usually doesn’t last much longer than a couple of hours. However over time I’ve come to appreciate their simplicity and the narratives that they create, whether through traditional means or through more abstract methods. Kairo by Lupus Studios is an abstract puzzler/exploration game that tells the tale of one possible future, and what might be done to save it.

Kairo Screenshot Wallpaper Title Screen

 

Without little more than a title sequence you’re dropped into a strange, clinical world. Off in the distance you can see a building but there appears to be a large, insurmountable gap separating you from it. Tentatively you step forward and find that it isn’t a gap at all and you’re able to cross over to the mysterious structure. Once inside it appears to be a lot larger than it was from the outside and there are rooms heading off in every directly. Curiously you enter one only to find yourself confronted with all manner of puzzles, each of them building upon one another, seemingly towards a greater purpose that never quite reveals itself.

Kairo has a distinctly desolate feel to it with most of the lighting being of a single colour that varies from room to room. It also makes heavy use of the film grain effect to give a little more texture to the otherwise flat environment which isn’t a particularly bad thing and there is an option to turn it off should you find it bothersome. The simplicity is very deliberate  however as it ensures that key game elements stand out and, in the case of story elements, shifts control of the narrative over to you. I’ll admit to initially feeling like this was minimal effort design but the further I got into it the more I realised that each of the visual elements was very deliberate, even more so than I gave it credit for.

Kairo Screenshot Wallpaper The Lighthouse

The core game of Kairo is that of a puzzler with each of the rooms using a different mechanic or a twist on a previous one so that even the similar puzzles won’t have the same solution. Most of them are fairly easy to work out, usually being based off tried and true mechanics that have been done in countless other games, however quite a few of them require quite a bit of abstract thinking. Indeed should you not know a lot of the common ideas in science and mathematics it’s quite likely that a lot of the puzzles will simply frustrate you since there’s really no way to guess the solution.

One such puzzle I could think of consisted of two dials with a central spinner. The dials were controlled by your X/Y position on a plate and each of the wheels contained 8 symbols on them and the central spinner displayed 2 symbols on it. Now any intrepid puzzle solver would look at that and think that you just needed to match the symbols up and, indeed, that’s the answer to the first part of the puzzle. However after that simply matching them doesn’t work but you’re quite likely to stumble over a solution just by chance (at least I did for the second one). The final one actually requires you to know π to a set number of digits (rounded up, as well) which, if you were like me, you won’t figure out on your own because you thought it was a pattern matching problem, not a numbers related one. I admit this might just be me getting stuck in a particular mindset but when you’re dealing in things that are this abstract I feel it might be better to include a couple more visual clues to help you along.

Kairo Screenshot Wallpaper Block Thinger

People who’ve played this game will be quick to point out that Kairo does in fact include a hint system that you can access at any time through the options menu. Indeed when I said you wouldn’t be able to figure it out on your own this was what I was referring to as after spending far too long being frustrated by the seeming lack of coherency in the puzzle that was the first place I went to. The hint system is a great inclusion as it helps those of us who just aren’t in the same head space as the developer and just don’t get what certain puzzles were trying to accomplish. I endeavoured to keep my use of the system to a minimum however as there’s nothing more satisfying than working something out on your own.

The lack of any kind of tutorial however does mean that there are some aspects of the game that will be hidden from you unless you go looking for them. In many of the levels in Kairo there are runes hidden away in places that are usually quite difficult to get to and unless you’re the kind of person to explore every section of a level fully you probably won’t know they’re there. Indeed I didn’t know they existed until near the end of the second section when I was nearly 2/3rds of the way through Kairo. So whilst I can appreciate a game that goes for the ultimate in simplicity a little hand holding wouldn’t go astray, at least so I didn’t find out that I was missing a relatively large part of the game without even knowing it.

Kairo Screenshot Wallpaper Dome

Probably my biggest criticism, and this should say a lot about the game overall, are the sections that aren’t required for you to progress further. They’re included for narrative purposes, usually giving you some insight into Kairo’s larger purpose, however they either do not contain a puzzle to solve or they have one which is non-critical (although do provide some really good bits of story if you should complete them). Whilst looking at the hints will reveal whether or not you’re in one of these rooms I would’ve been a lot happier if there was some visual indication, just so I didn’t spend an inordinate amount of time looking for a puzzle that didn’t exist.

As for the story I will have to be honest and say that I wasn’t completely sure what was going on throughout most of the game. There are references to mathematics, biology and general science all over the place but apart from a couple key points (like the control room) I wasn’t really sure what was going on. After I was intrigued by the possibility of a secret ending, which isn’t so secret since there’s an achievement for it, I found many good plot summaries that detailed Kairo’s purpose. Reflecting on my time with Kairo it then became clear that all the clues were there and I simply missed a couple key interlinks that would have revealed everything to me. So should you be looking to play this game I’ll advise you to explore as much as humanly possible as the tale of Kairo is one of tragic beginnings that ends with hopeful redemption.

Kairo Screenshot Wallpaper The Console

Kairo is a standout title that utilizes its fanatical simplicity to convey a message that will only reveal itself through careful examination. Whilst this dedication to stripping away all extraneous elements does mean that you might find Kairo wanting in some aspects as long as you know this going in you will likely appreciate it far more than if you approach it like a traditional game. It’s not for everyone, indeed unless you enjoy building your own narrative I’d probably steer clear, but Kairo will reward dedicated players who give it the careful attention it deserves.

Rating: 8.5/10

Kairo is available on PC right now for $8.00. Total play time was 3.2 hours with 27% of the achievements unlocked.

The Quest For Simplicity (or Who Pays For Rework).

I can remember sitting in one of my university lectures a long time ago being taught about development philosophies. It was all pretty standard stuff, we were walked through the “traditional” methods of development (basically the once through, waterfall technique) and then brought up to speed on the more modern iterative approaches. However one little soundbite always stuck out in my head and that was when the lecturer asked us who pays for rework when a product doesn’t fit a customer’s expectations? The simple answer was you, the one who developed it and it’s something that always plays over in my head when I’m working on a project, especially those ones I do at home.

I’ve been paying extensively for rework with my latest forays into the world of game development. My regular readers and Twitter followers would’ve noticed that I cheerfully announced my success in cracking the stable orbit problem. Indeed in a round about way I had, basically my Unity scripts would push the planet around until it hit a stable orbit and afterwards would calculate the required velocity before turning off completely, letting the heavenly body orbit in a near perfect circle around its star. This worked for the 2 planets I had in there but unfortunately the equations I had developed didn’t generalize very well and adding in planets at random locations with random weights led to all sorts of wobbly orbits with planets meeting both fiery deaths and cold extinctions at the cruel hand of my orbit stabilizer. I was back to square one and I spent most of the weekend trying to figure out a fix.

Eventually I came back around to the idea that my smart-ass subconscious came up with a while ago. I had tried to implement it before but I gave up in frustration when the results I got were no different than from my far more complicated “find the angle between the sun and body, increment it a bit, find the new position, create a vector to it then apply force in that direction” when in reality the fault lied in the orbit stabilization code. All that pushing and pulling that made the orbit look stable was in fact imparting all sorts of wild forces on the poor little planet, when in fact the best way is just to simply let gravity do the work for you. With this in mind I re-implemented my perpendicular force calculations and then devised a rudimentary equation that combined the mass, radius and a fudge factor that let me hand stabilize the orbit. In the past attempting to do this stuff manually took me an hour or so per planet, with this revised code I was able to do one in minutes and have developed a new equation that is able to accurately send a planet into a stable orbit no matter where I place it in the game.

This solution was far more simple and elegant than what I had been trying to do previously but the cost in terms of rework was tremendously high. I’m lucky in this respect in that the client for this is just myself and my friend at the moment but had this been for someone else with whom I had a contractual relationship with that kind of rework would’ve been extremely costly. Of course I could try to make the client pay for it but ask anyone who’s gone back to a client asking for more money after saying they could do it for a certain price and you’ll usually be laughed out of the office, if not walked out of there by security.

Working around this isn’t easy as clients will usually want to have a strict set of deliverables and time frames which seems to rule out any iterative or agile development methodology. It also pushes a team dangerously towards suffering from analysis paralysis as you agonize over every requirement to make sure it’s covered off in the final product. A healthy amount of analysis is good for any project, especially if it makes the product easy to maintain or modify, but it’s also incredibly easy to fall into a never ending spiral of pointlessness. Thankfully however I’ve noticed that clients are far more receptive to the idea of milestones these days which lines up well with any iterative process, skirting around these problems easily.

Going after the most simple and elegant solution might seem like the best idea at the time but in my experience it’s those kinds of solutions that take the longest to achieve. It’s almost always worth it, especially if all you’re spending is your own time, but when you’re working for someone else they might not be so keen for you to spend inordinate amounts of time chasing your white whale solution. This probably explains why a lot of software contains incomprehensible code riddled with bugs, but that’s a whole ‘nother ball game and a blog post for another day.