February 28, 2020

Guide of the Butterfly: A small game of small parts

A deep dive into Guide of the Butterfly

Guide of the Butterfly: A small game of small parts

Introduction

It's been a while, hasn't it?

It's been 2 months since I made and release Guide of the Butterfly, a walking-sim geared towards introspection. It's not my most downloaded, viewed or anything like that, but it's one of my games and experiences that I'm most proud of.

The game itself is only about 5 or 10 minutes of playtime and can be a play and forget kind of thing. You play the role of a butterfly, guiding it through a weird world scape, towards what can only be called, the end.

In this, we'll be going through my thoughts on the different sub-sections of this project and how they stand up now, compared to when I first released it.

Gameplay

I feel like there's not much I can say that's changed on the gameplay side since the original concept was geared towards being an experience rather than a fully-fledged game.

Could there have been some kind of gameplay mechanic included? Yes.

But, I feel having something like that would have detracted from the core of the experience itself, especially since it was being built to invoke introspection. Through-out the development of this project, I considered putting in some kind of mechanic for playability.

Looking back at it now, just being able to guide a butterfly was enough.

Technicality

For myself, this was probably the least technical project I've done in a long time. Especially compared to Best Garden and Dungeons of Loot, which have a fair bit more technicality revolving around them in their mechanics etc.

I saw this project as a chance to work in new things to my workflow and try out new features of the Unity Engine, which worked out well.

The two features I decided to try was the new Input System and Shader Graph. Both of which took a while to wrap my head around for different reasons.

The new Input System forced me to change how I did my input, where before I'd check by calling a function in the void Update() method and gather the input state I needed.

Now I had separate functions for certain button presses like Action and Cancel, which worked fine... Until I needed to work out how to move the playable character themselves which required an axis because of controller support.

The way I worked around this turned out to be relatively easy, firstly I'd add a way to add an InputActionReference

[SerializeField] private InputActionReference _moveAction;

This holds the reference to the input action that would be used to move the character, next I added a private boolean to hold if we would be moving or not named _isMoving.

After that, in the void Awake() method I added the following:

_moveAction.action.started += ctx => { _isMoving = true; };
_moveAction.action.canceled + = ctx => { _isMoving=false; };

The started event will fire as soon as a change away from the default state, in this case, it's the thumbstick on a controller moving outside of the centre.

The cancel event is called as soon as the thumbstick moves back to and stays in the default position, which makes for a good way to detect if we're moving or not.

With both of them set up in the void Update() method I added the following code:

if (_isMoving)	 
{	 
    Move(_moveAction.action.ReadValue<Vector2>());	 
}

The Move function in this is a lerp between the current position and a new one based on the value provided by the input reference.

Visuals

This was something I wasn't so certain on when I took up this project. But honestly, making good visuals and having them up front has never been a thing I've been good at.

The initial project was going to look wildly different and take on a similar style as another project of mine called The Butterfly Guide, which had a lot more vibrant colours and a completely different feel.

Part of the first area for 'The Butterfly Guide'

Where Butterfly Guide felt a lot more childlike, I wanted Guide of the Butterfly to have a slightly darker and more grungy tone. Which is how I landed on this:

Promo image for 'Guide of the Butterfly'

I feel that having the post-processing stack of Grain, Lens Distortion, Bloom and Vignette helped give it that kind of feeling.

Having everything in greyscale and relatively dark played a big part as well since it made things a tad more of a horror vibe.

Outro

This has gotten a tad long hasn't it? Well luckily that's it for this post I hope you've enjoyed this dive into one of my projects!

You can download Guide of the Butterfly over on itch.io for free or if you want to support me you can buy one of my other games, also on my itch.io page.

Have a good one everyone!