[caption id="attachment_10118" align="aligncenter" width="524"] Unity editor.[/caption] In the early 2000s, three young programmers without much money gathered in a basement and started coding what would become one of the most widely used pieces of software in the video game industry. "Nobody really remembers how we survived in that period except we probably didn't eat much," said David Helgason, the CEO and co-founder of Unity Technologies, maker of the Unity3D game engine. A decade later, untold numbers of developers have used Unity3D to make thousands of video games for mobile devices, consoles, browsers, PCs, Macs, and even Linux. The existence of Unity3D and similar products (such as the Unreal Engine and CryEngine) helped democratize game development, making the kinds of tools used by the world's largest game companies available to developers at little or no cost. This has helped developers focus less on creating a video game's underlying technology and more on the artistic and creative processes that actually make games fun to play. Helgason explained that a game engine is "a toolset used to build games and it's the technology that executes the graphics, the audio, the physics, the interactions, the networking. Everything you see and hear on the screen is powered by this code that has to be super-optimized because it's moving so much data and throwing so many pixels on the screen." At one point in time, he added, every game company in the world had their own proprietary technology—which made a lot of sense in a more constrained world where device memory was low by today’s standards. Game engines, in their natural state, were little more than minimal scaffolding around a particular game. But that eventually changed. "As platforms became more complicated, the technology requirements for making games became more complicated,” he said. “At some point you needed different shadows and special effects and smoke and particles and physics has to be realistic, and all this stuff." Instead of requiring separate software products for major development aspects such as animation, physics, rendering, artificial intelligence, sound, and so on, engines such as Unity3D give developers just about everything they need to build games in one package. Unity3D's Pro edition is $1,500 per user; there's also a free version with less functionality, but can still be used to build and sell games.
“We Were Just Hackers and We Just Liked Our Macs”
A decade ago, when Helgason joined with colleagues Joachim Ante and Nicholas Francis in Denmark to work on their project, they wanted to make something in the image of Apple’s Final Cut Pro. Final Cut gives amateur filmmakers reasonably priced, professional filmmaking tools; Unity would do the same for video game developers. But the trio lacked a solid business plan. "The ridiculous and bizarre thing was literally the first and only platform we supported in the very first months was the Mac," said Helgason, who is now based in San Francisco. This was before the Mac's resurgence, and the Mac's place in the gaming industry (especially compared to Windows) was even punier than it is today. "It was the worst possible choice we could make from a business perspective, but we were just hackers and we just liked our Macs,” he said. “We weren't thinking big thoughts from a businesses perspective." The three survived on loans, occasional consulting projects, and some non-technical jobs. "I did some cafe work in the evenings, mainly for the free food because it didn't pay much," Helgason said. “We were all in, we didn't have any other projects we were doing." A somewhat primitive version of Unity was released in 2005. The team added support for Windows PCs and Web browsers early on. By 2008, the engine had become more sophisticated and software sales were paying the bills, allowing Unity to expand to a dozen or so employees. A turning point came in mid-2008 when Apple unveiled the iPhone App Store. "We rushed and managed to support the iPhone, the first game engine to do that in late 2008," Helgason said. "It happened really quickly. Suddenly, a lot of people wanted Unity." Another big advance came in 2008 when the Cartoon Network used Unity3D to create FusionFall, an MMORPG for kids that's been played by 8 million people. Electronic Arts used Unity3D in 2009 to make Tiger Woods PGA Tour Online, and even Microsoft and Ubisoft became customers. In 2011, Unity bought an animation company called Mecanim, boosting the game engine's underlying technology. Today, Unity and its 285 employees around the world support development for iOS, Android, Windows, Mac, Linux, Web browsers, PS3, Xbox 360, and the Wii U. Unity is planning to support Sony's PlayStation Vita, but hasn't decided yet whether to support the Nintendo 3DS. Windows Phone and BlackBerry support is in the works. Some 1.8 million developers use Unity; the software’s browser plugin has been installed more than 200 million times. Dead Trigger and the upcoming Dead Trigger 2, among the most graphically complex games for iOS and Android, are based on Unity3D. Despite the big names using Unity3D, it's the smaller developers that make Helgason especially proud. "Big companies could always make games, they would figure it out and buy technology or build it themselves," he said, adding: "Where we really made a dent is making it so that these masses of people can not just build games but can build games using the same tools as the big guys."
Building games with Unity
The Unity Editor provides a drag and drop environment for creating games. Helgason said it's possible to create a game in Unity without writing any code, but most projects require programming chops. Unity users can program in C#, JavaScript, or Boo, which uses a Python-like syntax. The development environment runs on Mono, an open source version of the .NET Framework. Unity itself is written in C++. "The code that has to run super-fast like the physics and animation, all that is C++," Helgason added. "But the code that should be easy to write, you can write in .NET." inXile Entertainment is using Unity to build Wasteland 2, a post-apocalyptic RPG scheduled to hit PC, Mac, and Linux in fall 2013 as a result of a Kickstarter fundraiser that pulled in nearly $3 million. inXile also plans to use Unity to build Torment: Tides of Numenera, scheduled for December 2014 and the result of a $4 million Kickstarter. Unity3D is a "component-based game object system," said inXile technical director John Alvarado. "Every game object, you can attach scripts to. You write your scripts and derive them from a certain class and model behavior, and automatically when you drag scripts onto a game object that you create in the editor it will run your script. … It's real easy to add code components to any object you create in the game, whether it be a box you just made or an animated character. It's a very modular, object-oriented way of adding functionality to an object in the game." inXile previously used the Unreal Engine to build a game called Hunted: The Demon's Forge for PS3, Xbox 360, and Windows. Unreal has its technical advantages over Unity3D—but given that Wasteland 2 and Torment: Tides of Numenera are turn-based combat games, Alvarado said, "we didn't need that extra horsepower that the Unreal Engine provided." Unity3D was also a bit easier for Alvarado to learn. Unity offers an "Asset Store" that's reminiscent of phone app stores, only it contains components and useful code in place of actual apps. "There's quite a lot of material available through that store that was useful to us," Alvarado said.
The Future of Unity—a Bigger Push on Consoles
The original trio that founded Unity is still going strong. Ante ("the best coder I've ever met," in Helgason's words) remains the CTO. Francis, who provided "the creative vision for a lot of the tooling and how we designed the workflow," remained a top Unity executive until a few months ago, when he left to run an indie studio that's making games—with Unity3D, of course. "He always used Unity more than we did," Helgason said. From their initial days supporting only Macs, Unity Technologies now builds for almost every platform. "It's really, really hard, not to write an engine that sort of works everywhere, but to write an engine that uses the capabilities of these different devices and runs as fast as you can possibly run," Helgason said. But Unity3D was several years late to supporting the PS3 and Xbox 360, well after most developers had chosen their software for developing games on those platforms. And while Unity has announced support for the PS4 in collaboration with Sony, it won't be ready in time to create launch games for the console. Helgason acknowledges that the engine is well behind on traditional consoles. One challenge in building for next-gen consoles, he added, is supporting global illumination technologies that allow for more realistic lighting in 3D environments. Unity counts the number of mobile games based on its platform in the "high thousands," but the list of console games numbers only in the dozens. "We’re working very hard to change that, of course," Helgason said. “If you look back in a year or two, you'll see how far we’ve moved.” Image: Unity
Upload Your ResumeEmployers want candidates like you. Upload your resume. Show them you're awesome.