LGBT Flags - Postmortem


Why?

I joined My First Game Jam Summer 2019 because I wanted to finish a game. I've been working on Jotsway Canyon on and off for literally years and wanted to prove to myself that I could finish something

So I had a look at what jams were running and suitably chose My First Game Jam to get the ball rolling. To my delight, the optional theme was "Pride" which just sealed the deal for me.

What To Make..?

I didn't take long deciding what I wanted to do once I noted down some objectives. They were:

  • Learn how to effectively drag and drop objects in Godot
  • Have a super, super small scope to guarantee game completion
  • Be LGBT+ themed

I quickly came up with the idea of matching colors to various queer flags. Being queer myself, I thought it'd be a good way to learn flags I wasn't familiar with.

Tweens Are Great


I just love bouncing tweens. Without them, the game felt a lot less interesting. And, well, there's not much going on so a little spice was very much necessary.

My go-to tween for making things pop (such as when a correct color is placed) is as follows:

# -- Make sure object is rendered in front of everything else
z_index = 1
# -- When the animation is complete, object doesn't have priority
tween.interpolate_deferred_callback(self, 0.4, "set_z_index", 0)
 
# -- Grow and bounce back down
# -- Linearly grow the object
tween.interpolate_property(self, "scale",
    Vector2(1, 1), Vector2(1.2, 1.2), 0.1,
    Tween.TRANS_LINEAR, Tween.EASE_IN, 0)
# -- Give appearance of slamming the object back down with a bounce tween
# -- Delay this by 0.1 seconds so it's played after the object has scaled up
tween.interpolate_property(self, "scale",
    Vector2(1.2, 1.2), Vector2(1, 1), 0.2,
    Tween.TRANS_BOUNCE, Tween.EASE_OUT, 0.1)
 
tween.start()

Otherwise, the color squares also use a bounce tween on their position when they appear. The tween is delayed depending on where they are in the array to add a nice effect.

Hurdles

The biggest time sink was putting the flags together but I managed to improve this by inheriting already built flags and simply changing the colors of them. For example, I just needed to make a flag with three parts and inherit that to make the Polysexual and Genderqueer flags.


Through playtesting, I soon learned that different flags had very similar colors and it was sometimes frustrating to get an incorrect answer. To help with this, I made sure similar colors had the same id. For example, the pinks in the Polysexual and the Bisexual flags will fit into either flag but will display the correct color on a correct placement.


I'm a little disappointed with the sound in the HTML5 version. As outlined in the in the Godot issue tracker, WebAssembly doesn't currently support multiple threads so sound is delayed to compensate. This makes the game feel a little less responsive than if you were to play it on another platform, but hopefully this'll be addressed in a future Godot update.

Scaling To All* Resolutions

I had the game set up well for desktops at a fixed 1000x500 pixels but I wanted it to run on phones too which meant I needed to do some tweaking. Control Nodes in Godot are handy for UI that scales well as their placement can be determined by containers and weights. But in my rush to throw things together, I didn't have the foresight to make sure everything scaled well.

Thankfully, it didn't take too long to sort out. I shoved everything into Containers apart from the Flag. For them, I simply had them update their position to the centre of the screen at all times because I didn't want to convert the mostly Node2D objects into Control Nodes.

With these changes and the option to keep_width selected was enough to have it run on most phones via HTML5 in addition to desktop browsers.

Feedback

Friends and family that have played it have offered decent feedback. It made a few rounds during Newcastle Pride weekend amongst friends. I've received a report that the game wouldn't play on an iPhone 6 but I can't replicate this as I don't have the device.

What I've Learned

Although it's not the prettiest of games, I can say that I achieved all the objectives outlined above which is great and I'm super happy with it!

More than anything, I've learned that I can complete a project which has been important in breaking through any creative blocks that I may have had. I'm looking forward to cracking on with some more projects.

Thanks for reading!

*Mostly All

Leave a comment

Log in with itch.io to leave a comment.