Unity
The Unity game engine has been in use for over a decade, and its versatility and ease of use have made it one of the go-to engines for everyone from AAA gaming companies to single-person indie developers.
- Cross-platform support
- Creates games in both 2D and 3D
- Supported by a large community and asset store
- Combines a deep feature set with an unprecedented level of accessibility
- One of the cheaper engines on the market, and free to indie developers
- Asset workflow is simple
- Little support for Linux programming
- Documentation is often not up to date with newest changes
It's hard to say whether Unity was luckily timed with the explosion of the indie game market or if it was a large factor in facilitating the boom. Regardless, it's become one of the premier game engines for development teams of any size and education. It managed to bridge the gap between the highly functional but highly complicated engines used to develop major releases and the more limited engines that allowed novices to create functioning but simplistic games for release. Over the course of 10 years, Unity has built on its intuitive and expansive design, managing to retain its relevance and define how modern games are constructed. Indie developers praise Unity for its role in democratizing the development process, and it's a hard notion to discount. Unity takes much of the deeper level functions that once required a strong understanding of multiple programming languages and converted them into a visual interface built on simple building blocks. Through the use of basic triggers and a drag and drop structure, Unity makes workflow a breeze. But it also scales up to the demands of the user. C# is well regarded for its speed and versatility, and Unity allows developers with understanding of the language to integrate more advanced code into their software and know it will work natively without having to worry about bugs or unintended consequences. While the interface for Unity may seem byzantine at first, it's a far cry from the more complicated engines that preceded it. Users have to navigate large numbers of menus and tool sets, but once you get a feel for the underlying principles, navigating the work environment is a fairly simple affair. Part of the need for these complications is that Unity handles every aspect of the game development process. But all the principles used in game development use the same basic logic in the Unity engine. Objects and events are the defining features, and the core logic is simply a matter of linking chains of the latter to the former to create dynamic gameplay functions and build reactive environments. Success in the game industry is often predicated on cross-platform coordination. The market of gamers has become split across PCs, mobile devices, and three popular consoles, and optimizing games to work on all these devices was once a labor intensive affair. Unity expedites the process and makes it easy to take a single package and make sure it smoothly works for all of your users. Unity also plays host to an asset store that can reduce the need for draining a team's creative budget. Vast amounts of assets are available, many of them free. That means that when you're looking to simply prototype the idea, you can easily plug in existing materials and see how they function in action. It's a valuable tool for when you're trying to find funding or convince developers and creatives to sign on for your project.