Baby steps - my first week of making a video game



On Monday, June third, development on the game started. We'll use Project Bird as a working title. Well, actually it picked up of where I left it some months ago. I decided to give myself a day take in the code again.

A seemingly obvious first step was to make some UML class diagrams. Turns out that generating those in Android is not so easy, so I ended up having to do them myself. Or I tried to anyway, for a little while, before just giving up on diagrams. I was filled with energy, and not about to throw it away in frustration.

So I did my intake instead by going around the app and making small adjustments. Having the jump feel a bit more realistic by adding some extra forward momentum, pushing the main character back to its original position after landing, introducing placeholder buttons, trying to fix framerate issues... And then came le moment suprême: doing a commit of my code. During the weekend, the missus helped me set up version control*, making it easier to sync up my desktop machine and Surface Pro.

Ah yes, perhaps some background overview is in order. I met my now wife when studying Applied Computer Sciences, from which we both graduated now some eleven years ago. Because of an internship that was all but stimulating, I decided to go for a master's in Japanology (Eastern Languages and Cultures - specialization Japan). The missus also continued studying and followed a more logical course with Graphical and Digital Media. Yes, that was another time lack of passion for what I was doing drove me towards trying something new.

I closed off Monday with a first and exciting visit to the accountant's office. No really, not because of the subject matter itself, but the visit started to make things become real, become official.

Tuesday started off with interruptions. We're renovating our house (a very long-term project), and we finally managed to secure the contractor to continue the work he started two years back. I had preferred to avoid the overlap, but oh well...

On the game side of things, I decided to begin working on animation. A prerequisite was figuring out the main character, so I tried breaking down the bird into its constituent parts. I studied some avian anatomy and poses.** Watching some videos I tried to deduce natural looking movement, translated into particular keyframes. The rest of the day was mostly spent drawing, and a short stop at the account's place.

Wednesday morning I looked some more for the cause of the framerate issues. I noticed they only occurred every few seconds. At the end of some research and using monitoring tools I traced it back to a memory issue. I thought I had dealt with those when still prototyping. Turns out that when you only have a few dozen megs of memory, you really want to avoid creating and destroying big objects. Garbage collection is something to be avoided while the game is running. I logged the bug and the probable solution.

I then returned to drawing out the final version of the main character of the game. Feeling like I needed some more insight into the skeletal structure and movement of the bird, I looked at some more how to's, slowly combining elements from the different sources into a working whole. In the afternoon came le deuxième moment suprême: putting the result of all that study work onto the computer screen***, though progress was slow. That was interrupted by a third visit to the accountant to get everything in order for the administrative side of starting this business. (It's good to live in walking distance to his office) Yes, it's a business too, I am hoping to make some money off the game, enough to be able to make these full time would be splendid, enough to take an extra day per week off to continue working on games a nice start.

Thursday started with placing the final, but not yet animated version of the character into the app. Sarah (the missus) had already pointed out the placeholder image didn't seem to stand out enough. So I gave the final version thicker lines to accentuate its edges and adjusted the colors to make them brighter. Once I was somewhat satisfied, I started working on my first non-placeholder animation. It was the lead's default run cycle. I did a rough sketch on paper and counted twelve frames for the cycle. I divided the bird into its torso and head, tail and wings, and legs. The resulting images are each a combination of one image out of each group. I did need to pen it out in a diagram since only the legs have twelve versions (copies of each other, but placed differently), the other two parts have only four, which luckily combined perfectly.

The diagram and dirty sketches, also my illegible handwriting.


The finished animation in a gif preview. It's a Eurasian Wren! (Or Winter Wren, depending on who you ask.)

Although it had taken me until half past eight to get the animation finished, I wanted to review my tools before calling it a day. So I stood back and looked at the project management software I was using and took up stock, cutting back on overhead.****

That evening I watched a video that got it all backward. It was from Extra Credits, a show about how to make games better, and what "better games" can mean. They thanked their audience for watching the series all these years. And there I was, thinking it was me who should thank them because watching their videos kept my fantasy going. I slowly (re)developed an itch that I could only scratch by developing a game. So thank you, Extra Credits, for all those years of hard work and giving us something to think about in our idle time.

Friday I keep as comic creation day, and only when I have time left I spend it on the game. I did have time left, but no energy, so no diary entry. Today is Saturday, I've used some time writing this entry, and I think I might dabble a bit in the code after this. Getting my app into the developer console for testing would be nice.



* We used tortoiseGIT (with git for windows), in combination with bitbucket. Seems to work fine so far.
** I looked at many resources, but one of the cartoons from seppo.net and the tutorial of Monika Zagrobelna (https://twitter.com/mzagrobelna) really helped a lot.
*** I use Manga Studio, an easy and affordable tool for making drawings. It's also my tool of the trade for the work I do at ComedyReflux.com. Since buying it, the name has changed to Clip Studio.
**** I had made a bittrix24 account but realized I wasn't using it. It's probably meant for bigger teams, but with this being a near solo project (the missus helps from time to time) I get enough mileage out of Trello, using a Kanban (看板) style board with "to do", "ongoing", "done", "backlog" and "on hold" lists. I have to thank my current supervisor Wim B for introducing me to the software a while back, and Sandro M for playing the role of intermediary. :-)


Reacties