In the previous sprint report, I wrote about spending time figuring out how to build SDL2 and combine it with my CMake-generated iOS Xcode project for Toy Factory Fixer successfully, as well as configuring that Xcode project to automatically know where to find my app icons, which made me a bit giddy when I got it working.
I continued with the iOS work in the next sprint.
Sprint 26: Make publishable
Planned and Completed:
- Create iOS icons
- Defect: game seems unresponsive on main menu screen (Android)
- Defect: game plays in portrait mode instead of landscape (Android)
I once again didn’t spend as much time as I would have liked on game development, but then again, I took my first true day off for the first time in what feels like years. Normally my days off from the day job tend to become opportunities to spend more time on game development, but my family took a trip out of town, and when we came back, the kids went to a day camp, and so my wife and I spent the day together. Due to a variety of things going on, I didn’t do any game development until halfway through the week.
I created a script to take a 1024×1024 PNG and convert it into all of the image sizes I would need for iOS app icons.
I learned a few things from this experience that I can take to my future projects. One, when it comes to generating those icons, I need to start with a higher resolution image. As it is, I had to actually generate a larger icon from a smaller one, and so it looks more pixelated than I would have liked.
And that leads to two: I should probably use vector graphics to create art initially so that I don’t need to worry about issues when I scale the image for a different purpose later. Between icons, marketing materials, and even in-game art, vector graphics would provide more versatility.
Anyway, my game now has icons for iOS. I did have a scare in which I deployed the app to my iPhone, then when I used the app switcher, I saw the icon was missing. What gives? I double-checked, and I wasn’t missing any icons as far as I could see. And I didn’t see how to specify this specific icon in the app switcher (which comes up when you hit the Home button twice quickly).
It turns out that iOS caches things…and it had my app’s old icon, which was no icon.
So once I restarted my phone, everything worked fine. Hopefully this information helps someone in the future.
So now that the iOS port seems to be working properly, I returned my attention to Android issues. If you recall, Android 11 seemed to have broken things like touch input and respecting the fact that my game should run in landscape mode instead of portrait.
And since I am using an older version of SDL2, I needed to update to 2.0.14, which actually requires me to update from the old ant-based build to the gradle-based build.
The good news is that SDL2 comes with an android-project directory, just as before, and the documentation for it is a lot better than the iOS docs. I was able to compare what I already had in my project directory to what they specify, see that most of the compiling parts are identical, and basically move everything into a subdirectory that didn’t exist before.
Then, I needed to make sure that the Android.mk file specified the correct STL, and everything built and linked correctly.
So far, so good, but next is the part where I need to change from using ant to gradle, and the docs get a bit opinionated about how to create a debug build or how to deploy directly to your hardware. Literally, all it says is:
Run ‘./gradlew installDebug’ or ‘./gradlew installRelease’ in the project directory. It will build and install your .apk on any connected Android device
Normally, I build my code, then create an APK package, then sign it, and that signed APK gets uploaded to the Google Play store. If I wanted to test it on my device, I would create a debug build and deploy it using adb to install.
So I need to dig a bit more to see if there is a gradle way to do what I already did before, which is build the APK as a separate step from doing something with the APK like installing it on a device or signing it.
So far, when I ran gradlew as above, it downloaded gradle.
Anyway, after it downloaded gradle, it failed, so I still need to figure out what changes I need to make to get this build working. I’m hoping it won’t be much longer before I can get an Android build working and deployed to my testers to verify whether or not it works on Android 11.
Meanwhile, I’ve also been trying to dig back into the design of workers, toys, and the level layout in the game. I want to make sure that the player doesn’t feel bored by obvious decisions to make, whether by giving them the ability to hire more interesting and varied workers or throwing different kinds of toys or movement patterns in the game. I’ve got some ideas, and some might be terrible, but some made me laugh as I wrote them down, so hopefully something good can be shared soon.
Thanks for reading!
Want to learn when I release updates to Toytles: Leaf Raking or about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and get the 24-page, full color PDF of the Toytles: Leaf Raking Player’s Guide for free!