Kintsukuroi is a small puzzle game I made this Summer that sees players piecing together broken ceramics
It features 20 levels, 2 game modes and original music by Clark Powell

Download Kintsukuroi for free!

Or continue reading below learn more about Kintsukuroi's development

There are many things I like about games, which I think must be obvious to anyone who’s interacted with me on even a basic level. Before starting Kintsukuroi I made a short list of the key components of games that I enjoy the most, with the aim of picking one and building an idea around it. The list I ended up with included creativity, relaxation, exploration, narrative and productivity. Several ideas were developed from these core elements with the one that I felt would fit a mobile device best being Kintsukuroi, an idea built around relaxation.

Kintsukuroi’s main goal is to center someone who’s anxious - to provide them something to focus on in a calming environment while also giving them a sense of progression and accomplishment. Having the game be developed for a mobile device would mean it’d be quickly and easily accessible, and having it be touch based would add that tactile sense that would help to ground a person all the more. As someone who regularly deals with anxiety I often find myself picturing returning to a calm state in stages, or waves, or pieces of something broken realigning. Which is where the link with Kintsukuroi was made.

To use the definition found in-game: Kintsukuroi is the Japanese art of fixing broken ceramics with lacquer mixed with precious metals. It aims to create a new piece that celebrates the object’s broken history rather than trying to hide it, making it beautiful in a new way. The imagery of piecing together these broken pieces has stuck with me since learning of this process a few years ago, so it felt pretty natural to connect the dots and arrive at the idea of Kintsukuroi as a calming game.

I knew that I wanted gameplay to focus on piecing together broken ceramics, but it’s one thing to have an idea for a game and another to see it actually realised. How would pieces be interacted with? Where would they be when not in their correct place? How would the player move around, if they did at all? What would happen when a piece was completed?

When starting a level in Kintsukuroi a single piece drops in and takes its place on a solid shadow in the shape of the original whole object. The player can then pick other pieces from a menu below with the aim of rebuilding the object by placing the pieces in their original positions. This is very close to one of the first ideas planned out for how levels should start, with others including:

  • The player being presented with a whole vessel that they would then smash themselves (but I felt this clashed with the core idea of a calming game and also with the philosophy behind Kintsukuroi itself)

  • Pieces falling individually onto the ground in front of the player which would then need to be sorted through manually (but I quickly ran into processing problems with many active mesh shaped colliders all knocking around, not to mention the lack of a piece menu making things more difficult than they needed to be, taking away the focus from rebuilding and shifting it to the frustration of not being able to locate certain pieces)

  • The view panning over to a table or ledge from which a vessel wobbles and falls from, smashing in front of the player (I liked the idea of this one and it had promise for adding some nice movement between levels but it felt a little too based in some kind of weird reality - where was this void dotted with furniture and precariously wobbling ceramics?)

Ultimately I decided on a clean and more abstract approach of pieces simply falling from above and then leaving the way they came on completion with the next piece dropping down just after. I added in a bobbing motion too to give a sense of these objects lazily floating around and had them do quick rotations as well - one at the start to give an overview of the whole shape that you’d be trying to rebuild and one at the end to show off the new vessel you’d built. I also tried adding in a dust particle effect when pieces reached their lowest point and then again while spinning to add a bit of flair, but this looked a bit out of place in an otherwise very simple environment. I think sometimes less is better!

On the topic of simplicity, above shows my first visualisation of gameplay (one that the final game actually resembles quite closely). I wanted the game to only ever show what was necessary as to make it possible to fully focus on the single goal of fixing the broken vessel. The background was to be as clear as possible but a shadow would be needed to give a correct sense of depth. This shadow would only reflect the shape of the object in its current state of repair too - the solid shadow that pieces would be placed on wouldn't cast one itself. Initially I wanted the menu that holds the pieces to be one that could be hidden, but this would later be switched to one that was always in view to better streamline the act of piecing together vessels. Other visuals like a pause button and time information would be added when further developing gameplay, which brings us nicely to Kintsukuroi’s game modes.

