★ TouchArcade needs your help. Click here to support us on Patreon.

Getting Back to iOS Dev

08-07-2017, 03:04 PM
Joined: Jan 2011
Location: Bolton, England
Posts: 233
Send a message via ICQ to Jayenkai
Getting Back to iOS Dev

Note to Moderators : Apologies if this is the wrong forum section for this. It's kinda "developer"ish, but then it also isn't...!
Wasn't sure where was best.
Feel free to shift it to the correct place, if you feel the need.

Note 2 : Content copy+pasted from AGameAWeek.com


Over the past 3 or 4 weeks, I've been slowly getting back into the swing of doing iOS games.
Two releases so far, (Quadoban and Letter Lattice) and today's AGameAWeek (Bugsplodings) has just, within the past hour or so, been uploaded for Apple Review.

I thought I should write a blog about why these three have been created, and also explain why I've not yet gone "FULL PROMO!!!" about the games.


1. Learning the ropes
It's been 2 years since my last iOS release (SpikeDislike3) and a lot has changed along the way. XCode, for starters, has had numerous improvements and tweaks that I've had to relearn. In the meantime, I've completely rewritten my game framework from scratch, and there's also been a whole bunch of Monkey-X (The language I use) releases along the way, too.
Realistically, the chance of me being able to hit the compile button, and have a working game, were pretty slim!

I started, then, with Quadoban. Quadoban needs a save file with hundreds of levels, it needs a menu for the same number of levels, and so I chose it to act as my "tutorial" so to speak.

I spent a week rebuilding the game from its Desktop/TV form, to fit iPhones and iPads alike, with the new iPhone 6 and 7 which weren't really around the last time I did this. Fitting such a narrow tall screen, and similarly a squat landscape iPad proved fairly complicated, and Quadoban (a game which needs all the level to be onscreen at once) was a difficult game to start with.

But I learned and I tweaked and I eventually managed to get the game working on my iPhone.

Next I had to learn all about the improved XCode setup. The last time I did this, I was screaming blue murder all about Certificates and Provisions and the like. This time, however, I was happy to find that XCode handled pretty much everything for me. XCode has certainly improved in the time since I last did this.

I also had to learn how to switch to "Distribution" mode, where you create a version of the game to upload to the AppStore, instead of just doing simple "My phone" test modes.
This took me about a day and a half of Googling, where I couldn't seem to find anywhere saying "Do this to the settings" or "Do that" like in the olden days.
Turns out, I didn't have to do it at all!
Once the game would compile for the phone, you need only click Archive in the menu, then Validate your app, and finally upload it.
It all works neatly through XCode, and is a much more pleasant experience than it was the last time.

I finalised the game, uploaded it to Apple and then prepared for the usual week-and-a-half waiting time.

.. The next day, the game went into review, and that night it passed review, and there it was.
Quadoban was available in the AppStore!

Test 1 : Success!

I don't yet consider this game to be finished.
There's a couple of layout issues on iPad, and that menu is horrific! I also need to add GameCenter (more on that, later).
But for the meantime, the game is at least a nice little puzzle game with an alarming number of levels available.

Quadoban thread

2. Sudden Unrest!
With Quadoban uploaded for review, and expecting that I'd have a week to rest before moving on, I decided to make an early start on Letter Lattice.
I'd previously posted Letter Lattice in a simpler form, last year, but rather than "port" the old version to the new framework, I instead ended up rewriting the majority of the game so that it would work better on touchscreens. With the new screen resolutions, and the fact that you could rotate the screen on iPad, it took a little work to get everything to fit perfectly, whilst also allowing your finger to tap the little letters on an iPhone.

Eventually I got all this working nicely, just in time to have Quadoban suddenly pass review and get released!
I spent the next few days adding extra words to the game (The original game had about 50 word groups. The iOS one contains 100.) as well as adding in some different fonts.

By the end of the week I was ready to upload, and sure enough the game again was reviewed and passed within just a day.
Things were looking up!

Test 2 : Success!

Letter Lattice thread

3. GameCenter

I'd initially expected to work on GameCenter during the previous week, but the sudden rapid review of Quadoban threw me off slightly, and instead I rushed Letter Lattice out without even making a start on the GameCenter stuff.

