The BeginningThe origins of the Unity engine as we know it today can be traced back to around 2003 when three guys got together in their basement to make games for the Apple Mac - these guys were David Helgason, Nicholas Francis and Joachim Ante - the three founding members of Unity Technologies.
The Early Years
I asked David Helgason how the decision to release their engine technology came about. "When we started out we planned to be a game development company" said David, "but we saw an opportunity to democratise the game development process and so decided to license our engine". The first public version of the Unity engine was released in June 2005, shortly after the release of Gooball - a game developed with a pre-release version of the engine.
Of course, the engine didn't have the exposure it had today and early sales were quite slow. "New engine technology is often overlooked because it takes a while for it to become established and trusted by the game development community" said Helgason. The early adopters of Unity were largely hobbyist or semi-professional game developers who became enthusiastic about the features and usability of the engine. Unity Technologies embraced this enthusiasm and started involving them in the development of the engine by welcoming feedback and listening to new ideas - "We got a reputation for fixing issues and adding new features quickly" said Helgason.
The two years between 2005 and 2007 were hard for Unity Technologies as cash was short on the ground. Many other teams would have given up - but Unity Technologies persevered "We really believed in our vision" said David. At a time where the only choice for Indies was to create their own technology or licence an expensive engine, Unity became an extremely attractive proposition to Indies. This was reflected by a subtle change in the market - "We noticed that people actually started going out and buying Macs just to use Unity" said Helgason, "At this point we knew we were onto something special".
Unity Technologies was formally acknowledged by the Mac community when they came in as runner-up for a prestigious design award at the 2006 Apple World Wide Developer Conference. During that year sales grew to a point that enabled Unity Technologies to take on several staff to expand the engine.
The Unity Editor
Key ideasWith so many engines out there I was interested in what makes Unity stand out and appeal to its users. "Our single biggest design idea", says David "is the work flow model that is used in the Unity editor". This feature was built in from the very start and allows people to make changes directly to their game without having to rebuild or restart it every time. This feature enables both technical and non-technical people alike to be highly productive within the Unity editor. "Games, by their very nature are about 'feel' - how it plays, how it responds", says Helgason. "We wanted to allow people to explore their creativity and not be forced to stop and start the game every few minutes."
This feature is still central today and plays a crucial role in the Unity iPhone development process. Unity Technologies wanted to avoid the compile and deploy process to the iPhone which they felt would hinder creativity. "The iPhone SDK's device simulator was fine for testing low-end point and click applications but for high performance 3D games we needed something else", says David. The idea came about to allow people to link their computer to the iPhone and play the game in the Unity editor. Video of the running game is then streamed to the device and control response is sent back back from the iPhone - you can see it in John's recent review of the software. This feature is, to David's knowledge, unique to Unity and allows unparalleled productivity for iPhone game developers.
Unity Technologies embraced the idea of web-based distribution extremely early on in their life by providing a web player for Unity content almost from the start. With so many games available that have been authored with Flash I asked David Helgason whether the web-player resulted in competition with Adobe - "We don't feel as if we're competing head-to-head with Flash" said David, "but Flash is too high level for most game developers and is not as game-focussed as Unity. Whilst Flash is good for simple games it becomes difficult to do anything remotely complex." This idea seems to have struck a chord with many game developers for whom Flash was the only viable option to rapidly develop and deploy games on the web. In testament to this, this year's Unite (Unity Technologies' own developer conference) saw several packed-out sessions focused on helping Flash developers migrate to Unity's editor and environment.
The early years of Unity Technologies are largely unknown to many Windows developers. Although games created with Unity could be played on Windows-based PCs since 2006, the editor was strictly Mac-only. This all changed when Unity Technologies announced version 2.5 at the 2009 Game Developer's Conference in San Francisco. As well as a host of new features and performance tweaks, the Unity editor was fully ported to Windows - opening up the market to the majority of developers out there. "We always knew we had to do it" says David when asked about the port, "but it was down to resources; we effectively had to put the engine on hold for a year whilst we ported it". Rather than being a rushed port of the Mac version, the Unity Editor is available like-for-like on Windows. When asked how Unity Technologies achieved this Helgason noted that it was due to "making some really good design decisions and writing the editor using Unity's UI subsystem". This is powerful in several ways, not least because it allows the same UI to be used on both development platforms but also because it opens up the ability for developers to add new functionality in the form of extensions. Several of these were seen in this year's Summer of Code competition, with entries such as Ben Throop's "Detonator" project blending seamlessly into the editor and providing new functionality to the engine.
Graphics from Blush, a Unity game by Flashbang Studios
he technology behind the Unity engine is interesting. The engine itself is written in highly optimised C++ and brings in a collection of well-known middleware libraries such as PhysX, FMod and Raknet. The graphics engine is impressive and is designed with performance and quality in mind; it'll handle advanced lighting and shadow techniques for you and even provides over 40 shaders and a post-processing framework for you. The engine will handle assets from all the well-known packages used in game development today. The editor is also sensitive to changes in these assets and will automatically import it for you, minimising downtime. It's quite a nice feature to have out of the box.
Scripting in the engine is exposed via Mono, the open-source implementation of Microsoft's CLR platform. Intrigued, I asked why Unity Technologies didn't write their own technology or impose their own programming language such as the Unreal and Torque engines have done. "It would have been a bad idea from a resourcing, support and documentation point of view" said David - adding that the Mono platform gave developers several well-known languages "for free". As an added bonus Unity Technologies are able to support the open-source project as sponsors, offering real-world feedback and experience back for all users to benefit from.
With a stable base to work from and the Windows port safely under their belts, Unity Technologies have turned their attention back to adding new features and optimisations to the engine. "We're now looking at other platforms" says Helgason, "We've announced that we're working on an Xbox 360 version of Unity and are watching the mobile market space with interest to see which of the many devices will be successful".
CommunityAside from being a solid engine technology, one of the biggest strengths of Unity is arguably the community you gain access to when you jump on board. As a company, Unity Technologies believe in the democratic process of game development and are extremely open with their community. "We don't force people to sign an NDA, we're not a closed community - everything about Unity is fully available to everyone", says David. And it's true. There's plenty of documentation, samples and forum posts available to everyone before using the engine. A free version of Unity is available for individuals and small companies, with a 30 day trial of the engine available to all. There's no NDA or contracts in sight, very useful if you want to just dip in and try it out for yourself. The community response to this attitude has been equally as open, with many developers giving away their own code for things like Facebook integration, AI libraries, and so forth.
Just as the early development of the engine was influenced by the users, Unity Technologies still involve the community in generating ideas and feedback. This cumulated in this year's Unity Summer of Code competition - "The purpose of the Summer of Code was to encourage community participation" says Helgason. Unity Technologies provided support to four community projects to add new and interesting features to the engine. As an event, the Summer of Code was successful -seeing between 30 and 60 applications from around the world. But it was extremely resource-intensive for Unity Technologies to run, Helgason states that they "are considering whether to do one next year".
Unity Technologies Today
Over the past three years Unity Technologies have hosted their own community conference. Called Unite, the conference is partly about empowering the users of the engine and partly about allowing the team to interact with the community. The Unity Technologies team have been surprised at some of the ideas that have emerged from people using Unity. One such example was 15-year old Forest Johnson who took up a conference open-mic session in 2007 to demonstrate what he'd been doing with particles in Unity. The community's ideas aren't just about games and have seen Unity being used for medical imaging projects, military applications and even interactive art installations - "game development skills are used everywhere", says David.
This year's Unite conference saw an announcement that delighted many people - Unity Technologies dropped Unity's $199 indie pricetag and made it freely available to everyone. "We'd been talking about it for some time," admits Helgason, "but until recently it wasn't financially viable to do so". As soon as it was, they ran with the idea - "We wanted to open it up to everyone" he said, "we wanted to attract new people to the community - you never know who will be valuable to it until they come along". The installation base of Unity nearly tripled to over 33,500 users in less than 2 weeks following the keynote. "It was the best decision we ever made" said Helgason with obvious delight, "I couldn't stop grinning when I announced it". Indeed, you can see his excitement in the video of the Keynote.
Back in July this year EA announced that Unity was to be the basis of Tiger Woods PGA tour online; on top the Cartoon Network MMO game FusionFall and a healthy percentage of the top 25 paid-for applications available on the iPhone being written using Unity - the engine is proving itself to be a viable tool for commercial game development. The investment from Sequoia Capital this year is a demonstration of how the market feels about Unity; "We're using it for marketing and to make expanding onto more platforms faster", says Helgason.
With 61,000 current users of the engine today and a strong, growing community behind them - there's one thing that's certain, Unity Technologies and their community have got a lot to look forward to.