Midcore Mobile: Targeting High End iPhones

Diary of an Indie Game Developer: Chapter 18

Jason Tuttle
3 min readMay 17, 2018

As I’ve mentioned before, I’m building a midcore mobile game. As a result, I’m only targeting high end mobile phones. While I’d certainly love it if my game would run well on every phone out there, realistically, that’s not possible.

The big question then is: Where do you draw the line? What are the minimum system requirements for the game? When you try to answer that question, things get kinda complicated.

Today, we’re only going to discuss one side of the equation: iOS. What is the minimum spec iPhone my game will run on? What’s my minimum target? To answer that question, first you have to take a look at how the App Store works and what you can and cannot do to prevent people with old iPhones from downloading your game.

Turns out Apple doesn’t make this very easy. You can’t just make your game require an iPhone X. Apple won’t let you. So, what can you do? Well, as far as I can tell, there are really only 2 things you can do to prevent people with old iPhones from trying to play your game.

A few years ago Apple started to move away from using the cross-platform OpenGL graphics API in their products. They decided to do what Microsoft did with DirectX: Write their own proprietary graphics API. Apple’s API is called Metal. It was first introduced on iPhones, and then later Apple started moving the Mac to Metal, as well.

What does this have to do with preventing people with old iPhones from downloading your game? Apple will allow you to specify which graphics API or APIs your game requires. Knowing this, you can make your game incompatible with any iPhone that doesn’t support Metal. The first iPhone to ship with Metal support was the iPhone 5s which was introduced in 2013. Requiring Metal then, means that anyone with an older iPhone than the 5s can’t download your game. Cool!

That said, no one is going to want to support all iPhones going back to the 5s in perpetuity. Even today, the 5s is hardly state of the art. So what else can you do?

You can specify that a minimum version of iOS is required to run the game. The current version is iOS 11, and Apple will allow you to specify iOS 11 as a requirement. If you do so, Apple will prevent anyone not running iOS 11 from downloading your game from the App Store.

How does that help you here? Well, from time to time, as Apple introduces new versions of iOS, they drop support for older iPhones. Today, the iPhone 5s is the oldest iPhone capable of running iOS 11. This fall iOS 12 will undoubtedly be introduced, and it will be interesting to see if the 5s drops off the supported list. Apple doesn’t drop support for the oldest model every year though, so we’ll just have to see what happens when iOS 12 is introduced.

That’s pretty much it. From the research I’ve done, those are the only 2 ways you can prevent people with old iPhones from downloading your game. Knowing that, I’m currently testing my game on an iPhone 5s and an iPhone X, both ends of the power/performance spectrum.

That said, I’d reeeeeeeeeeeely like it if I didn’t have to support the 5s. I have an iPhone 6 and a 6s for testing as well, and setting one of them as the minimum spec would give me more CPU, GPU, and RAM to work with. My game won’t be done and ready to ship for quite a while, so I’m really hoping that Apple drops support for the iPhone 5s with iOS 12 and the iPhone 6 with iOS 13. In the meantime though, I’m testing on all 4 of them:

Left to right: 5s, 6, 6s, X

P.S. If anyone knows of any other way to prevent people with old iPhones from being able to download a game, please let me know in the comments! Thanks!!

--

--

Jason Tuttle

Indie Game Developer. Formerly, Associate Environment Artist at Santa Monica Studio working on God of War. In a previous life, I was the IT guy at TED.