I’ve been hearing a lot of people talking about Unity lately and I know a LOT of developers who’ve moved over to Unity to develop their games and this is a good thing, for now…
What is compelling about Unity
The reasons for developing with Unity are plenty and well documented. It’s Rapid Prototyping capabilities are legendary and I’ve used it in this capacity several times. It has a comprehensive built-in library of tools and content, it has fast edit and continue capabilities, is seamlessly multi platform and by using it you will be tapping into the largest development community available and will be safe in the herd mentality sense.
With a list of positives like that there is a strong case for using Unity especially if you don’t have the skills to produce one or all of it’s many features, which is likely. Either you’re no artist or you’re no programmer with Unity neither of those are reasons not to make a game. This fantastic from my point of view both as a player and as a developer looking for a wider pool of developers and games to cross-polinate with.
The downsides to Unity
I’ve used Unity to develop prototypes but I’ve never used it to take a game to completion, I’ve spoken to many devs who have though and all cite the same problem, a problem I’m very familiar with from the bad old days of j2me development, Memory Fragmentation and Garbage Collection. There are ways to deal with this problem that were standard practice in the bad old days first among those was banning memory allocation at runtime, instead assigning objects from a pool of preallocated objects, Static Allocators and Memory blobs are easy to use in a native manual memory managed environment and it’s easy to see Unity maybe making the Garbage Collector optional at some point and so when I talk about the downside of Unity, I’m not talking about Memory Management.
When I talk about the downside to Unity I’m referring to the fact that it is proprietary and fundamental to the operation of the game. In the history of game development Unity has most in common with flash and XNA, both of which were ultimately unsuccessful because of the actions of the technologies owners, Adobe tried to heavily monetise flash and Microsoft forgot XNA existed much like it does with everything it makes. Right now Unity seems to be built by people with the community’s best interests at heart and I hope it continues. But if the technology was ever brought into a greedy organisation like Adobe or an organisation like Microsoft who’s attention is divided to say the least there is no telling where that might leave your game. It concerns me that we seem to have not learned from the mistakes of depending on flash or XNA and that Dan Marshall might be left out to dry again or Robert Briscoe might have to port Dear Esther again!
Please don’t shout at me, I’m not saying Unity is bad!
So in summary I personally wouldn’t and don’t rule out Unity development but the many arguments in it’s favour must always be weighed up against the risk of losing the right to change or build your game, target new platforms or even update it to support the progression of existing platforms.