A friend of mine recently asked me to explain AI design, specifically with respect to predominantly Player vs. Player, turn-based games. Duels of the Planeswalkers, we’re looking squarely at you. He wondered how easy or difficult it was to fine-tune it to where it seemed sensibly challenging given the intended difficulty level without being too good. The question demands an answer more detailed than I could contain in the text messages we were trading, so here on Infinite Wrench I figured I’d try to cover the full scoop.
The answer to the question “what is the best game engine?” isn’t simple. As I’ve said before, it all depends on what kind of project you’re building, what sort of resources you have to work with, and what kind of workflow you’re comfortable using. The best game engine, then, is the one you program yourself. In that situation, you define all of those things for yourself, in a way that is perfectly tailored to your project, your team, and your way of thinking.
The question you’ve inevitably got to ask yourself as you approach building your own game engine is “why would I do it if I have so many good options available?” It’s hard to justify re-inventing the wheel in a world where the likes of Unity3D, Game Maker, or UDK exist, or even when you consider the libraries available for this kind of thing in Flash. However, all of these options have shortcomings to take into account. Some of them are in terms of an engine’s power, some of them are in terms of organization or workflow, and some of them are deceptively a result of how broad the tools and scope of the engine are.
In March 2011, CryTek released Crysis 2 for Console and PC, touting the CryEngine 3 as the world’s most advanced game engine. Following that and a showcase at GDC, they released the CryEngine 3 Free SDK in order to make a bid at the independent and student game development communities, in hope perhaps of growing their licensing base or being able to compete with Unity3D and UDK.
To date, though, few people have taken them up on it. You never see an indie developer using CryEngine, and there are almost no big game industry licensees for it that I can name that aren’t working on IPs originally developed by CryTek. As such I decided to take a crack at learning it, both to find out how it really stacks up against the other 3D engines in the independent market and to hopefully give it some much-deserved exposure. I’ll go through it in the same way I did Unity and Unreal, then see how it measures up to both at the end.
Unity3D and UDK are the two foremost free game engines in the independent, student, and amateur game development world. Unity was developed sometime around 2006 by Unity Technologies, while UDK, or Unreal Development Kit, was released by Epic Games in late 2009 as their own bid in the indie-friendly world. Both engines became available for free roughly a week apart from one another, and both, by this point, are getting a fairly strong following. Therefore, much in the way that you hear modelers discussing the merits of Maya versus 3DSMax, you hear a lot of discussion about whether Unity or UDK is the better game development platform. This article will serve as a comparison/contrast of the two for the benefit of this discussion, as I’ve had a lot of experience working with both.
Trying to define a “better” game engine is always tricky, because different engines offer different things. Virtually any engine can accomplish any task, it’s just a matter of how much work you have to do to make different tasks happen in one as opposed to another. It’s less that one game engine is actually “better” than another, and more that they’re better-suited to specific kinds of production. In the case of Unity and UDK, both Unity Technologies and Epic Games are firmly set in developing an engine that caters to a wide variety of different kinds of projects and publishing needs, so it’s an especially tricky discussion that requires a peek into a lot of details. We’ll break this down in terms of Unity’s features, then UDK’s, and then a comparison.