Tuesday, 11 March 2014

Goodbye libgdx......Hello Unity

Parting is such sweet sorrow

The final game I released using libgdx was 60 seconds. The free version has almost 4000 downloads. It's my first original game concept I've released. 60 Seconds is at heart a score chasing game so I introduced online leader boards and achievements using the Swarm api. Swarm was extremely easy to integrate with my game and libgdx. However a serious bug crept in. In certain situations when the game starts up the user is greeted by a blank screen. That, needless to say is a terrible user experience and has resulted in some one star reviews. Which is totally understandable. To my shame I've not fixed the bug. I started to investigate but it looked pretty darn messy to try and sort out and I just didn't have the time. I had a workaround and I posted that on the google play store page. Yup that is terrible user experience for those playing the game and those wonderful 19 people who actually spent money on it. I still intend to do a remake though!

The honeymoon is over

I tried to trace the cause of the bug between libgdx, swarm and my own game code but didnt get very far. Libgdx didn't have a massive amount of documentation behind it. Don't get me wrong there is a lot of support out there but getting what I needed would take a lot of effort. Google had just released their own game play services which I figured would be very useful and possibly have much wider appeal than Swarm.
I wanted to be spending my time on making games and not getting massively bogged down on technical issues. Of course you could argue that making a game IS a technical issue. But again I had a limited amount of time in which to pursue game making and difficult choices to make. Had I more time I would have persevered to fix the issue and probably learned a lot in the process. But I was hearing an awful lot about a new game engine gaining quiet a following. One that sounded like it would enable me to concentrate on game making more fully.

A younger, curvier model

I participated in the Edge get into games with Unity competition with a great group of guys from a game forum and they taught me a lot about getting up and running in Unity. The ease and speed of development really shocked me. With libgdx I needed to code everything from scratch on each project. Setting up the camera, the assets class and many more repetitive tasks were prerequisites to even starting the game design. I could have written a basic template that would have skipped over a lot of this housekeeping. Being so very time poor, I felt expending so much effort on non productive tasks was pointless. I also had some difficulty finding specific answers to issues I was having with libgdx. At the time there wasn't a huge amount of documentation out there which again slowed progress. Finally, libgdx contained no graphical editor interface. Everything was built in code. Making the smallest change required recompilation and deployment to either the connected android test device or the virtual device.

I was initially sniffy about Unity. I wrongly thought that it was a game making construction kit, that the user plugged in a prefab control scheme, plugged in a prefab menu etc etc without ever seeing a line of code, I thought it was the gaming equivalent of a WYSIWYG html website creation tool. I'm still not sure where this misapprehension came from but I was very wrong.

After actually working a little with Unity for the Edge competition I decided to make the move. I got to know the basics and developed a 3D version of my kids monster matching game in days. I started work on a 3D version of 60seconds and I had the basic game loop running in one day. I found there to be an absolute f...truckload of Unity help and training resources available. Chances are, for anything you want to do in Unity there is a YouTube video explaining it. For example this guy Quill18 does a very good series on getting a basic FPS up and running. The asset store is a big advantage also but for me the biggest boon is the price. Its free. I downloaded the free version of Unity and with that I can publish on IOS, Android as well as desktop etc. The pro license is also fairly within reach so all told Unity is a hugely attractive proposition.

I'm still glad I spent so much time with libgdx though. I think it was a massive help learning how to write a game from the ground up. The Getting Into Games book taught me some valuable fundamentals in game creation and I'm full sure my progress in Unity wouldn't be nearly as speedy had I not done the groundwork first.

No comments:

Post a Comment