Installed Arch Linux this weekend and Unity 3D just yesterday! I am very impressed with the results so far! Of course a lot of testing will be needed and a new beta version of SlotLeague Time Trials, for Linux this time 😉

Got a few problems so far, but they are very minor issues. Like the buttons with the arrows to slide left and right just have no arrows anymore… O.o

The upload time trial function (WWW class) has a minor behaviour difference. When no error happens the http://www.error property returns “” instead of null. I know… I should had used string.IsNullOrEmpty… but I did not… no donuts for me 😦

As I said, very minor issues, I would not even call them issues…. maybe a couple of little tiny glitches? 🙂

Thanks to “spacepluk (DoctorJellyface, fwalch, z3ntu)” the maintainers of the arch linux Unity 3D package, great job guys! awesome!

In case someone wants the link to the package, here it is:Unity3D Arch Linux


Why camera access?

Why camera access?

Just to remind the players that the games does require camera access on iOS and Android for the “create track feature”.

Just created this picture collage to show how does this feature work!

Play the game for free and have fun! (Click on the “Play” button on this page to download it for desktop)

Switching the server

Switching the server

Next version 1.1.2 will have a new server version as well. So I had to find a way of switching server versions without stopping the game availability for the players!

In the end it was quite an easy solution. New server listens on a new port number, so it is already running while the old server is still serving the data to the players. Both versions running together, each one on a different TCP port.

The new app version 1.1.2 will use the new TCP port, so the players will gradually update the app and switch the server without noticing any change.

There is a trick though. The version 1.1.1 already had a code to alert the user that it is necessary to update the game. So when the new server becomes the only running server the apps will start showing this message and requesting the user to update the game and thus start using the new TCP port.

So how does the old server knows when to alert the old apps to update the game? It is a node.js server so I only have to turn on a switch on the server code and restart the server, quite easy. Before doing that I will also copy all data from the old server into the new one and that is it!

This approach also makes it easier for Google and Apple reviewers to play the game, testing the new app version which already has a new server working. Otherwise they could reject the game for errors concerning the server version instead of the app version.


Serialization and Mono

Just found out that [OptionalFieldAttribute] does not work on Mono, and therefore on Unity 😦

Actually a new field in a class should not throw any error messages on older applications using older versions of this class.

But unfortunately it does throw an error on Mono and there is no way of preventing that on the older applications 😦

Here some links about it:

How it should work

Nice info on how to handle optional fields

Another fellow having the same issue

and if you are still curios about it, BinaryFormatter.AssemblyFormat