In July, I started to make a word game for iPhone using ChatGPT as an experiment. Two months later, and the project is growing, along with headaches.

Readers of AppleInsider may remember to the middle of the summer, when I started to make a game in Unity using ChatGPT. It was intended as an educational project, small in scale and scope.

A few short months later, and the once minor project has ballooned into something that is no longer a disposable test of coding with an AI service and learning how to use Unity. It's past that point by quite a margin.

It's now reached a case where giving up and not completing its development will hurt me more than bringing it to fruition.

A release is inevitable.

Word game interface showing shuffled letters 'IUJAFUQI', timer at 44.18 seconds, input 'ju', game over message, and buttons for submitting or starting a new round.

How the game appeared at the end of the previous article.

In the time since the first article in what has now become a series, work has continued at a slightly slower pace than the first round.

Working for a site dedicated to Apple has meant that the lead-up to the Apple Event and the iPhone coverage that followed has dominated more time and energy than normal. Game development is in a similar creative vein, so there was no desire to end a full day of using your brain by recreationally straining the thinking muscles more.

Progress has still been observed, and it's become a lot more of a game than a toy.

A ChatGPT realization

The use of ChatGPT has continued throughout the project so far. As discussed in the previous installment, ChatGPT's hook-up to Xcode is being used to assist with writing code in C#, and to teach me about making things in Unity itself.

This is a setup that could be used for vibe coding, the concept of giving an AI prompts and it writes code on your behalf without much oversight. Typically, vibe coding accepts whatever code the AI comes up with, since the key is to quickly create an app that works as intended, without caring about code quality or extended functionality.

While I am using ChatGPT to generate code, it does differ a lot from the pure vibe coding way of thinking, in that I am monitoring the output at all times. Each adjustment made to the code is looked over before application, elements are added much more gradually and are checked after each update, and any bugs or issues are worked on before moving onto something new.

Though I am trying to learn C# and Unity coding through this process, I am under no illusions that I am actually being a programmer here. Less software engineer, more a project manager.

I may not be directly programming a game, but I am still making one.

Screenshot of a conversation about writing an article for AppleInsider, featuring ChatGPT discussing its role in assisting with game development.

A comment from ChatGPT about our work, as well as the conversation limit warning.

ChatGPT continues to be useful for a lot of code-related tasks, but I have started to see limitations on what it can do.

I was quickly running into a usage limitation for version 5, which bumped me down to a lower version until my allowance of tokens was replenished after a five-hour delay.

This isn't a horrible downgrade, as you could still code well enough with GPT-4o, but the slower processing and slight slip in "thoughtfulness" resulted in the inevitable purchase of a subscription.

Let us consider it as the first serious development expense. Hopefully, it counts as a tax-deductible one.

I also discovered that, even if you pay for ChatGPT, there are still some limits.

Sharing access to files in Xcode with ChatGPT starts off fine with lower line counts. For longer files, it takes ChatGPT longer to read, and I encountered issues when the code file got too big.

Naturally, I asked ChatGPT about it, and if there was a solution. It then took the time to help split the lengthy code into smaller files, which also helped separate the code into logical chunks that even I knew how they worked.

Unexpectedly, there is also a limit to conversations, as one warning box advised. Apparently, ChatGPT can tell you to politely shut up if you have gone on for too long.

Thankfully, the box explains that you can simply start a new chat to carry on the conversation.

Making the game more like a game

The initial bout of work resulted in a word game that functioned, but was a little basic. You could submit words, they would be checked against a word list, and would be removed from the constantly-filling rack.

This was simple, but could always be expanded upon. For a start, I made two modes, with letters drawn at random but alternating between vowels and consonants, and a second where the letters were drawn from a virtual and gradually emptying bag of letter tiles.

This second mode was a lot harder to play, since you could be fed a ton of consonants and eventually get a last-minute vowel that barely helped. At the same time, the alternating version had its play limitations, with the potential for the board to be overrun with vowels.

Word game interface showing the word 'BAGS', a score of +46, a timer, letter tiles, and control buttons like 'Submit' and 'Shuffle'.

How Character Limit looks now, with power-ups, tile coloring, and a more mobile-friendly layout.

