Draft:Unreal Engine 3

Unreal Engine 3 (UE3) is the third version of Unreal Engine developed by Epic Games. The first games using UE3 were released at the end of 2006. It was succeeded by Unreal Engine 4.

History
Screenshots of Unreal Engine 3 were presented by July 2004, at which point the engine had already been in development for over 18 months. In July 2005, Sony Interactive obtained sublicensing rights of Unreal Engine 3 for the PS3's Software Development Kit. The first games released using Unreal Engine 3 were Gears of War for Xbox 360, and RoboBlitz for Windows, which were both released on November 7, 2006.



Initially, Unreal Engine 3 only supported Windows, PlayStation 3, and Xbox 360 platforms, while iOS (first demonstrated with Epic Citadel) and Android were added later in 2010, with Infinity Blade being the first iOS title and Dungeon Defenders the first Android title. In 2011, it was announced that the engine would support Adobe Flash Player 11 through the Stage 3D hardware-accelerated APIs and that it was being used in two Wii U games, Batman: Arkham City and Aliens: Colonial Marines. In 2013, Epic teamed-up with Mozilla to bring Unreal Engine 3 to the web; using the asm.js sublanguage and Emscripten compiler, they were able to port the engine in four days. The engine is no longer receiving updates.

Features
The engine was based on the first-generation but contained new features. "The basic architectural decisions visible to programmers of an object-oriented design, a data-driven scripting approach, and a fairly modular approach to subsystems still remain [from Unreal Engine 1]. But the parts of the game that are really visible to gamers – the renderer, the physics system, the sound system, and the tools – are all visibly new and dramatically more powerful," said Sweeney. Unlike Unreal Engine 2, which still supported a fixed-function pipeline, Unreal Engine 3 was designed to take advantage of fully programmable shader hardware. All lighting and shadowing calculations were done per pixel, instead of per vertex. On the rendering side, Unreal Engine 3 provided support for a gamma-correct high-dynamic range renderer.

Unreal Engine 3 was one of the first game engines to make use of multithreading. According to Sweeney, several systems within the engine were rewritten to employ multithreading, such as the physics, animation updates and the renderer's scene traversal loop's systems, but multithreading was not used for "systems that are highly sequential and object-oriented, such as the gameplay." In its early phases of development, UE3 optimized for minimizing memory usage in favor of taking advantage of greater CPU and GPU power, which Sweeney described at the time as having seen greater improvements than that of memory.

Unreal Engine 3 adopted DirectX 9 as it's baseline graphics API support, allowing the engine to incorporate more features which would be impossible to support if UE3 attempted to support older versions such as DirectX 7. . According to Sweeney, "a great deal of generalization, improvement, and even simplification has been made possible by eliminating legacy code paths and formulating all rendering around fully-general pixel shader programs." Similarly, a major goal for UE3 was that "designers should never, ever have to think about 'fallback' shaders, as Unreal Engine 2 and past mixed-generation DirectX6/7/8/9 engines relied on." In general, one of the major areas of focus for UE3 was "empowering artists to do things which previously required programmer intervention: creating complex shaders, scripting gameplay scenarios, and setting up complex cinematics."

Throughout the lifetime of UE3, significant updates were incorporated, including improved destructible environments, soft body dynamics, large crowd simulation, iOS functionality, Steamworks integration, a real-time global illumination solution, and stereoscopic 3D on Xbox 360 via TriOviz for Games Technology. DirectX 11 support was demonstrated with the Samaritan demo, which was unveiled at the 2011 Game Developers Conference and built by Epic Games in a close partnership with Nvidia, with engineers working around the country to push real-time graphics to a new high point.

Unreal Development Kit
While Unreal Engine 3 was quite open for modders to work with, the ability to publish and sell games meant using UE3 was restricted to licenses of the engine. However, in November 2009, Epic released a free version of UE3's SDK, called the Unreal Development Kit (UDK), to the general public.

In December 2010, the Unreal Development Kit was updated to include support for creating iOS games and apps, followed by OS X compatibility in the September 2011 release. By 2013, it reported more than 2 million unique installations.