Unity (also called
Unity3D) is a
cross-platform game engine with a built-in
IDEdeveloped by
Unity Technologies. It is used to develop
video games for web plugins, desktop platforms,
consoles and mobile devices, and is utilized by over one million developers.
[2] Unity is primarily used to create
mobile and
web games, but can also deploy games to consoles or the PC. The game engine was developed in
C/
C++, and is able to support code written in
C#,
JavaScript or
Boo. It grew from an
OS X supported game development tool in 2005 to the multi-platform game engine that it is today.
[2]
The latest update, Unity 4.1, was released March 2013. It currently supports development for
iOS,
Android,
Windows,
Blackberry 10,
OS X,
Linux,
web browsers,
Flash,
PlayStation 3,
Xbox 360, and
Wii U.
[3] The game engine is downloadable from their website in two different versions: Unity and Unity Pro.
Features[edit]
Rendering[edit]
The graphics engine uses
Direct3D (Windows, XBOX 360),
OpenGL (Mac, Windows, Linux),
OpenGL ES (Android, iOS), and proprietary APIs (Wii). There is support for
bump mapping,
reflection mapping,
parallax mapping,
screen space ambient occlusion (SSAO), dynamic shadows using
shadow maps,
render-to-texture and full-screen post-processing effects.
[4]
Unity supports art assets and file formats from
3ds Max,
Maya,
Softimage,
Blender,
modo,
ZBrush,
Cinema 4D,
Cheetah3D,
Adobe Photoshop,
Adobe Fireworks and Allegorithmic Substance. These assets can be added to the game project, and managed through Unity's graphical user interface.
[5]
The ShaderLab language is used for
shaders, supporting both declarative "programming" of the fixed-function pipeline and shader programs written in
GLSL or
Cg. A shader can include multiple variants and a declarative fallback specification, allowing Unity to detect the best variant for the current video card, and if none are compatible, fall back to an alternative shader that may sacrifice features for performance.
[6]
Scripting[edit]
The game engine's scripting is built on
Mono, the open-source implementation of the
.NET Framework. Programmers can use UnityScript (a custom language with
ECMAScript-inspired syntax, referred to as
JavaScript by the software),
C#, or
Boo (which has a
Python-inspired syntax).
[7] Starting with the 3.0 release, Unity ships with a customized version of
MonoDevelop for debugging scripts.
[8]
Asset Tracking[edit]
Unity also includes the Unity Asset Server - a version control solution for the developer's game assets and scripts. It uses
PostgreSQLas a backend, an audio system built on the
FMOD library (with ability to playback
Ogg Vorbis compressed audio), video playback using the
Theora codec, a terrain and vegetation engine (which supports tree billboarding, Occlusion Culling with Umbra), built-in lightmapping and global illumination with Beast, multiplayer networking using
RakNet, and built-in pathfinding navigation meshes.
[9]
Platforms[edit]
Unity supports deployment to multiple platforms. Within a project, developers have control over delivery to mobile devices, web browsers, desktops, and consoles.
[10] Unity also allows specification of
texture compression and resolution settings for each platform the game supports.
[10]
Asset Store[edit]
Launched in November 2010, the Unity Asset Store is a resource available within the Unity editor. The store consists of a collection of over 4,400 asset packages, including 3D models, textures and materials, particle systems, music and sound effects, tutorials and projects, scripting packages, editor extensions and online services.
The store also contains many extensions, tools and asset packages such as the package NGUI: Next-Gen UI by Tasharen Entertainment,
[11] and the visual scripting extension uScript by Detox Studios, Tidy Tile Mapper,
[12] a 2D/3D tile-based game design extension by Doppler Interactive and the input scripting package FingerGestures.
[13]
Physics[edit]
Unity also has built-in support for
Nvidia's (formerly Ageia's)
PhysX physics engine (as of Unity 3.0) with added support for real-time cloth simulation on arbitrary and skinned meshes, thick ray casts, and collision layers.
[14]
Versions[edit]
The first version of Unity was launched at Apple’s Worldwide Developers Conference in 2005. It was built to function and build projects on Mac computers and garnered enough success to continue development of the engine and tools for other platforms.
[2] Unity 3 was released in September 2010 and focused on introducing more of the tools that high-end studios have at their disposal. This allowed the company to capture the interest of bigger developers while providing independent and smaller teams with a game engine in one affordable package. The latest version of Unity, Unity 4.0, was released in late 2012, and includes additions such as Mecanim animation and
DirectX 11 support.
Unity 3.5[edit]
Unity 3.5 was one of the largest releases for the Unity development platform and added new features and improvements to existing technology.
[15] These included the Shuriken particle system, navmesh for pathfinding and obstacle avoidance, linear space (gamma correct) lighting,
HDR rendering, multi-threaded rendering, light probes,
Google Native Client deployment, re-written
occlusion culling, built-in
level of detail support,
Adobe Flash Player add-on preview, GPU profiler, and directional lightmaps.
[16]
Unity 4[edit]
Unity 4 was announced on June 18, 2012 and includes several new additions to the technology in the initial Unity 4.0 release. The Unity 4 release cycle will, like previous releases, include several updates with additional features over the course of its lifespan, such as the new Retained GUI, which is due in a future 4.x update. It was released on November 14, 2012.
[17]
New features include
DirectX 11 support and Mecanim animation. Mobile graphics enhancements include real-time shadows, skinned mesh instancing, the ability to use normal maps when baking lightmaps and a refined GPU profiler. Furthermore, the
Adobe Flashdeployment add-on has also been released with Unity 4.0. While deployment has been possible for those with the Unity 3.5 compatible beta tool, the final release of the deployment add-on will require Unity 4. Unity 4.2 is rumored to feature shadow support for the free version. However, it has some limitations such as restricted to only one directional light and "hard" shadows.
[18]
Unity 4 also includes a new deployment option to publish games to the desktop.
[19][20][21] While the deployment add-on can potentially work with various forms of Linux, development is primarily focused on Ubuntu for its primary release.
[22] This deployment option will be provided to all Unity 4 users at no additional cost.
[23] Engineers from Unity work with
Ubuntu in Canonical's team for games.
[24] Since version 4, Unity is working in collaboration with
Facebook to launch an improved Unity experience on the social platform
[25] through its
Unity Web Player.
Mecanim[edit]
Mecanim is Unity's animation technology that has been in development for years, first by the company of the same name, and then at the Unity Canada offices following the acquisition. The technology is built to bring fluid and natural motion to characters with an efficient interface. Mecanim includes tools for creating state machines, blend trees, IK rigging, and automatic retargeting of animations from within the Unity editor.
[26]
Additionally, an array of retargetable animation will be available in the Unity Asset Store upon launch of the tool. Many of these animation files use motion capture and are provided at no cost by Unity Technologies.
Other enhancements[edit]
- Shuriken particle system supports external forces, bent normals and automatic culling
- 3D texture support
- Navigation: dynamic obstacles and avoidance priority
- Major optimizations in UnityGUI performance and memory usage
- Dynamic fonts on all platforms with HTML-like markup
- Remote Unity Web Player debugging
- New Project Window workflows
- Iterative lightmap baking
- Refined component-based workflows
- Extensible inspectors for custom classes
- Improved Cubemap import pipeline
- Geometry data improvements for huge memory and performance savings
- Meshes can be constructed from non-triangle geometry—render points & lines efficiently
- Search, live preview and buy Asset Store assets from the Project Window
Licensing[edit]
There are two main licenses for developers:
Unity and
Unity Pro,.
[27] The Pro version is available for $1500, and the regular version is a free download. The
Pro version has additional features, such as render-to-texture,
occlusion culling, global lighting and post-processing effects. The Free version, on the other hand, displays a splash screen (in standalone games) and a watermark (in web games) that cannot be customized or disabled.
Both Unity and Unity Pro include the development environment, tutorials, sample projects and content, support via web forums, wiki access, and future updates in the same major version (i.e. buying Unity Pro 4 gets all future Unity Pro 4.x updates for free).
In May of 2013 Unity Technologies announced that Unity for Android, iOS, Windows Phone 8 (in beta), Blackberry 10 (in beta), and Windows Store 8 Metro (in beta) are included with the free Unity license.
[28] A Unity Pro license will still be required to purchase an Android Pro or iOS Pro license.
Live Training[edit]
Unity organisation is providing free online training sessions on their website.
[30]