Cue the introduction of power-ups. After brainstorming ideas with ChatGPT, I settled on three that would help smart players but also added in more complexity.

Adding a wildcard to a word was the toughest to add, as it forced the wordlist checking function to be remade to accommodate the extra "letter" in the submitted word.

Following on from this, there was the implementation of a scoring system with multipliers for various events. More points for using a Q or an X, for example, or for a last-second "save" before the game over screen was due to appear.

Doing so made it a lot more like an actual game, and it's now not hard to see the competitive elements that could be added in the future.

Stupidity and more work to go

The current state of the game is one that is playable, if not good to look at for long periods. There are many visual elements that need construction, including the main menu and other typical quality-of-life elements for players.

Thankfully, I have my own in-house art department in the form of my partner to help with that.

After much wrangling, a name has been settled on: Character Limit. It makes sense because there's a literal one for the virtual letter rack, and it's a lot better than the working title, "LexBlitz."

As tempting as it is to go down the Bennett Foddy route and put my name on the game's title, "Malcolm Owen's Character Limit" is a joke that cuts a little too deep to want to deal with long-term.

Settings menu for a letter game script showing various game modes like Classic, PureRandom, TimedSurvival, Zen, with Classic selected.

An example of the many different modes that have been created and tested for the game.

Audio is another bit to add in. Since I don't have my own orchestra nor know how to do much with Garageband, my other option was to source music elsewhere.

It's lucky that I have managed to pick up some royalty-free music packs from Humble Bundle. There's a massive mountain of music to sort through to find the tracks that match best.

There are also other interface sounds to be sourced, but there are many free (and commercially-usable) sources online for that sort of thing.

However, there is one big feature that I have yet to implement, and it was caused by some late-night idiocy. While creating probability weightings for letters to be picked from the virtual bag, I thought about making custom bags with limited alphabets.

Two whiteboards with task lists and diagrams; one board has colored pens attached. The lists detail various tasks and notes, with different colors highlighting priorities.

One whiteboard includes a lengthy to-do list for the game. There are multiple whiteboards....

That led me to wonder about creating a bag that contained only the letters used in Welsh and to use that to construct English words. Then I wondered if there was a free list of Welsh words available that could be used as its own wordlist, so you could play in Welsh as well.

This was a rabbit hole that led me to emailing the University of Wales, who made a massive dictionary of the Welsh language, asking if there were any free lists of Welsh words I could use. Unexpectedly, they emailed back, and agreed, sending me a spreadsheet that I could use in the game with proper crediting.

It's an oddly niche thing to do to a word game, but one that actually helps the design a bit. If I can get the game to work in English and Welsh, complete with all the foibles of the Welsh language, it will be robust enough to handle many other languages too.

This is the start of considering localization for the game. Something that is expectedly harder to put into practice for a game all about language.

Technically functional

As it stands, I have a working game. Most of the key gameplay elements are in place, and it is possible for someone to actually complete a basic round in either mode in English.

It's at this point that the game has to start being actually shown to others and tested out. Making sure the concept works, and what could be tweaked to make things better for players in the future.

Blue background with large white text reading 'Character Limit' and three gray boxes with text options: 'Normal Endless,' 'Empty the Bag,' and 'Exit,' each with humorous notes.

The game now has a (simple) main menu now. Testing is on the horizon now.

This is leading me to some trepidation, as I'd be showing my first game to people and expect some form of critical feedback from it. The game's my baby, and so I expect to feel protective of it despite needing to take complaints and suggestions on board.

Since I have also been tweaking the design to make it a tiny bit more mobile-friendly, I also have to think about doing testing on iPhone and iPad. Mac game testing is relatively easy, as Unity spits out an executable that just runs, but iPhone and iPad requires using Apple's developer tools.

To get to use things like Testflight, I will have to sign up for the paid version of Apple's developer program, and learn about the quirks and foibles of the App Store Review process.

I still have to put into place a lot of other elements too, such as marketing the game, post-sales support, and determining whether I should be looking at places like Steam or the Epic Game Store.

For an established and larger game developer, this is stuff that would be helped by a publisher, along with financial assistance. It's doubtful that someone like Devolver, Team 17, or even my country's Wales Interactive will work on such a title's development, so it's all down to me.

And ChatGPT too.