Ark-Anti-Noid - devlog #3

Mar 22, 2017

Another week means more progress.

The work on the Ark-Anti-Noid continues. This week was also pretty productive, though again, not without problems. I guess that’s the beauty of any developement, we fix one thing and two more need to be fixed in it’s place.

Xcode acting up.

This was something I’ve actually discovered just yesterday. Apparently the free provisioning profiles (which are the things that let you actually run your game on a real device) you can generate with Xcode itself are only valid one week after you make them.

After that week expires, everything stops working - you can’t build the app anymore, because Xcode complains, you can’t even run the app on your device, as it will just be killed instantly. That took me by surprise, but oh well, no point in paying the $99 too early, so I guess I have to work with what I get for free.

You also can’t regenerate the provisioning profile easily, because the only way to do so is from Apple’s Developer Console, which - as you generated the profile and signing identity from Xcode itself - you don’t have access to at all.

The solution to this is actually pretty simple - just rename your app. Not only the bundle identifier, but also the app itself. Since it’s a beta developer only build, it doesn’t really matter how you’re naming it anyway, so not a big deal, but still annoying.

Second problem was that after renaming the app, I still couldn’t build the game - because Xcode (or Unity, I don’t know) decided to automatically add the library for In App Purchases to the project. I suspect it was Xcode on expiring the provisioning profile, because I’ve double checked Unity and the InApp service was definitely disabled (and it wasn’t added when I built it during my earlier testing). Though why would it do so, I have no idea at all.

Anyway, inclusion of this library makes Xcode scream at you, claiming that “The ‘In-App Purchase’ feature is only available to users enrolled in Apple Developer Program. Please visit https://developer.apple.com/programs/ to enroll”. Quite unhelpful, I knew that already, but whatever.

If you follow the logical steps, you’ll go into the Capabilities pane in Xcode, where of course you can’t disable In App Purchases, because you have a free account made in Xcode and it’s hidden.

Solution for this is again simple - go to the General pane, scroll to the bottom of it, find a library called ‘StoreKit’ and remove it from the list (just making it optional doesn’t work).

After doing so, suddenly the provisioning profile was able to be regenerated and I was able to build and run the game on my Ipad again. So annoying.

Game improvements.

As for the game itself, I started polishing it up, so it would lose it’s prototypeness and starts feeling more like a proper game.

  • Local highscores - it’s an arcade game, so of course it needs a highscore list. Having no Apple Developer account means I don’t have access to Gamecenter features, so I’ve written a really basic script for them. It’s just an array of integers that’s saved into PlayerPrefs and displayed in the UI.
  • Camera shake - obviously. ;) It’s a good indicator that you’ve just lost some energy by letting the ball through, so I’m not really abusing this.
  • Sounds - nothing fancy, I’ve just spent an hour or so playing in Bfxr. I’m not completely happy with them, but they work pretty well for now.
  • Better UI - I drew a few buttons (one generic and a pause button that I’m gonna also use to mute sounds), some boxes for energy and points, and a proper danger zone for top of the screen, which I’m also using as a background for the game’s name on the starting screen.
  • Startup countdown - this is actually quite obvious, but really makes the game better. Just a 3-2-1-GO sequence at the start and it lets the player prepare a bit after one of the menu screens.
  • Unity Ads - I still want to release this game to the stores, so they can’t hurt. I don’t actually expect to get any proper revenue out of this any time soon, but who knows. ;) I was really amazed at how easy they were to integrate - they were working after enabling them in Unity and actually writing few lines of code to show them and handle the callback for closing them.

Current game screenshot

It does look better than it did before. :)

What’s next?

As the month is slowly drawing to an end, so I’m doing the finishing touches on the game. I still have to do some graphics improvements and definitely add some music. I’ve already picked one, but I’ll leave that for the next devlog. ;)

I want to keep doing the #1GAM challenge this year, so next month I want to start on making something new. I already have two games in mind - one is a new idea that I have to prototype first (as I’m not very sure it would be fun), and the other is updating one I’ve done in the past.

And there’s still the Tower of Volandarr, which really took a back seat during this March.