The idea for this week’s game had been festering in my head for a few weeks. I sketched it out one night when I was feeling particularly alone, and I hadn’t really been able to stop thinking about it. Over the past few years, I’ve been trying to think of a way to portray a very specific feeling, and this is the first time I’ve thought of a way to do so. I am not going to elaborate on the feeling, mostly because I’m curious to see how well it gets across.
In terms of gameplay, I wanted to create a game where you control a bird-like creature who flies and soars around catching pockets of wind and teaming up with other flocks of similar creatures. The feeling of flying and gliding were super important to the experience, and was definitely the aspect I wanted to focus on.
What went right
I captured the feeling of flying exactly how I envisioned it. With some simple sine waves and rotations, I was able to take the vision I had in my head and translate it to the creature’s movement. The ultimate product that I created, though it doesn’t contain as many of the features as I had hoped, does a decent job at getting the feeling across (from my perspective).
What went wrong
For how proud I am of how this game turned out, I have a lot to put in this section. I think that this is mostly caused by the fact that I was after a very specific experience here, which ultimately means that anything that varies from that can be see as a failure.
Firstly, let’s talk about my elusive bug. I encountered this bug on Sunday afternoon and it was the bane of my existence for a good portion of the day. The bug would appear only if playing and actual build or when playing in the editor ONLY if the scene view window/tab was closed. As you can see in the video, the bug caused the wings on the flocking birds to become disproportionate and would be “fixed” if you paused the game and moved the flock creature’s position in the editor (it would not be fixed if you moved its position by dragging the game object in the scene view). I struggled with it for a few hours and finally posted my issue to twitter curious to see if anyone else had a similar problem. Luckily, after a while a fellow by the name of Mike had a suggestion that ultimately fixed the problem. It turns out that the third party library that I was using for my sprites (which was ultimately overkill since I didn’t actually use any sprites) was storing and locking the rotations so that only rotating around the z-axis would work properly. This makes sense as a library dedicated towards 2D games, but as I was performing the wing movement in 3D space, everything went to hell. I’m still unsure why it would work fine if I had the scene window open, but by removing the third party library from the wings, everything finally worked (in terms of the wing flapping code).
Unfortunately, I wasted a lot of time chasing this bug and had to give up a few of the features I had planned because of it (well, that plus my poor time management this week). This means that I never got to put in the wind pockets for you to glide on and didn’t have a lot of time to craft the experience that I wanted. There was a very specific path of flying around that I wanted to gear the player towards, but I had to settle for a much more random environment.
What I learned
In terms of process, I learned that when prototyping or working on a short/quick project, I need to stop giving into the allure of solving a bug. The aforementioned bug didn’t actually affect anything about the gameplay – it merely made the wings look ridiculous. The creatures flew fine and flocked as desired – and I should have left it at that. As mentioned above, I had to cut a lot of features because I wasted hours wracking my brain over this silly little bug.
In addition to this, I had a long conversation with the wonderful Lisa about pacing moments and crafting the feel of a game. We examined the patterns of ‘moments’ in various games and discussed how my game ultimately lacked the pacing structure that it deserved. The ultimate experience that I had in my head did, in fact, contain this type of structure, but unfortunately, I was unable to dedicate the correct amount of time to it. However, the thing to note here is that even though I feel that I thought of a decently paced experience (even if not implemented), I didn’t actually know that I did. By going through some design exercises, I now understand more technically why I wanted to pace my game that way.
I’ve also learned (for about the 27th time now), that I NEED TO START MY GAMES EARLIER. To help actually fix this issue, I’m going to now aim to get my games ‘feature complete’ by Thursday – giving myself a few days to add the polish on.
Let’s see how that goes this wee-oh crap, it’s Tuesday already. . .