Unity Game Engine vs Hybrid Frameworks
CTOR is the only strategy game in the world that exercises both of your abstract and logical brain sides at the same time. Fully developed using Unity, this powerful game engine had all the necessary tools to reproduce the actual board game rules into the mobile application.
The initial idea was to launch the game for both iOS and Android users. Based on the game features, I had to choose between native, hybrid or cross-platform development carefully.
Using Unity for the application development had its pros and cons. However, considering the project's deadline and drawbacks from other development tools, Unity was our primary choice.
When I first started working on this project, I already felt confident about this game engine for a few reasons, such as:
- You write most of the logic using C#. Since this is a well-known programming language, you can get answers from the .NET's massive community whenever you need to.
- Implementing features that digital games have nowadays, like: in-app purchases and data analytics is a piece of cake.
- Unity itself has a smart tool that compiles in real time all of the changes made into the C# scripts, which means it saves the work for you and you only have to hit play to run your application. Easy peasy.
However, not all of the development process was smooth. Some unexpected obstacles emerged, and Unity was not able to handle it well, for instance:
- Unity's plugins store is massive, but you have to be careful when implementing new frameworks and libraries to your project. Some of them can give you exception errors out of the blue, and your app will not even compile anymore.
- Thinking of using a repository for your code? GitHub or BitBucket will not work correctly with it. Unity has a unique repository system, and that is the only one I would recommend you to use, especially if you are working with different OS.
- I didn't find convenient the folders structure. When importing new libraries, it is possible to move some of those plugins to a folder of your choice – let's say a folder called "Plugins." Unfortunately, there are some other plugins that you can't move anywhere. Otherwise, they will stop working. Hence, if you use a large number of plugins, you are likely to have a messy folder structure.
I opted for using Unity as a development tool since the hybrid development would not support all the features I was looking for to implement, and writing the application natively with features like networking layer and animations would consume much more time.
In conclusion, I felt from the beginning this method would work well for this project. Plus, coding every new feature twice is prone to too many errors, and this is what I wanted to avoid at all cost.
If you are looking to develop an app or have any questions about the process, feel free to ask in the comments below!