Chugging along - week two of making a video game

(I elaborate a bit more on boring technical details and also try to include interesting reference material at the bottom of the post.)

Week two, and I hadn't given up yet. Self-improvement, hurrah!

Dabbling about in the Google Play Console, I cursed as I realized that even for a test release, you need to configure a keystore* and sign your APK (android app file type). Last time I mucked about with those was a few years ago, and the experience was grueling.**

Monday I found out things had apparently changed for the better. You can now leave a lot of the hassle up to Google.*** I wanted to get an alpha build out, as a test of the release procedure itself. I had to fill out a questionnaire to determine target audience labels, even at the alpha stage. Those questions got pretty specific and sometimes weird ("do you glorify terrorism in your game?").

In the afternoon I managed to incorporate the new run animation into the app (see last week's update). It looked nice, once I figured out how to remove the white edge that had crept into the images.

Waking up on Tuesday, I realized it was time to get stressed out.****  I had working code, and I was about to do a big overhaul, hoping it would still do what it had been doing but better (without the memory leak mentioned last week). I first took notes, where I would move what blocks of code, and then I rushed in headlong.

In the afternoon the compile banged big and I ran the first test. I had no save points in between, so it was a teeth gritting moment. But luckily, no crescendo in this story. I had a screen with moving elements within fifteen minutes. After even animations were working again. That went better than expected.

Wednesday I got up after a late night. Even doing this independent thing, (slight) sleep deprivation still impacts my energy and concentration, I found out that day. I loaded up Android Studio and fixed the last loose ends from the rebuild the day before. Since I was sleepy, I reckoned it was better to do some light work, like remaking some background pieces.


Before redoing scenery

Making new scenery was hard at first since the pieces were no longer meant to serve as mere placeholders. The problem was that the elements were too defined, even without black outlines, and yet did not create enough atmosphere. When I switched over to water and oil paint brushes, I got much better results. Since the bird is (thicker) outlined than the scenery, it makes the player and other active game objects stand out more.

After redoing scenery (still subject to change, especially the buttons (as they are part of the GUI, not scenery)), I would like to point out that the worms have not yet been remade. :-)

On Thursday I took up stock of how content I felt overall, doing the project. One of the reasons I jumped headlong into this two-month gig of game development, was that I wasn't getting any intrinsic satisfaction from my regular 9 to 5 (a paycheck is not intrinsic :-)). So, was I getting more fulfillment from developing?

The good news is yes, I feel very good, and content, doing what I'm doing right now. I work long hours and am even spending time over the weekend, squeezing effort in where I can. My only rule so far is no work after 20 pm, so as to decompress before going to sleep. So far, I've only broken it a couple of times. XD

The bad news, well potentially, is that I still have no idea of what financial return I'll get out of this project. As emotionally fulfilling as it is, we still have years of down payments remaining for our house, so securing an income is a sine qua non. I am hoping to have something trickle out of it. Enough to take an extra day out from the 9 to 5 schedule would be nice.

Using the energy from the fulfillment realization, I decided it was time to tackle the next hurdle: animating the jump, which seemed more complicated than running at the offset.***** After not finishing in one day, I saw that hunch confirmed.

Friday was no help to the project. I did make a comic which I'm proud of, art-wise. I used my newly developed insights into oil and water brushes to do the backgrounds. It probably has too much text again though (just love me some text).

* A keystore is used for storing keys (duh), which you use for securing your files. With it, you make a certificate that lets the recipient determine whether it's really you who made the file. When you put your app online, you have to sign it with that certificate, using a private-public key pair. Work colleagues who are reading this are probably nodding, as we discussed the different security solutions a while back. Well, this time I'm implementing one myself. :-)

** For one, you had to save and secure the keystore yourself, making sure to have access to it for as long as you wanted to make updates to your software, which seems to be 25 years, in theory, the default lifetime for those certificates in APK context. Setting up the keystore itself was laborsome and not very self-explanatory.

*** Google now has the Google Play App Signing service. This way you can make an upload key, use that for uploading your APK to Google, and they will verify that key, remove the certificate and replace it with one they generated. The advantage is that if you were to lose your key, you can contact Google and then start using a new one, at least in theory. Also, using Android Studio, you no longer need DOS commands to set up your local key store. (How uncool of me to dislike those. :-P)

**** I had to better separate presentation and logic. It was a bit my own fault, not realizing the sample code I had started development from did not nicely keep the two isolated enough.

***** Two great helps were https://www.youtube.com/watch?v=c4uS7NL4tu8 and http://www.brendanbody.co.uk/flight_tutorial/ for references

Reacties