I wanted to post a quick update about what I’m working on as the main software developer for ChoiceScript and Choice of Games.
(For those who aren’t aware, I’m the only software engineer working on the guts of ChoiceScript and our native apps for iOS, Android, and Steam, so what I’m working on is what we’re working on!)
The area of primary focus for me right now is an updated version of our iOS “omnibus” app. We maintain three “omnibus” apps for the three companies, Choice of Games, Hosted Games, and Heart’s Choice. Each omnibus app contains all of the games available for each company, in contrast to our apps for Steam, where each game exists in its own app. All of our apps are built from a shared code base.
Our iOS apps were originally implemented in Objective-C, but for a few years now, Apple has recommended writing all apps in their newest programming language, Swift. I’m working on a ground-up rewrite of our apps in Swift.
The primary purpose of this rewrite is to improve upon our accessibility features.
Today, our apps are already some of the most accessible game apps in the world. Players with visual impairments can use the built-in iOS screen reader, VoiceOver, to play any of the hundreds of games in our library, and players can play our games with a variety of input methods, including keyboard, mouse, and gamepad controller.
But there’s still more we can do, and Apple has offered us an opportunity to do more. In September, Apple will introduce a new Accessibility Nutrition Label, allowing apps to declare which accessibility features we support. Apple is asking us to check boxes for features that we do/don’t support, making promises to Apple and our players. The new version of the app will support every possible accessibility feature, ensuring that everyone can enjoy our games.
The rewrite is focused on two accessibility areas:
- Voice Control: Voice Control lets you control your phone by voice alone.
- Font Control: We already allow you to control the size of the text, but in the new version, you’ll be able to pick between a serif font, a sans-serif font, and the OpenDyslexic font, a font face designed for users with dyslexia.
We’re ensuring accessibilty by putting font color, size, and typeface in the user’s control
Also note that one of the requirements we’ll need to meet for the Accessibility Nutrition Label is to ensure that our games have reliably correct color contrast. Apple will be looking for issues like this:
For reasons like this, ChoiceScript has never allowed authors to choose arbitrary text colors for games you develop. Instead, each player is in control of their own fonts and font colors. That way, we can guarantee that the built-in color options will have excellent color contrast, and it allows us to confidently promise to Apple that our games can “Differentiate without Color Alone,” something that we can’t promise if text color is under the author’s control.
We’re also keeping the choice of font in the user’s control, ensuring that critical gameplay information is never conveyed via font choice, which would exclude users who enjoy our games using a screen reader.
Android users will benefit, too
Android users, you’re not getting left out! We’ve been rewriting our app in Swift working with members of the Swift Android Workgroup, allowing us to take our Swift code and run it, unchanged, on Android apps.
Improved offline reliability with cache control
Lastly, we’re adding a feature that will give players more control of how much disk space we use. Currently, when you start playing a game, we download games into an area called the “cache directory.” When your phone is low on space, your phone can decide to delete any file it wants from the cache directory, preventing you from playing our games offline.
In the new version, we’re storing the game that you played most recently in the “application support” directory, which will not be automatically cleaned up, and we’re adding an option to store all downloaded games in there, or, at your preference, just the games you’ve marked as your Favorites.
No release date yet, but stay tuned
The changes we have planned are still in the works; it’ll take quite a bit of time before they’ll be ready for beta testing, and a while after that before we’ll be ready to ship.
We don’t know how long it’ll take. I’m hoping that we’re shipping something this year, but “hoping” is a little different from “planning,” so we’ll just have to wait and see how long it takes to finish!


