The problem with making games for Mobiles..
Star Nomad 2 was released in 2016 on Google Play & iOS. It was updated often during the first year, fixing bugs, adding features players requested. I’ve changed the UI, the flight systems, the AI, etc, to improve it based on feedback where possible.
The last major update was in 2019. Google Android 9 & 10 in particular, broke code back compatibility, the game would crash, a pretty major flaw.
They call it “depreciated”, where code that functioned fine, are discarded or altered (justified by “improved security”) so that new Android or iOS versions are rolled out without back-compatibility maintenance. Less work for Google & Apple software engineers.
But it results in more work for independent software developers out there, small fry like myself tend to get steamrolled since we lack the income from our small apps or games to pour many hours to re-writing code, doing the work that these multi-billion corporations force upon us so they can save some work for their employees.
There’s another theory that many may have heard, “planned obsolescence” of hardware, through software updates. Your old device CPU, GPU & RAM are quite capable, but it just slows down over time as you update the software. It’s not your imagination. It’s bloatware, at the OS level.
In many cases (I’ve done the research), game studios that update their games using the latest SDK (Software Dev Kit) and API, find that their game suddenly no longer works on older hardware or OS versions. When it works, there could be other game breaking bugs, so the developers have to basically discard gamers who have not upgraded to recent hardware.
That was what happened to Star Nomad 2 in 2019. If I wanted to make the game run well on newer Android 9+, I had to use the newer SDK, and it broke any devices running Android 7 or below. How I resolved that, was by releasing a newer build called Star Nomad 2 Oreo+ (Android 8’s name is Oreo), and it co-existed alongside the build for Android 7 & lower. I encouraged players who have newer devices to email me, and I would send them a key to get the Oreo+ version for free, and directed new potential buyers to the new version in the app store description. It worked OK, though time consuming for me and annoying for players.
These reckless code changes at the OS & SDK level is why I was so hesitant to even put out another update..
But I get frequent emails from players telling me how much they enjoy playing SN2, sometimes they have great feedback, or spot a rare bug. That’s why I’ve been working for almost a month in my off-time on this big SN2 update, for 2022.07. It’s my way of giving back to players who’ve supported me.
As expected, to update the game, I am forced to use an ever newer SDK & API. And my fears were proven true, it broke compatibility with major functions. Fullscreen, audio, and worse of all, data-read & write features for save games. This last week I’ve been troubleshooting these issues, and managed to fix the adaptive fullscreen & audio compatibility issues. But the file-save is nuked, the LocalStorage API from the newer versions refuses to play nice.
I don’t want to repeat the 2019 situation with yet another new game release and emailing keys to players. Besides the hassle for everyone involved, it also makes the new SN2 build non-visible on the store due to lack of installs, reviews, links over time etc. What are my options?
- Update SN2 Oreo+ anyway with the new build. Save games get wiped, a fresh start.
- Load the new build as an Open Beta test of SN2 Oreo+, so players can opt in to get it.
- Waste more time troubleshooting with the API..
- Get better at being a dev, no problem is too hard to solve!
I much rather spend my off-time on working on Star Nomad 3 (currently called Project Orion internally).
Option 1 is terrible, I would feel cheated if a game studio release an update and it nuked my save, the loss could be many hours of progress. I’m pretty casual, so if I feel cheated, I can imagine many other players would be down right angry.
Option 3 is also bad. Because I don’t think its going to work, wasting more hours is not helpful.
Clearly option 4 is preferable, but I’m just not that intelligent.
Option 2 seems like the best of the bad situation. Players can opt into the beta update when they want to, such as new players, or current ones who don’t mind a new start.
In summary, developing for mobiles is high maintenance compared to PC, where you can at least be confident that your game 5-10 years ago still run fine on modern hardware. Mobile apps need constant updates to keep up with Google & Apple shenanigans. Sometimes these updates will force hard choices. But that’s part of the gamedev life.. it was never meant to be easy.