Two modes of play are available in the final build - Normal and Timed. Normal sees players aiming to rebuild without restrictions while Timed, as the name suggests, sees players working to complete pieces before a timer clocks over a pre-set top time (one that would be repeatedly replaced with any player’s time that beat it or the one before it). The inclusion of timed mode was something I internally debated on quite a lot throughout development! There’s a very definite shift in tone when switching from Normal to Timed - what was previously calming suddenly takes on a much more urgent feel, a sense that I'm sure anyone who’s played any timed puzzle mode can relate to. There’s a weight added to every action; picking up the wrong piece or taking too long to move the vessel around has a consequence now, where as in Normal such actions are not really even thought about. However I felt that having an alternate and more engaging mode would definitely help improve replayability and add more of a challenge to an otherwise quite easy game.

At first I made Timed mode an unlockable reward of sorts after beating the whole game in Normal mode. I figured that players who completed the game through at least once would be reasonably good at it and the stress of a timed mode wouldn't feel out of place. But this lead to confusion in play testing, coupled with the feeling of perhaps more being unlocked if something else was done, maybe after beating all of the preset top times in Timed mode. This briefly had me planning on a third mode, one that would be even more difficult, but this was eventually dropped in favour of having both Normal and Timed modes unlocked by default. Players could toggle between modes before selecting a level, having full control on whether they wanted a more relaxing or challenging game experience. While Timed mode is not as calming as Normal, it grabs a player’s attention much more readily, needing almost complete focus in crucial moments. This focus could work in relieving anxiety through distraction - by pushing aside worrying thoughts and instead providing a puzzle with an actual solvable solution. The goal of trying to beat your own previously set top scores adds a sense of growth and improvement too, positive feelings that I feel can be very helpful when otherwise upset.

A third possible game mode wasn't the only thing that was developed for a short time and then dropped. Initially I wanted to game to include a Gallery - a place where players could go to look at their completed pieces in more detail. This was actually worked on somewhat extensively - above is a gif showing what it looked like at one point. Players could swipe left and right to move along a row of exhibits in a gallery setting with uncompleted levels appearing as shadows and completed ones being interactive. If a player tapped on one of these completed levels they would then be able to expand and retract the pieces and rotate around it, simply to be able to see them outside of a game setting. I've love when games give you the opportunity to look at models and such like this so I wanted to include a similar feature in Kintsukuroi. Eventually though this was condensed into the opening screen which shows vessels slowly exploding outwards with the idea that this was them being shattered at some time originally. It keeps in that almost exploded diagram look that I wanted to capture in the Gallery but without the unnecessary addition of an extra scene that might otherwise be missed completely.

Zooming the view was a feature for quite a while too - players could pinch in or out to get closer or further away from the current vessel. While this felt quite nice in some cases, zooming in to see detail perhaps, it was ultimately dropped as being an unnecessary additional control and one that could be rendered useless by simply making sure that vessels filled the space by default.

Another feature that was worked on and eventually cut was the ability to control the depth of pieces when moving them around in-game. This was during a stage in development where the randomised rotation of pieces hadn't been added yet and moving a piece around the screen arbitrarily would quite easily hint at where the correct place was. The game was too easy and I wanted to make it more challenging. Depth was then being controlled by the solid shadow of the object’s complete shape - if a touch was over this solid shadow then the held piece would match the z depth of the solid shadow under the touch. This is how the game works now, but then a piece would even snap to the correct position if it was through the solid shadow and out the other side.

Above is a gif that shows how depth control looked in-game before being removed. The idea was that players would use one hand to hold a piece and then the other to control the depth. The second touch would spawn an icon where it began (with the icon used in the gif being a placeholder and somewhat confusing with the additional left and right arrows) and then the vertical position of the touch would control the held pieces’ depth - moving the touch up would push it further away and down would pull it closer. While I was quite pleased at how I’d implemented this I had to agree that it was somewhat unintuitive and maybe those who had no experience of manipulating objects in digital 3D space wouldn't be able to understand it particularly well. So it was cut in favour of having depth be something that wouldn't factor in at all, instead it would be dealt with automatically.

