Coding Games

Upgrading All My Unity Apps

Google and Apple have both had a lot of policy changes in the last little while. Google’s was far less annoying than Apple’s. Both require me to rebuild my Unity games.

Google requires 64bit build support in all App store apps as of August 2019 (with a few exceptions). Most of my older games are exempt until 2021, but since a couple were not, I opted to update them all.

Apple’s implemented some arbitrary policy that they can pull your apps from the store if they’re not updated for some unknown amount of time. One of my games is on the block and will be removed in 30 days. Who knows how many others will follow. Apple has also deemed my perfectly functional 2009 Macbook Pro to be obsolete, so I can no longer even build for iOS on this hardware. A whole different story.

So I’ll update my Android apps.

The Process

The process to upgrade everything to 64bit is a bit of a crap shoot. I didn’t know how long it would take or what I was really in for, so here’s a rough list of what I had to do in Unity:

  1. Update Unity to the latest LTS version.
  2. Open your old projects and let Unity update what it can.
  3. Change the build system to “Gradle” – internal is now deprecated.
  4. Check the “Build App Bundle (Google Play)” if you are uploading to Google
  5. Change your Target API to the Highest Level.
  6. Change your Android build settings to use .NET 4.x since 3.x is deprecated.
  7. Change your Android build tool to use IL2CPP (required for 64bit)
  8. Check off the ARM64 box.
  9. And Build…
Unity Build Settings Dialog
Unity Player Settings for Android

What Really Happened

Everything broke.

If you’re like me, You’ve probably used some extra libraries. I use Text Mesh Pro, Google Ads, Firebase Analytics, and Google Play Game Services in all of my apps. This process required all of them to be updated.

If you use these, in order to cleanly update, you must delete the old versions. The latest Google Play and Google Ads packages from their Git Hub repos install pretty cleanly. The tricky parts were with Firebase and Text Mesh Pro (TMP).

You must import the dotnet4 packages. Once you do that, the dependency resolver should fire up automatically and get any required bits and pieces from the Android SDK.

The original version of Text Mesh Pro wasn’t an official package in Unity. So needless to say, I had to re-do most of my TMP objects. The rest of the code worked fine, but it was a little more time consuming than I would have hoped for.

Other Unity Problems

I ran into a few minor issues with NDK (Native development kit) which is required by Unity to use the IL2CPP compiler. You’ll need to make sure you get the specific version and point Unity to it. At time of writing, Unity requires NDK r16b (r20-something is current). It will send you to a link to download it if it can not find it on your machine.

Final Thoughts

All in all, it was a somewhat bearable process that took a few hours per game. I’ve got the process down, so I’ll be good to go on the rest.

As a bonus prize, I was able to convert to Google Play’s signing management and use App bundles, which greatly reduced the download size of my Android apps.

Maybe this update will increase downloads a bit.


The Firefox Switch Back

Early in 2011 I switched from Firefox to Google Chrome. Just before the end of 2011 I switched back.

I switched back because I had ignored Firefox for so long, I was almost damned sure that they should have fixed a few issues I had in the 3.1-3.6 releases. And sure enough, they have.

In my near 9 months of using Google Chrome I missed a couple of features of Firefox that Chrome just didn’t cut it with.

  1. Firefox’s Awesome Bar (aka: the address bar)
    It’s 100 times better than Google Chrome’s ‘search’ bar.  The awesome bar lets me search bookmarks, open tabs, history before searching the web. Google always wants you to search the web and it’s hardly ever necessary.
  2. Firefox’s Tab Groups
    They’re just awesome.  Tab overload has always been an issue. 20-30, more tabs open. With tab groups you can sort them out and only have certain working groups of tabs available. Want to switch? sure, hit the magic button and voila. All your groups are exposed and you can easily switch to them.
  3. Firefox’s Bookmarks
    This might sound ridiculous, but I really like tagging my bookmarks without the need of an extension. Tagged bookmarks really help out with #1 and well, it makes my life easier when I’m trying to find stuff.
  4. Firefox has gotten faster.
    This is always a battle as to which browser is faster, but really, Firefox 9.0.1 is way, way, way faster than previous versions and if you find benchmarks that you want to accept as good, I’m sure someone will say Firefox is faster than everything. But hey, that’s subjective.

And yeah, I’m sure there are chrome extensions that enable these features, but quite frankly, I hate most extensions. There, I said it.

Here’s to an awesome 2012, Mozilla.

(p.s. I only remembered Firefox because Niv mentioned it.)

Socially Inept

Facebook, Twitter, Google+ And The Future…

There’s a few things that have been swirling around inside my cavernous mind since the initial launch of Google+ which all relates to the future of social networks.

I’ve already noticed a fracture forming in the camps of Facebook, Twitter and Google+ users.  I’ve already seen the behaviour of cross posting to each and even selective posting on one or the other. In fact, I’m guilty (if it’s a crime) of doing such a thing.  And it’s happening purely based on how people behave on each network.

About a month ago I disconnected my Twitter account from auto-posting to my Facebook account.  Why? It’s simple, I got sick of the way Facebook treated my own and everybody else’s Twitter posts.  I got sick of seeing “XX More posts from Twitter.” — A link that nobody ever clicks.  All of my friends who use Twitter to post to Facebook would get bunched into one clump. And in most cases, unless you were the one single tweet (last one in) to be on top, you were likely to just get lost in the ether.   Ever since I disabled the connection and started updating my status directly on Facebook I’ve seen a much greater response to the inane things I say.

Facebook hates Twitter, that’s why they did this.  It wasn’t always this way. Once upon a time Twitter updated your status directly and as such it never got grouped.  Which brings me to my next point.

Randomness and the QR Code…

I’m not sure why everybody is surprised that Google’s “new” (not new, been around for a while, just released to the public) url shortener can provide an extra piece of info known as a QR code. This is just Google’s url shortening crew being smart and using existing graphic/image APIs that Google provides to everybody. You want a QR code? Just plug in whatever text you want on the end of this url and you’ll get yourself a QR code.

Replace the final part chl= with whatever you want ie: chl=mypantsareonfire and you’ll get a QR code that resolves to just that.  I’m sorry about your pants.


Google Latitude History

Google latitude now gives you the option of enabling ‘history’ – you can enable it here.

It’s kind of neat, and I can see it being somewhat fun to use if you go on long trips.  I gave it a little test run while I was on the train back to Toronto the other day – and although I was only using my iPod Touch with WiFi tracking, it was pretty decent as far as being able to keep me pin-pointed as to where I was.

And yes, you get the option to delete parts – or all of your history.  (the lack of tracking between brantford and burlington is due to the lack of wifi in the open country side).


Google’s Security Updates…

Google seems to be rolling out an interesting pack of security updates for their sites.  The only official announcement I’ve seen is for Gmail, but I’d expect this to come for many other services.

Currently a lot of Google services work fine with https (docs, calendar, but none seem to offer the same default options that Gmail has.  Hopefully that will change soon.

Co-incidentally, it may just have something to do with this recent announcement from their Chief Legal Eagle.