Last time I talked about feedback from playtests. But that is actually putting the cart before the horse a bit. Because obviously before getting feedback you have to have a playtest. And before you have a playtest you need a test build. And… well let’s pop the stack and start at the beginning.
First step in getting my game ready for playtesting was to remove the development objects. In short I have an object that keeps track of a bunch of data between scenes. This object gets created when you start the game, never unloading. But when testing my game during development I don’t want to navigate all the way through my game just to test a minor fix. So during development I just put that data holder object in all the scenes. There are a few times I have to remove it in order to test some things, but they are few and far between.
The next step was shoring up the “in progress” items. This time it was the settings tab in the main menu. I ended up removing a part of settings that I had thought might be a good idea, but latter developments had rendered unneeded/clunky/over complicated. This left me with a slap dash UI design, but everything is functional so good enough for testing.
After a few more last minute fixes/finishes It was time to make a build. This part was easily the most straight forward. Just click the button labeled “Build Game”, give it a name, and wait for it to finish. Installing it on the target platform was a little more involved, but only marginally so.
The biggest hiccup I encountered was attempting to install the game on one of the target devices. It was an older phone no longer in active use (no sim card) and just getting it set up was a bit of an ordeal. But then the real problem showed up. It just refused to install the game. So, bad news: the main device I was going to let people test the game on won’t work. Good news: I could install it on my main phone, and might be able to find another device to use.
There is something I have always “known” but only recently began to truly appreciate. That is: when making a game get feedback from an outside source whenever practical. The reason for this is simple: as the creator, you aren’t going to see things as clearly as someone outside of the project. And I had always “known” that, but only in my last project have I really lived it.
I have frequently been trying to get playtest feedback from people. But it was always in limited amounts. And the feedback I got didn’t have much in the way of substantive changes to make to the overall experience. But just recently I got my game in front of a slightly larger group than normal and got some feedback that made lots of sense. Things that I hadn’t been thinking about, but when I gave them 3 seconds of thought made perfect sense.
The feedback you get from people outside your project helps give you a new perspective. In my case I am applying the feedback I got pretty directly. But in many cases feedback can serve to force you to ask a critical question: Why did they have that response? By reflecting upon that question you can find issues that you have been blinded to by your familiarity with the project. These problems might not even have any direct relation to the thing the feedback was about. But changes elsewhere could have cascading effects that eventually change what was complained about.
Overall, feedback isn’t about “You need to change thing X because Y” but about seeing things from a new perspective. That way you can pull back and take in the whole thing, rather than getting lost in the weeds.
So I have ads working in my game. But where do I put them? You might think this a simple thing. Until you yourself actually start designing something that needs ads and have to find the space and time for them. So lets go through the three types of ads and discuss where I might put them.
Firstly we have the most simple of the ad types: Banner Ads. They are very simple, a bar at the bottom of the screen displaying an ad. Somewhat like a billboard on the side of the road, but in a game. The simplicity of this ad spills over into the simplicity of where I will use it. Banner ads will appear in the game modes, but not on the main menu. Putting them on the main menu feels tacky somehow, but just passively having them sit at the bottom of the screen during play feels fine. Next up is an ad type that took some thought.
The next type of ads are called interstitial ads. These ads are full screen video style ads that can be skipped, usually after X seconds, much like ads you see at the start of YouTube videos. These are a bit harder to figure out as they need a real trigger to play, and I don’t really want them getting in the way of the play. What I settled on is having them play when you go from a game mode back to the main menu. That way they don’t interrupt play (as the player was interrupting play to change things up anyway), don’t pop up an annoying amount of the time, and can still be skipped. And now for the annoying one.
The final ad type is rewarded ads. These ads are very much like interstitial ads with two big differences. Firstly, these ads can’t be skipped, they play to completion every time. Second is that, as the name suggests, after the ad plays the player is supposed to be rewarded with something. But the big question for me was always: what could I possibly reward them with?
For a while I just thought I wouldn’t use them. Not like they are required right? But then I figured out something I could “reward” the player with: the hint system. I haven’t figured out the specifics yet, but a way it may work is that you start a session and want to unlock hints. So you watch the ad and get hints unlocked. The real questions are: Does this unlock ads for all modes this session? Does it unlock X hints? Hints for X levels? I still need to figure this all out… and then program it.
One of the greatest strengths of my generation (and the following generations) is that, by and large, if we don’t know how to do something, we just look it up. The internet has put most skill sets a few searches and minutes or hours of research away. Don’t know how to format that file for your presentation? The internet can tell you. Don’t know how to make a resume? The internet has plenty of examples. Don’t know how to change the oil in your car? The internet has plenty of tutorial videos, probably even has one for your make and model.
So why do I bring this up? Because there are plenty of programming things that I have no idea how to do. And so I go look it up. And I usually find a way to do what I am trying to do. Or a way to do a similar thing that gets the job done. Along the way I usually find at least one thing I wasn’t looking for, I didn’t know, and could be very useful.
So, onto the point. I have been getting close to the finish of my game… and finding these last few steps the most annoying, mostly by virtue of going in blind. The step I am working on now is integrating adds into my game, so that I can hopefully make some money from this. But, as the title suggests, the first tutorial I found to do this was out of date. The tutorial was less than a year old, and at first it only looked like some cosmetic UI changes had been made in the process since the tutorial was made. But… once I got to the coding part of the process, everything started returning errors. That is when I knew something was wrong.
But As stated above, I just searched again. Quickly I learned that the tutorial I was using was for version 3 of the integration and the current version was 4.3. Understandably the process had changed significantly. But a new tutorial was quickly found, and the fundamentals were largely the same. It just used different tools to accomplish the same thing. Importantly the new version did allow for more control. However even the old tutorial was not a waste of time. As I learned a useful bit of programming to do something I didn’t know how to do (but which I knew must be possible). And, as with the old tutorial, the new also taught me something I didn’t know. But more importantly this new tutorial explained why it would be useful. After all, simply knowing something is no where near as useful as understanding it.