The way that pieces were recognised as being in their correct places was something that changed quite dramatically around mid way through development in conjunction with the way that rotating the view was handled. To explain this I’ll need to briefly cover how vessels were originally loaded in. When a level started, the corresponding vessel to the level number was spawned at the point where it’d be during gameplay and was rendered temporarily invisible. During this time, the center points of all the individual pieces (their world position coordinates) were stored. The shards were listed and then one was randomly picked - this would be the one that was pre-placed at the start of a level. The others were then shuffled in order and added to the piece menu at the bottom of the screen. The vessel (now only containing one child shard) would be relocated to above the game view where it’d be rendered visible and would begin the process of falling into the shot. When the view was rotated during gameplay it was the camera that moved around the vessel, thereby keeping the world positions stored as accurate to where the pieces needed to be placed. When a piece was found to be within range of this position they would be placable - a sound would play and their colour would change to indicate this.

This is how it’s done now too but with one major change. Rotating the view needed to be altered since having the camera rotate caused numerous problems elsewhere. Instead I changed it so that the vessel itself would rotate, keeping the camera in the same position at all times. This meant that I needed to change the way the correct location of pieces were stored as their world coordinates would remain static while the vessel rotated. So instead of storing the positions of shards during that moment where the vessel was temporarily invisible at the start of a level, empty gameobjects were instead spawned at these positions and were made children of the vessel. These gameobjects would act as points in space that would be able to match the movement of the vessel when it was rotated, so when a piece was near its corresponding gameobject point the same process that would have occurred when they were static points in world space would be carried out.

