So, I have started using Unity to develop my next game - 'Mr. Mustachio'. The progress has been great so far. I have really liked using the game engine. It has helped to speed up the development process many fold and it is quite exciting to see your changes so quickly in the editor, which really helps in making some choices easier.
The biggest plus so far has been the excellent community support available on the internet. Since a lot of people are using the engine, a lot of information is available. Every time I have run into a problem, a simple google search has led me to a solution. A simple scripting solution or even a plugin is never far away.
The plugin support for Unity is excellent. Some paid, some free, but there is no dearth of them. I have already started using quite a few of them in my first project itself. I have even ventured out to but some plugins which from my internet searches are pretty popular. And till date, I haven't regretted any purchase.
Some of the plugins I have used so far are:
All of the above plugins are excellent and work the way you want them to!
After having done literally everything through code when using SpriteKit, using a mix of GUI tool and scripting is a welcome change. I can already see the benefit of it in speeding up development. Hopefully, my new game should be ready in a month's time!
It has also provided an opportunity to work with C# language. Pretty used to OO languages having worked with Java, Obj-C etc, so transition was pretty easy. The one thing I haven't been able to get used to is naming convention for functions in C#. unlike the other languages that I am used to which use the lower CamelCase convention, C# uses upper CamelCase (PascalCase) for function names. Having been used to the other for so long, I am having a hard time shifting. Instead of making a mess, I have decided to stick with the lower CamelCase convention :).
(I will become used to the C# convention, just need some time ;))
The scripting API is wonderful and gives you full programmatic access, so you don't just have to depend on the GUI drag and drop. You can change literally everything by writing scripts. That's just what a programmer needs!
The performance has also been good. I have been testing out my builds on older iOS devices and the game works decently well. It even runs on an old iPhone 4 running iOS 7! How wonderful!
All in all, it has been great working with the Unity engine, which has now given me the option of publishing my game to more than platform.