For week three, then, that's exactly what I worked on.
I fitted some basic GameCenter code into Letter Lattice, as well as integrating it into my general game framework, and also popping the basics back into Quadoban as well.
I ended up with about 5 game projects open in Monkey-X and was hopping between them all, making little changes as I learned how various bits of GameCenter function.
Unfortunately, one thing I can't do is add an onscreen ingame scoreboard, due to the fact that I'm using a Low-ASCII based bitmap font. I have nothing above ASCII character 127, meaning any none-english characters simply won't show up, and Unicode definitely won't.
Instead I've had to opt for the "Tap the big button to open GameCenter" method. It's a bit of a shame, and I'd like to have had onscreen "next score to beat" player highscores, but it's the best I can do, I'm afraid!!

Anyway, other than that slight quirk, and the obvious issue of "The test version never seems to work properly on the Mac Simulator!", the GameCenter integration went fairly smoothly.

A new version of Letter Lattice (with GameCenter added as well as some nice colour options) went live, and as far as I can tell, it seems to be working as intended.

Test 3 : Success!

Letter Lattice thread

4. AGameAWeek?
Which brings us to the third of the test games.
Bugsplodings is literally "This week's game".
Bugsplodings was created within my usual AGameAWeek weekly coding timeframe. It's had exactly the same amount of time that any other typical AGameAWeek project has had.
As such, it's not a great game. It's just a standard boring little repetitive plaything.
But its purpose is to test whether, within my usual timescale, I can successfully include an iOS game as part of AGameAWeek.

The game ended up taking a little more than I'd like.. I'd forgotten to tweak the GameCenter code to be "Scores per level" rather than Letter Lattice's "Level's Complete" scoreboard type.
A few tweaks later, and everything was good to go.
I uploaded the game about an hour or so ago, which is roughly 5 hours later than the rest of the AGameAWeek versions were uploaded.

Although I now have to wait an extra day for the game to get through review (if indeed it does!) this is a DRASTIC improvement on the same situation a couple of years ago.
Back then, it would take me hours to tweak and test a game properly before I could even upload it, and then once uploaded it was a whole week (and usually longer!) before the game would even enter the review stage.

Now, with my newer 2017 framework, and a more organised AGameAWeek schedule, as well as a MASSIVE improvement on AppStore review times, I've managed to fit an iOS game, more or less, into my usual release window.

In future, this will mean I can insta-release any interesting games to iOS.
I (of course!) won't be releasing ALL my AGameAWeek games to iOS. A lot of my games tend to require buttons, and I'm not a fan of onscreen buttons! Plus, some games are .. .. um.. how should I say... very quickly cobbled together!!

But I know that I can, and I know that they'll work. And that'll be a massive boost in the future, for AGameAWeek.

Test 4 : Success!!!

You'll be able to find Boxsplodings in the AppStore when(/if!) it passes review.

5. Future

My framework is stable, and I'm happy that everything's working.
Over the coming weeks, I'll be attempting to include some of the more "advanced" features, like iCloud saves and MFi controller support, into my framework. But I can't promise they'll appear any time soon.

From here on, I intend to get much more use out of that annual iOS Developer fee that I'm paying.
I've pretty much wasted it for the past two years, and it's time to get back into the iDev saddle, and get releasing some proper games once more.

I hope that, over the coming weeks/months, I can create at least a few games that you enjoy.

As is the general rule with AGameAWeek, if I release something you don't like, you can normally just wait and see what the next game is. I try to keep things as varied as I can, within the limited confines of my imagination.

My games are occasionally hard.
I tend not to include tutorials.
They're certainly not works of art.
And they can be somewhat repetitive.

But people who get a taste of my AGameAWeek methods tend to stick around, because I have a certain "style" that grows on people.
I hope that you can join me in this crazy adventure.

Thanks for reading. (if indeed you did!)

Creator of many many games. (Seriously, LOADS!)
I'm currently working on building a new iOS collection after Apple decided to delete all my old games. My Daily Blog will be helping to track my progress.
08-08-2017, 02:38 PM
Great read, Jayenkai - I'd love all your old games to come back in their 64 bit glory!!
08-09-2017, 04:59 PM
Joined: Jan 2011
Location: Bolton, England
Posts: 233
Send a message via ICQ to Jayenkai
I'll see what I can do about the old stuff.. Technically they should be vaguely workable, but I'm not sure if the many changes to XCode/Monkey/Etc might've completely broken them along the way.

But thanks for the support. It's really appreciated!

Creator of many many games. (Seriously, LOADS!)
I'm currently working on building a new iOS collection after Apple decided to delete all my old games. My Daily Blog will be helping to track my progress.