Beyond a frustrating ChatGPT vibe coding incident, I've been showing my game "Character Limit" to others via my iPad, it's about to be available on Steam, and the App Store is next.
AppleInsider readers will be aware of my attempts to produce a game on my Mac. Using the assistance of ChatGPT, Xcode, and Unity, I made a fairly simple word game, initially as a learning exercise and an experiment with AI.
After a favorable initial development period, the game had reached a level where it was technically usable. It was basic in form, but it had reached a point where it had to become an actually-releasable game; otherwise, I would end up disappointing myself too much.
There was the realization that more work had to be done on Character Limit. It was time to take things more seriously.
A week-long "pause"
To make the game more viable as a commercial product, I had to start adding things beyond the core gameplay. There needed to be a lot of quality-of-life changes and bug fixes galore.
Some of these are simple, like adding looping video backgrounds and changing the fonts to ones I could commercially use, thanks to Google Fonts.
However, one major sticking point was adding the ability to pause the game. Many games allow players to pause progress, even those with timer-based gameplay, so it was something that needed to be addressed.
Working with ChatGPT, pausing the game and resuming straight away was surprisingly simple to implement. However, I also wanted players to be able to pause and close the game, and resume from the main menu at a later time.
Initially, this also seemed viable, with the proposal of recording and saving all of the variables of the paused game, then plugging those variables in when reloading the game and unpausing. This almost worked, but some variables just wouldn't play ball.
Cue a week of a routine of asking ChatGPT to look at the file in Xcode, work out what was wrong, add debug logs and changes, test, and repeat. Each time, I had to review and agree with what was being done, but by evening three of this, I was starting to despair at how wrong it was going.
On the seventh day, I snapped and worked with ChatGPT to eliminate any and all "resumption code" from the project. A few careful hours later, the game was working again, with pausing and some bugs, but without the Resume feature.
I realize the error was entirely mine. ChatGPT went down the route of adding logs and adding more changes, more guardrails to protect against references in other bits of code, and Project Manager Malcolm failed to step in and do it properly.
Instead of reading and agreeing to what ChatGPT said "should" fix it, I should have thought more critically and demanded more analysis of how the feature fundamentally functioned. It would've saved several evenings of non-progress.
It's a feature I will have to return to at some point before release. I don't look forward to it.
Xcode and iPads
With the decision to do things properly and to eventually start in-person testing, I ended up making one of two sizable payments for the project.
This first one was to throw $100 at Apple, so I could have a proper developer account. Sure, an App Store listing was a goal, but it was more to gain access to Testflight in the not-too-distant future.
Eventually, the game will have to be tested and shaken down by others, and that means getting the game in their hands. A Mac build was trivial to share, as some AppleInsider editorial members will know.
To do the same with an iPhone or iPad, I would have to use TestFlight.
The actual sign-up process for the Developer Account was straightforward. After signing up and forking over the cash, I had a bunch of welcome emails telling me to access the account and set things up for the App Store via App Store Connect.
This then led to me agreeing to a bunch of free and paid apps agreements, supplying information to comply with the Digital Services Act, and the U.S. Tax Questionnaire. This was somewhat intimidating and felt a bit like too much information to provide a foreign government, even compared to the UK's tax office equivalent.
Going through the process did allow me to do something in Xcode that I didn't get to do before: Create an actual app for an iPhone or iPad.
Compiling games in Unity creates out an executable for macOS, Windows, Android, and Linux. However, if you want to create an iOS app, it spits out an entire mass of code in the form of an Xcode project.
After some more time spent clicking on things that seemed right, and with some ChatGPT guidance, I had registered my iPad Pro and iPhone as developer devices. It gave the ability to install the game onto them.
I had been able to play it on my iPhone before, but this was Unity streaming the game to its companion app, so really it was still being played on the Mac, not the iPhone. But now, it was actually running natively on the devices.
This was a big moment, seeing the game running properly on my own personal hardware. Admittedly, the iPhone version had some UI issues that I had to fix, but the iPad one worked almost perfectly.
There was a problem with the iOS software keyboard popping up all the time, but that was fixed immediately on the iPad by attaching the Magic Keyboard. At least until I find a proper fix for it.
Another one for the "bad bug" whiteboard.
Initial local testing
Having the game living and breathing on my iPad meant I had something that I could actually show people and let them play. Sure, there were bugs and other issues caused by stripping Resume out of the game, but it was actually playable.
That evening, I travelled to Cardiff to meet game developers at a social evening, armed with the iPad and some paper for notes. I was expecting a session of tons of feedback and criticism, which could help show how much more work needs to be done.
Expecting brutal honesty, the session turned out to be much more pleasant. Possibly too pleasant for a British person to actually take.
Over three hours, other people sat down, intrigued by the game, tolerating my explanation of what to do, and then playing the game. Afterward, they commented about it overwhelmingly positively, with some feedback mixed in, too.
I know it was a kind audience of game developers who want to see others succeed, and so the pleasant overtones should be taken with a big pinch of salt. However, there were still indications of this being a potentially good game.
People who played came back for a second or third go. One person played for over 11 minutes in a sitting, while another asked when they could buy it for their phone.
Going home, I was somewhat dumbstruck by all of this. It was good feedback, and almost too much for me to handle on the train.
Maybe the game actually is decent after all. Even in its buggy state.
More work in the bit-mines
While the game is now prettier and very functional, there are still elements that I need to deal with before I can actually consider putting it on sale.
For a start, my to-do whiteboard still lists quite a few things to implement. Quality-of-life stuff for one, but also some big-ish features.
I have a daily mode to incorporate into the game. It will require me to understand and use both Apple's Game Center system and Steam for leaderboard systems.
There's also the whole implementation of Welsh, which will also serve as a means to add localization features to the game.
I will also have to spend time doing a lot more testing, beyond handing an iPad over to someone for a few minutes. That means actually getting the game up and running on TestFlight.
It also means somehow finding people who like games and can write Welsh words.
Gaining Steam
While the App Store is one goal, the other is a bit dearer to my heart.
I am very much a lifelong PC gamer. Sure, I work on a Mac and own consoles, but I have played on PCs for many years, and have a Steam archive to match.
If I wanted the game to reach PC game players as well, I have no choice but to set up something on Steam.
Going through Steamworks, Valve Software's store backend, is not a million miles away from Apple's one. You pay a fee, then go through a lengthy registration process, along with a questionnaire to see how much money should be held back to pay any U.S. taxes that are due, if any.
I would say that the level of agreements that need to be made and other data points is about the same level as the Apple Developer and App Store Connect process.
The big difference is in the fee, as you still have to pay a $100 fee to get into Steam. It is, however, treated differently.
The Apple Developer fee is annual and applies to the person, not the game. You could add multiple games to the App Store for one annual charge.
On Steam, that $100 fee is per game and is a one-time-only charge. However, you can get it refunded to you if you manage to make $1,000 in sales.
After boarding, I then had to submit a sales page to Steam to market the game as "Coming Soon." This is a requirement, and has to be done at least two weeks before the game actually goes on sale.
I created the Steam listing with a description and screenshots, and submitted the page for review. This is just for the store page and not an App Store Review-style process of the game itself.
A few days later, I had the email and a new button in the dashboard, telling me I could put the sales page live with a single press.
For the business side of things, this is an important step since Steam users can add the game to their wishlists and be notified about its release. It also plays into Steam's algorithms, as the more wishlists a game has, the more prominently it will appear in the Steam store's recommendations and charts.
The bottom line is that it's now possible to wishlist the game on Steam. Not to buy just yet, but to wishlist.
Mike Wuerthele looked at the page over the weekend, and pointed out a problem — I hadn't checked that the game was going to run on a modern Mac.
For a while, the listing, said that it would only run on 32-bit macOS versions. All that is, is a checkbox.
Steam doesn't check binaries for this flag, it's just a data field. I fixed that, and I'm good to go now.
On a more personal level, the acceptance of the listing hit me surprisingly hard. So hard that I couldn't bring myself to hit the Publish button for two hours.
Listing a thing I was making on Steam is a big thing. Seeing your own creation in the listings is an amazing feeling, even in a "coming soon" phase.
If I'm bowled over now after submitting the listing, I dread to think how I will feel when putting the game live properly.














