Bonsai - Post-Mortem

title.gif

As usual, I participated in this Ludum Dare with a couple of friends. Usually, it's a good excuse to spend a weekend together, whilst being creative and producing something we're proud of. For obvious reasons, it wasn't like that this time. So, how did our first all-remote Ludum Dare go? This post-mortem will go through my weekend, showing what went well (:slightsmile:) and what didn't (:slightfrown:).

:slight_frown: Staying up until 2am is harder on your own

Usually, we stay up until the theme is announced (2am UK time), and do an hour or so of brainstorming before bed. I find it's a really helpful exercise - as you're drifting off to sleep, ideas crystalise in your mind, and you wake up with something to get started on in the morning. Sadly, it didn't quite work out this time. Our artist (who usually pushes us towards the more interesting ideas) was slightly ill and couldn't stay up. Neither me nor our other team member (our very talented musician) were very enthused by the theme, and spent an hour fruitlessly brainstorming. Discord made this even harder. We ended up trudging to bed with a vague idea that neither of us were really committed to.

:slight_frown: Not having a concrete plan

initial.png

We reconvened in the morning, and fleshed out the idea slightly. A "frantic houseplant tending" game, based loosely (or exactly?) on Overcooked. However, we struggled to make it work out - what else do plants need other than watering? In the end, we decided that we wanted to make something calm, peaceful. A relaxing escape from how the world is currently. A little tree growing simulator. A way to express your creativity and be close to nature. For gameplay - you'd be given an outline to shape your tree into, and judged on how well it fit.

duck idea.png

duck_1.png

:slight_smile: Cellular Automata

I've been interested "evolving systems" since learning about Conway's Game of Life. I love seeing how complex movement and growth can be encoded in such simple rules. L-Systems and Cellular Automata are two common techniques to achieve this that I've experimented with in the past. I was excited to see how I could utilise these to make a "tree growing" system. Once I'd figured out how to draw pixels to a texture in Unity, I set about making an extendable base for the tree growth system.

gol.png

To make sure it was working, I implemented the Game of Life. Once that was set, I turned my attention to how trees grow. I tried a few things, but fiddling around with various variables was slow, and I couldn't get something I was happy with. A few failed experiments are below.

trees.png

:slight_smile: A team to bounce ideas off

Even though we were remote, our team was in constant communication through Discord. A quick voice chat revealed the solution to my tree growing woes - let the player grow the tree instead! Instead of trying to build a complicated, natural looking tree growing system, part of the gameplay would involve the player deciding where branches should grow.

treeing.png

This simplified my life considerably, and I got to work implementing the interaction.

I haven't done a solo LD for a while, but I think not being able to step back and consider the larger picture is often one of my weak spots. If I was working on my own, I think it would have been easy for me to work myself into a corner and get nowhere with an automatic tree growing system - and then still not have any gameplay to speak of. Working with a team keeps me in check, and ensures I can focus on what is actually important.

From here, a few things fell into place. The tool for adding branches was added, as well as the ability to cut off branches. (The GIFs below are from the finished game, but the interaction is the same)

grow2.gif chop.gif

:slight_frown: Cellular Automata

So branches were done - but branches do not make a tree. Leaves were next! As leaf growth was not going to be controlled by the player, I thought cellular automata would be perfect here!

BUSH2.GIF

It was not. At this point, I still had Game of Life and strict rules about how leaves/cells should grow in my head. I wanted the leaf growth to be simply defined, yet have rich, emergent properties. Plants seem to follow simple rules and instructions when they grow - maybe those rules could be codified? If they can, I don't know how - I do know how to make a bush though!

:slight_smile: Flexibility in roles

In the end, I gave up for the night. Our artist, who had spent the day making the player sprite and background, asked if he could take a look. He's a competent coder, and understanding that the game we were making probably didn't need that much more art allowed him to move onto this task. In the end, he ended up implementing all of the rest of the tree growing logic. I'm glad he did - not only do the trees grow leaves in the final game, they're actually interesting to look at!

progress.png

first tree.png

So what did I end up doing for the next two days? Partly fighting with Unity (the Pixel Perfect Camera is still magic to me, why can't Unity get VCS right, and no one can convince me the scale in Unity's UI system makes any sense), but mainly I was working on what could be grouped into the "interface", as well as polish.

:slight_smile: Interfaces

There are two core interfaces in the game - the bonsai itself, and the computer.

2.PNG

The Bonsai interface is pretty straightforward. The icons are clear and simple, and use the purple colouring that's consistent throughout the game. The "Finish" and "Back" buttons say what they mean, although the "Finish" button isn't completely clear: it scores your bonsai and then removes it. The one part that was tricky to get right (and I still don't think we have) is the translucent shape showing what shape you need to grow your bonsai into. Once the tree is grown into the shape, it becomes difficult to see exactly where to trim. One could say that it's part of the game and the artistic expression, that users should "feel" where the outline to the shape is - but in practice it just becomes a bit annoying.

computer.png

The computer went through a few redesigns. We felt from the start it was important to store the players highest scores on each shape to give them a sense of progression and achievement. Some of the shapes also start out LOCKED, and are released one at a time once the player finishes a bonsai. I think this gives the player a sense of forward motion in the game, and a small drive of curiosity to see what other shapes there are.

locked.png

The computer went through a fair through changes in UI. Some people may not think UI is a good thing to spend time on in Ludum Dare, but I think it's a great use of time. A good, cohesive UI makes a game feel so much more complete and polished, and goes a long way to make people think your game has more going on.

menus.gif

:slight_smile: Polish

computer.gif

A lot of the game we made is strictly unnecessary. The game opens on a player standing in a room, and you can click to make him move around and interact with things. Clicking on the computer opens the computer UI, which scales in and out. There are four places to put a bonsai, and you can choose where each tree goes.

transition.gif

When you click on a bonsai, the camera pans and zooms into the tree, and enters the bonsai UI. The icons fade in, and the player fades out (as he's standing in the way). None of this was necessary, and some of it took a fair amount of tweaking. However, I really think it takes the game from a slightly janky tree growing simulator, to a charming, complete little package.

To top it all off, my favourite part of the game is what happens when you press the "Finish" button. Your bonsai is graded on a percentage scale on how well it fits the shape given. The value ticks up, and does the classic "slow down to the final number". And then the game just stops for a few seconds, and lets you admire your creation. The shaded overlay of the shape is removed, and you get to see what you created.

end.gif

Again, the end screen went through a number of iterations before being finalised. At one point, the score took up the whole screen, until our artist pointed out the bonsai should be the focus, and the score should be secondary.

old-finish.png

Conclusion

Well, this post became a bit longer than I anticipated. I'm extremely happy if you've read this far. In a way I'm mainly writing this for myself - my first Ludum Dare was LD20, and each LD I participate in I find myself rereading my previous posts, and enjoying the memories. I'd encourage everyone to write up at least something - if only because I enjoy reading them!

If the post has piqued your interest to try the game, you can check it out here. There is also a timelapse of my development below!

https://www.youtube.com/watch?v=oKq72juHeec