Our development toolset; What’s the perfect cross platform development tool?
After a couple months of feverish development, endless bag tossing (testing) and extended brainstorming sessions on how to make a better mobile cornhole game, we finally released Ultimate Cornhole: 3D Bag Toss. Although this game was a follow up to the original (iOS only) Tailgate Cornhole, it was also a new game on many fronts.
Ultimate Cornhole 3D was our first game developed in Unity3D and our first game released on iOS and Android. We’ve spent the better part of a year trying out different multi-platform tools; Corona, Cocos2D, Titanium Platino, and a few others, but none of them seemed to meet our needs. Unity, however, not only met our needs for a development environment, but it seemed to be such a better tool for the job.
The original Tailgate Cornhole game was developed natively in Xcode. There weren’t a lot of fancy graphics or effects, and the game was really just a few sprites on screen. Xcode was a great environment for Tailgate Cornhole, but when it came time to port to Android, I realized that native development for each platform was not the way to go.
Titanium is an awesome tool for business apps, and Platino does a great job at creating a game dev platform on top of Titanium, but in our experience the amount of time you spend in Titanium fixing all the odd bugs that occur when switching platforms is massive. We’ve used it for one of our client apps, and although it got the job done, it almost felt like we were developing two different apps, one for iOS and one for Android. That’s not really what we were expecting in a cross platform development tool.
So in our search for the perfect toolset, we had original decided such a thing did not exist. We would use the best tool for each project. It seemed like a good idea at first, but as you jump from project to project (because really, who gets to focus on one thing at a time these days?) it felt awkward. We were using Titanium, Corona, Unity, Xcode and Eclipse during the same week in order to work on several concurrent projects.
As we’ve moved forward, we started to categorize specific tools for specific jobs. If we’re creating a business/utility app, we use Titanium. If we’re creating a 2D game, we use Corona. If we’re creating a 3D game, we use Unity. This mindset made sense at first, each of these tools were specifically designed for these areas, and excelled in those areas. Unfortunately, jumping between each of them is like trying to move from one car to another while driving 80mph down the highway; try doing it 3-4 times a day.
As we completed Ultimate Cornhole, my comfort level in Unity has grown substantially, while my distaste for Corona has also grown. Lucky for me, Unity has been working on a 2D specific toolset, which is set to become available in the 4.3 release. I for one, welcome my pixel art loving overlord. I’m hopeful that with the new Unity features, we can leave Corona on the shelf for a while, and dedicate more time to Unity for all of our future games.
Who wants to program in Lua anyways?