The differences between the kinds of spaces - world, local and screen - were the cause of many problems I faced during Kintsukuroi’s development. A major one was having the held piece appear under the finger when moved. Above is a gif that shows me testing the very first build. Piece movement at this stage was awkward to say the least - I was still learning about the difference between a touch’s world and screen space position having never actually developed for a touch screen device before. I was using an invisible plane in parallel to the camera to project the piece onto which was centered on the vessel, adding in a z depth to account for too (which I initially didn't). Pieces were (and still are) rendered in a perspective view, rather than orthographic, so depth adds in to their perceived position on the screen. This all led to an offset problem I’d have trouble with for a good deal of the project! In the previously linked gif you can see it’s quite extreme, forcing me to compensate to the left noticeably. Even with the adjustments that are in place in the current build pieces will still tend to act as if they’re a little lower than they should be when reaching the top of the screen, having the player need to compensate a small amount and move a piece just that little bit higher for pieces to place far up on the solid shadow. If I had more time for this project I’d like to work on that a bit more, but as it is it’s much more workable than in any other previous build and almost unnoticeable (although now that I've pointed it out I'm sure anyone reading will pick up on it instantly).

UI design has always been something I've felt that I could be a lot better at, and Kintsukuroi definitely had me pushing myself to make something that looked finished. Above is a look at my early concepts for the title, level select and about screens. Initially they were monochrome to work from further but I grew to like this look as a final design. Also included above are more detailed concepts of the title screen, level select, gameplay and screen progression.

While the final game resembles these designs quite closely there were several changes that I had suggested to me that would be made, and all of them for the better I feel. The title screen initially would have a bar that would need to be tapped to cause the level screen to scroll in, but ultimately this bar just took up space where it didn't need to. The level select was far too cluttered with buttons both below and above the levels themselves. Times would only be displayed for the currently selected level too, which added a lot of unnecessary touches to quickly look at top times - now they’re all listed at the same time. Rather than tapping a level and then tapping a play button, level select is performed by simply tapping the level now, removing another unnecessary button. Gameplay sees a much cleaner design now with the absence of solid bars and a soft gradient between floor and sky. Piece count is no longer displayed since it wasn't something that needed to be readily known and the level number is instead displayed before a level begins. The screen progression itself is much simpler too. I had to remember what I first decided - that only what was absolutely necessary needed to be displayed in that moment. Everything else would be a distraction.

The designing and modelling of the vessels themselves was the part of Kintsukuroi’s development that I enjoyed the most! I wanted every piece to have a distinct silhouette so levels could be told apart just at a glance without having to see it completed beforehand. I felt that different shapes would also lead to a more varied gameplay experience too. See below for some concept art I made before modelling of the axolotl, bird, cat, heron and phoenix vessels.

Before making the final vessels I made several quick test pieces to experiment with first. These experimental pieces taught me quite a lot about what was needed in a final vessel’s design to make it suitable for gameplay, namely:

  • Simple patterns would help players orient their pieces to their correct rotations more easily

  • Differences between the top and bottom of each vessel were important in giving players an approximation of where a piece would go at first glance and help build up a picture of the completed piece

  • Areas of solid colour should be avoided and broken up if possible to avoid shards that would look similar

  • Even subtle variations in shape would help greatly, avoid flat planes

  • A sharp contrast between the outside and inside of hollow vessels worked best

  • Similarly a strong contrast between the vessel’s main palette and the colour used for the lacquer looked the most appealing

Below are some shots of completed vessels used in game of the previously linked concept art, again featuring the axolotl, bird, cat, heron and phoenix vessels.

The axolotl piece has two sphere shapes but of differing sizes and colour to help players tell the them apart. The bodies of the axolotls helps to do this even further, and the simple diamond pattern is in different positions along each of the sphere shapes - one closer to the banded pattern and the other further away.

You can see that the bird pot has a simple diamond pattern towards the top with a sharp difference between the dark lid and the much lighter colouring on the bottom, as well as a tapering rounded shape and handles. The strips of colour circling the pot help break up any large areas of solid colour, and the bird itself acts as a very easy to place piece that would hint at the piece below it with the connecting yellow handle base, which would tell the player that the top was dark, and so on and so forth.

The cat has perhaps the most distinctive shape out of all the vessels in the game and is broken up into easy to place shards, being a level that was planned for early on in the game. The bright red colour helps connect many pieces together initially, and I made sure to include a shard that was made up of the cat’s face in its entirety as I felt this would be quite a fun piece to place and to see things come together (this is something I did with a few vessels - to make sure there were a few fun pieces that included recognisable whole things, like the bird in the previously described vessel or the dragon head at the very end of the game).

The heron vessel has a very strong difference in shape between the base and the long neck but would otherwise be symmetrical along the horizontal axis (ignoring the heron). A split in colour on each side helped to break this up and better guide players to where pieces needed to go. The heron being fully on one side helps push the asymmetry too. From the experimental pieces I quickly learnt that complete symmetry increased difficulty.

The phoenix vessel is maybe one of my favourites in terms of ceramic design (though I doubt it would actually pour things very well with the neck the shape that it is). This piece is cut very sharply between a top, middle and bottom with the yellow hues for the head, the sharp red colouring for the wings and then the blue wave like pattern clearly differentiating the bottom. It has some of the most varied colours of the vessels but I feel they work together quite well.

The art of kintsukuroi itself is Japanese in origin and I wanted to make sure that this was reflected in the game but not to a point where it felt gimmicky or forced. I wanted to stay respectful of a culture I myself am not in any way a part of and avoid any kind of appropriation. Each vessel design draws inspiration from Japanese art and culture while sticking to a colouring scheme that I feel is closer to my own personal style. Some, like the eye vessel, are more loosely tied to any strict Japanese origin whereas others like the boar and humanoid figure are much more so, with these two being based on Dogu - clay figures made in prehistoric Japan. Designing Kintsukuroi’s level vessels was a fantastic opportunity to learn more about Japanese ceramics and I very much enjoyed learning about an area of art I had previously never explored.

In keeping with the notion of gently reinforcing the Japanese origins, Kintsukuroi’s music includes traditional Japanese instruments throughout the tracks. Working with Clark Powell was great and he was very flexible in updating what were originally piano based tracks. He worked very well from brief descriptions I’d give - like how I wanted the opening to sound similar to an orchestra warming up, or how I wanted happier, more positive sounding variants of the gameplay tracks that would play briefly for when a piece was completed. We were both very on the same wavelength for the tracks too which I feel really comes through! The game and its music definitely feel like parts of a whole to me.

Overall I'm very happy with Kintsukuroi as a nice and calming little game! I’d like to think I stuck to my central theme of relaxation quite well and it’s easily the most solid thing I've coded. It features designs I’m proud of and a gameplay standard I haven’t personally met before. It was honestly a monumental experience for me personally - a real milestone. The most surprising thing for me was how little of a change was needed to my development process to switch from making things in Unity for PC to Android, having never previously made anything for Android before. I thought there’d be a lot more work involved in that end of things but there really wasn't! It has me very excited to develop for Android more in the future.