|I made this simple sunrise while playing with the idea of showing a mountain-summit scene in Inner-Tube Climber.|
tl;dr: I added some basic analytics, I gave up on implementing a leaderboard, and I thought through my project-management process a bit more.
What happened last week?
I started out last week thinking that I'd be implementing a leaderboard. I made a rough proof-of-concept, and designed all the details for a finished product. But I ultimately abandoned my leaderboard dreams once it became clear that there is no good way for me to implement it with the current state of Godot or without it taking me a month to do. If for some reason you're really curious about leaderboards, I wrote a whole extra post on my experiences with that.
*In a creepy voice* "I'm watching you..."
At the end of the week, I instead implemented some basic data-tracking and analytics.
I'm using Google Analytics for this, since it's free and provides an API through which I can later use to write custom queries to make charts and dashboards. Specifically, I'm using Google's Measurement Protocol to record data, and Google's Reporting API to query data.
Normal developers just use one of Google's convenient client libraries for recording Analytics events from their website or app. But, once again, there is no such library for Godot, so I've re-invented the wheel for this and implemented a library written in GDScript. Fortunately, it's a straightforward API to work with, so I'm relatively confident that what I've created doesn't have any huge bugs.
This should give me some valuable insights into how players use my game. I'm excited to see the data when it comes in!
Aren't analytics creepy? What about my privacy?!
Analytics are usually critical for developers to understand what's working and what isn't in their app—i.e, if you want an app to provide a good user experience, it needs to collect analytics.
I've tried to make sure that I'm not tracking any sort of sensitive information that should be kept private. But I think I'm not legally allowed to describe my data collection as "anonymous" or involving "no personally-identifiable information" (PII). In particular, I think GDPR considers Google Analytics data to be PII.
Also, I'm planning to record app runtime logs if the app ever crashes, so I'll need to let the user know about that.
I've been spending a fair amount of time trying to figure out my systems for time management, organizing ideas, prioritizing tasks, and in general making sure that I make the most of my sabbatical!
My goal for this sabbatical is to improve my game-development and art-creation skills. I'm mostly planning to accomplish that by doing lots of little projects, rather than any large-scale projects. But I also need to make sure that each of these projects gives me enough practice with the particular skills that I need to develop.
Back in October, I had imagined Inner-Tube Climber eventually including some levels that showed the climber leaving the crevasse and scaling a mountain side until they reached the summit. I figured this would enable some more challenging levels without the constant walls on either side (which are a bit like bumpers in a bowling alley). Maybe I could then even create a in-the-clouds type of level. And maybe that could transition through a big cloud bank, until the player re-appeared at the bottom of the crevasse to start the climb all over again and let the level loop infinitely. This would require implementing a lot of new art and level-configuration logic.
However, these extra level types are unnecessary and not worth the time! The gameplay can be the same without them, and they make the theme of the game somewhat confusing. I do need a lot more practice creating level art, but I can get that same practice by instead starting on another game.
Fortunately, "project manager Jackie" (aka, my partner) was on hand to tell me that I'm doing the wrong thing! It can be really hard to realize that something isn't a priority and cut scope, especially after you've already made plans around it... I took some convincing, but Jackie's totally right. Of course. Keep it simple—let’s cut scope and just ship it with the one style of level!
I did spend a little time on Thursday thinking about alternate art for these other potential level styles, and came up with the following simple mocks. (But also, I think I ought to include some new art each week in these blog posts!)
|A repeating tile texture for an ice wall look.|
|A mockup of what that ice-wall tile would look like in a level.|
|A happy little cloud. I think Bob Ross would be proud.|
My goal is to be done with Inner-Tube Climber by the end of the month! I'm going to participate in Global Game Jam with some friends, and I want to start something new after that.
For this week, here's what's next on my list:
- Implement some simple score recording in local app state, so that I can start getting base lines for how difficult levels are.
- I can then use this to give some indication to the player about how well they did on a level.
- I think I might give some sort of simple bronze, silver, gold rating indicators.
- Create a screen asking the player to rate the app, and show this after beating the third level.
- Create a new level-select screen that shows past scores for each level, and whether each level has been unlocked yet.
- Create a game over screen.