882 words
~4min read

Planned App-solescence

February 27th 2024
1K views

Today is both a bad and good day. Bad because I finally have to come to terms with the game I spent four years making is no longer available on the App Store or the Google Play Store which effectively means you can’t run it anymore. The good part is that it’s given me the excuse to open source Macrocosm as well as my previous game project Solaria Tactics. More on that at the end.

You might have heard that the duopoly running the app stores haven’t been playing so nice lately. But there’s another less talked about way they’re also forcing small developers out and keeping both big and small devs grinding on the treadmill: the forced SDK upgrades and utter disregard for backwards compatibility.

Like clockwork every year (or more) the Xcode and Android API minimum versions get bumped up as a requirement for submitting to the app stores. This may not be as big of a deal if you’re just developing for iOS or Android in their preferred languages and are in control of all your dependencies and the versions they support (harder and hard these days). But if you’re working on a cross platform app or using Unity to build a game this can easily spell game over just from the maintenance burden.

Here’s my specific example. Macrocosm was built with Unity 2019.4 which builds with Xcode 13.2.1. These both are now deprecated

  • Unity deprecated versions
  • Unity deprecated xcode versions

Fixing this requires upgrading Unity versions, which is just way too big of a pain for it to be worth it. Going up one major version usually entails several weeks chasing down build issues, new Unity bugs, upgrading dependent packages, and finding visual artifacts that weren’t previously there. Going up 4 major versions sounds like a full time job for 4 months which I’m not going to do, even if made financial sense to keep paying the Apple tax. My app is just too small.

Similarly on the Google side, the app got removed for some change in developer program policies where it seems like all of that specific version of Unity is no longer compliant all of a sudden?

  • Google Play Compliance Notice
  • Removed from Google Play

I don’t really know to be honest since I’m over dealing with all this app store red tape.

This problem of forced upgrades isn’t just a small dev problem though, it directly affects what software you can run. I recently pulled my old iPad Mini 2 (circa 2013) out of the drawer with the thought to stick it to the fridge with magnets and have a dedicated kitchen device to show the weather, look at our shared calendar, and view recipes while cooking. Maybe I shouldn’t have been surprised, but just getting a weather app installed was a struggle. You can’t install 13 of the top 15 weather apps. iOS 12 is the last OS supported on this device and all these apps have been forced in one way or another to upgrade their minimum requirements, and there’s no way to get previous versions of these apps.

  • Requires iOS 13
  • Requires iOS 14
  • Requires iOS 15
  • Requires iOS 16

You’re no longer allowed to run software that once ran on this exact hardware. Let that sink in a bit. Somewhere in the ether there was software that worked perfectly on the device that has now been banished to never run again.

Ok, maybe that’s a bit dramatic way of putting it, but think about this another way. What if the building codes were updated once a year that applied to every structure that’s ever been built. Don’t have the time or means to update it? The big mean building inspectors come by and demolish it. Oh sorry sir, your heating system is out of date? It takes too much time to fix? Sorry. The bulldozers will be here tomorrow.

What kind of a world would that be without any buildings older than 10 years old?

As an industry, WE all need to start thinking about a future where we’re not just constantly rebuilding. Where a problem can be solved once and considered done so we can move on to the next one. Isn’t that the promise of software? That we don’t need to repeat ourselves? I know there are a hundred reasons why this is hard, but at the same time we can’t become complacent either.

On the brighter side of things#

Because of all this I’d much rather have the code I spent so much time on be out there in the world hopefully helping out someone, as a learning resource, or even just as a portfolio piece, rather than sitting locked up in the corner of a couple hard drives.

So without further ado, here’s the links to Macrocosm:

https://github.com/dshook/Macrocosm

and Solaria Tactics (which was originally named Centauri Tactics)

https://github.com/dshook/centauri-tac

There’s some really cool and interesting code in there that I’m proud of. I tried to link a bunch of them in the README’s, but to save you a click, check out the Creature Modifier System, Setting spline points for overlapping rivers and roads, Generating a galaxy, Graph Pathfinding traveling salesman style, How a custom DSL for card actions is evaluated, and How complicated attacking can be.

Hope you enjoy!

Want the inside scoop?

Sign up and be the first to see new posts

No spam, just the inside scoop and $10 off any photo print!