Project objectives and tasks



KAUNAS UNIVERSITY OF TECHNOLOGYFACULTY OF INFORMATICS3D GAMES ENGINES REVIEWProject prepared by:Julius KasnauskasArnoldas AliukonisDariu? Milo?Darius ?aduikisSvajūnas ?irmelisDomantas RodunerIF-2/4 gr. Stud.KAUNAS, 2012Contents TOC \o "1-3" \h \z \u Project objectives and tasks PAGEREF _Toc343712605 \h 3Introduction PAGEREF _Toc343712606 \h 41.Game middleware PAGEREF _Toc343712607 \h 52.Massively multiplayer online games PAGEREF _Toc343712608 \h 63.First-person shooter engines PAGEREF _Toc343712609 \h 74.Free and open source 3D game engines PAGEREF _Toc343712610 \h 85.Quake engine PAGEREF _Toc343712611 \h 9?Engine design and milestones PAGEREF _Toc343712612 \h 9?Hardware 3D acceleration PAGEREF _Toc343712613 \h 10?Precalculating lighting and shadows PAGEREF _Toc343712614 \h 11?Sectioning the map to increase speed PAGEREF _Toc343712615 \h 11?Unreal Engine 1 PAGEREF _Toc343712616 \h 12?Unreal Engine 2 PAGEREF _Toc343712617 \h 13?Unreal Engine 3 PAGEREF _Toc343712618 \h 13?Unreal Engine 4 PAGEREF _Toc343712619 \h 146.CryEngine PAGEREF _Toc343712620 \h 15?CryEngine 1 PAGEREF _Toc343712621 \h 15?CryEngine 2 PAGEREF _Toc343712622 \h 15?CryEngine 3 PAGEREF _Toc343712623 \h 16Conclusion PAGEREF _Toc343712624 \h 18Sources PAGEREF _Toc343712625 \h 18Project objectives and tasksOverview 3D games engines, analyze them, discover the differences and similarities, find strengths and be able to evaluate every game engine. Learn to recognize game enginesPicture 1. TasksIntroductionA game engine is a system designed for the creation and development of video games. The leading game engines provide a software framework that developers use to create games for video game consoles and personal computers. The core functionality typically provided by a game engine includes a rendering engine for 2D or 3D graphics, a physics engine or collision detection sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph. The process of game development is often economized, in large part, by reusing adapting the same game engine to create different games, or to make it easier to "port" games to multiple platforms.As game engine technology matures and becomes more user-friendly, the application of game engines has broadened in scope. They are now being used for serious games: visualization, training, medical, and military simulation applications. To facilitate this accessibility, new hardware platforms are now being targeted by game engines, including mobile phones (e.g. Android phones, iPhone) and web browsers (e.g. WebGL, Shockwave, Flash, Trinigy's WebVision, Silverlight, Unity Web Player, O3D and pure DHTML). Additionally, more game engines are being built upon higher level languages such as Java and C#/.NET (e.g. TorqueX, and ) or Python (Panda3D). As most 3D rich games are now mostly GPU-limited (i.e. limited by the power of the graphics card), the potential slowdown due to translation overheads of higher level languages becomes negligible, while the productivity gains offered by these languages work to the game engine developers' benefit. These recent trends are being propelled by companies such as Microsoft to support Indie game development. Microsoft developed XNA as the SDK of choice for all video games released on Xbox and related products. This includes the Xbox Live Indie Games channel designed specifically for smaller developers who don't have the extensive resources necessary to box games for sale on retail shelves. It is becoming easier and cheaper than ever to develop game engines for platforms that support managed frameworks.Game middlewareIn the broader sense of the term, game engines themselves can be described as middleware. In the context of video games, however, the term "middleware" is often used to refer to subsystems of functionality within a game engine. Some game middleware does only one thing but does it more convincingly or more efficiently than general purpose middleware. For example, SpeedTree was used to render the realistic trees and vegetation in the role-playing video game The Elder Scrolls IV: Oblivion and Fork Particle was used to simulate and render real time Particle Systems visual effects or particle effects in Sid Meier's Civilization V. The four most widely used middleware packages that provide subsystems of functionality include RAD Game Tools Bink, Firelight FMOD, Havok, and Scaleform GFx. RAD Game Tools develops Bink for basic video rendering, along with Miles audio, and Granny 3D rendering. Firelight FMOD is a low cost robust audio library and toolset. Havok provides a robust physics simulation system, along with a suite of animation and behavior solutions. Scaleform provides GFx for high performance Flash UI, along with a high quality video playback solution, and an Input Method Editor (IME) add-on for in-game Asian chat support.Some middleware contains full source code, others just provide an API reference for a compiled binary library. Some middleware programs can be licensed either way, usually for a higher fee for full source code.Picture 2. The Elder Scrolls IV: Oblivion gameplayMassively multiplayer online gamesThe Game Engine (or Middleware) for massively multiplayer online games (MMOs, MMOGs) is far more complex than for single-player video games. Technically every normal game engine can be used to implement an MMO game by combining it with MMO middleware. The increasing popularity of MMOGs is spurring development of MMO middleware packages. Some MMO middleware software packages already include a game engine, while others provide networking only and therefore must be combined with a game engine to create a MMO game. Some prominent MMO middleware solutions include:Abyssal Engine (full MMO solution)Bigworld Technology (client / MMO specific server)Exit Games NeutronHeroEngineMonumental GamesMultiverse NetworkQ (client-only, but with server solution as 'Messiah') RedDwarf Server (open source)Vision EngineForgelight EnginePicture 3. HeroEngineFirst-person shooter enginesA well-known subset of game engines are 3D first-person shooter (FPS) game engines. Groundbreaking development in terms of visual quality is done in FPS games on the human scale. While flight and driving simulators and real-time strategy (RTS) games increasingly provide realism on a large scale, first-person shooters are at the forefront of computer graphics on these smaller scales.The development of the FPS graphic engines that appear in games can be characterized by a steady increase in technologies, with some breakthroughs. Attempts at defining distinct generations lead to arbitrary choices of what constitutes a highly modified version of an 'old engine' and what is a brand-new engine.The classification is complicated as game engines blend old and new technologies. Features that were considered advanced in a new game one year become the expected standard the next year. Games with a mix of older generation and newer feature are the norm. For example Jurassic Park: Trespasser (1998) introduced physics to the FPS games, but it did not become common until around 2002. Red Faction (2001) featured destructible walls and ground, something still not common in engines years later (for example in Unreal Tournament 2004 there are still no destructible objects). Battlezone (1998) and Battlezone II: Combat Commander (1999) added vehicle based combat to the usual FPS mix, which did not hit the mainstream until later. Tribes 2, Battlefield 1942, Halo: Combat Evolved, and Unreal Tournament 2004 fully realized the potential for vehicular-combat and first person shooter integration.Picture 4. First-person shooter gameplay Free and open source 3D game engines3D Rad2403475141605Ardor3DAxiom EngineBlenderPolyCodeCafu EngineCrystal SpaceCubeCube 2Env3DGameKit (OgreKit)gameplayGritHorde3DPicture SEQ Picture_ \* ARABIC 5. Blender engineHPl 1 engineid Tech 2id Tech 3id Tech 4ioquake3Irrlicht EngineJake2247904025400jMonkeyEngineK-GruntLinderdaum EngineLWJGLMaratisnxPascalOpenSimulatorPanda3DPixelLightPLIBPyrogenesisQuake engineRetribution EnginePicture SEQ Picture_ \* ARABIC 6. Created game reviewSpringStorymotoTorque3DURGEWire3DWorldForgeQuake engineThe Quake engine is the game engine that was written to power 1996's Quake, written by id Software. It featured true 3D real-time rendering and is now licensed under the terms of the GNU General Public License (GPL).After release it immediately forked, as did the level design. Much of the engine remained in Quake II and Quake III Arena. The Quake engine, like Doom engine, used binary space partitioning (BSP). The Quake engine also used Gouraud shading for moving objects, and a static lightmap for nonmoving objects.Engine design and milestonesQuake was the first true-3D game to use a special map design system that preprocessed and pre-rendered the 3D environment, so as to reduce the processing required when playing the game on the 50-75?MHz CPUs of the time. The 3D environment in which the game takes place is referred to as a map, even though it is three-dimensional in nature rather than a flat 2D space. The map editor program uses a number of simple convex 3D geometric objects known as brushes that are sized and rotated to build the environment. The brushes are placed and oriented to create an enclosed, empty, volumetric space, and when the design is complete the map is run through the rendering preprocessor. The preprocessor is used to locate two types of empty space in the map, the empty space enclosed by brushes where the game will be played, and the other empty space outside the brushes that the player will never see. The preprocessor then strips away the back-faces of the individual brushes which are outside the game-space, leaving only the few polygons that define the outer perimeter of the enclosed game space.Generally once a map has been preprocessed it cannot be re-edited in a normal fashion because the original brushes have been cut into small pieces. Instead the original map editor data with the brushes is retained and used to create new versions of the map. But it is possible to edit a processed map by opening it in a special vertex editor and editing the raw vertex data, or to add or remove individual triangle faces. Though difficult, this technique was occasionally used by cheaters to create windows in walls, to see normally hidden enemies approaching from behind doors and walls, and resulted in an anti-cheat mechanism used in recent 3D games that calculates a checksum for each file used in the game, to detect players using potentially hacked map files.A processed map file can have a much lower polygon count than the original unprocessed map, often by 50 to 80 percent. On the 50-75?MHz PCs of the time, it was common for this pruning step to take many hours to complete on a map, often running overnight if the map design was extremely complex.This preprocessing step cannot work if there are any small holes or "leaks" that interconnect the interior game space with the exterior empty space, and it was common for complex map-building projects to be abandoned because the map designer could not locate the leaks in their map. To prevent leaks, the brushes should overlap and slightly interpenetrate each other; attempting to perfectly align along the edges of unusually shaped brushes on a grid can result in very small gaps that are difficult to locate.The open cloudy sky in Quake maps is in fact not open, but is covered over and enclosed with large brushes, and textured with a special skybox texture which is programmed to use sphere mapping and thus always looks the same from any viewing position, giving the illusion of a distant sky.Picture SEQ Picture_ \* ARABIC 7. Quake map schemeHardware 3D accelerationQuake was also one of the first games to support 3D hardware acceleration. While initially released with only software rendering, John Carmack created a version of the Quake executable that took advantage of Rendition's Vérité 1000 graphics chip (VQuake). OpenGL support was soon added in the form of the GLQuake executable for Windows 95 and higher. Many believe that this kick-started the independent 3D graphics card revolution, GLQuake being the first application to truly demonstrate the capabilities of the 3dfx "Voodoo" chipset at the time. The only other cards capable of rendering GLQuake were a professional (and very expensive) Intergraph 3D OpenGL card and later, the PowerVR cards.To optimize the software rendering engine, lightmaps were shared by polygons that were close in space, and in the same leaf of the BSP tree. This means that quite often polygons using the same main texture could not be rendered at the same time with the 3d acceleration, due to the multitexturing second unit having to be reconfigured with another lightmap. This architecture decision reduced hardware-accelerated rendering performance.Precalculating lighting and shadowsQuake also incorporated the use of lightmaps and 3D light sources, as opposed to the sector-based static lighting used in games of the past. id Software's innovation has been used for many 3D games released since, particularly first-person shooters, though id Software switched to a Unified lighting and shadowing model for "Doom 3" (however, they switched back to a lightmapped or semi-lightmapped method starting with RAGE). After a map had been pruned of excess polygons, a second preprocessing system was used to precalculate and bake the lightmaps into the game map, to further reduce load on the CPU when playing the game. However, full light processing could take an extremely long time, so for the initial map design process, lesser-quality light processing could be done, but at the cost of creating a jagged stair-step lightcast around lights.Sectioning the map to increase speed2766060590550Picture SEQ Picture_ \* ARABIC 8. Quake engine developmentTo further decrease 3D rendering, a mechanism was developed to section off large regions of the map that are currently not visible to the player, and to not render those unseen spaces. A 3D rendering engine without any such optimizations would draw every part of the world and then attempt to determine which polygons are the closest; then hide all the other polygons behind the closest polygons (a technique known as Z-buffering); just because a polygon is not visible does not mean it is not part of the scene calculations. With this Quake 3D engine optimization, if the player could not see into a nearby region, the 3D engine could be told ahead of time to not include any of the objects in that space in the rendering calculations, greatly reducing the rendering load on the CPU. This effect can be noticed in the game as small tunnels with sharp 90-degree bends leading from one large space into the next large space. The small tunnel is used to block view into the adjoining unrendered space, and a special type of transparent brush (called a visportal) is used to define the edge of where the engine should stop rendering the adjoining space. It is uncommon in the original Quake to be able to see across the entire length of a map, and outdoor spaces are often very tall and narrow, primarily utilizing distance above and below into open sky or lava, to create a low-polygonal illusion of expans Unreal EngineThe Unreal Engine is a game engine developed by Epic Games, first illustrated in the 1998 first-person shooter game Unreal. Although primarily developed for first-person shooters, it has been successfully used in a variety of other genres, including stealth, MMORPGs and RPGs. With its core written in C++, the Unreal Engine features a high degree of portability and is a tool used by many game developers today.The latest release is the UE3, designed for Microsoft's DirectX 9 (for Windows and Xbox 360), DirectX 10 (for Windows Vista) and DirectX 11 (for Windows 7 and later), OpenGL for Mac OS X, PlayStation 3, Wii U, iOS, Android, and Stage 3D for Adobe Flash Player 11.Unreal Engine 1Making its debut in 1998, the first generation Unreal Engine integrated rendering, collision detection, AI, visibility, networking, scripting and file system management into one complete engine. Unreal Engine 1 provided an advanced software rasterizer and a hardware-accelerated rendering path using the Glide API, specifically developed for 3dfx GPUs, and was updated for OpenGL and Direct3D. Large parts of the game were implemented in a custom scripting language called UnrealScript. The initial network performance was also very poor when compared to its biggest competitor, Quake 2. Internally, Epic used this engine for Unreal and Unreal Tournament. The release of Unreal Tournament marked great strides in both network performance and Direct3D & OpenGL support. Picture SEQ Picture_ \* ARABIC 9. Unreal engine1, 2, 3 comparison8978901328420The engine became very popular due to the modular engine architecture and the inclusion of a scripting language which made it easy to mod, including total conversions like Tactical Ops. For instance, a developer was able to replace the original renderer from UE1 with a DirectX 10 renderer in 2009Unreal Engine 2Picture SEQ Picture_ \* ARABIC 10. Created game review438151150620The second version made its debut in 2002 with America's Army. This generation saw the core code and rendering engine completely re-written. In addition, it featured UnrealEd 2, which debuted with the previous generation of the engine and was shortly followed later by UnrealEd 3, along with the Karma physics SDK. This physics engine powered the ragdoll physics in Unreal Tournament 2003 and Unreal Championship. Other engine elements were also updated, with improved assets as well as adding support for the GameCube and the Xbox. Support for the PlayStation 2 console was previously added in UE1. UE2.5, an update to the original version of UE2, improved rendering performance and added vehicles physics, a particle system editor for UnrealEd and 64-bit support in Unreal Tournament 2004. A specialized version of UE2.5 called UE2X was used for Unreal Championship 2 on the original Xbox platform. It featured optimizations specific to that console. EAX 3.0 is also supported for sound. On March 24, 2011, Ubisoft Montreal revealed that UE2.5 was successfully running on the Nintendo 3DS. 3445510238760Unreal Engine 3Picture SEQ Picture_ \* ARABIC 11. Created game reviewThe third and current generation of the Unreal Engine (UE3) is designed for DirectX (versions 9-11 for Windows and Xbox 360), as well as systems using OpenGL, including the PlayStation 3, Mac OS X, iOS, Android, Stage 3D for Adobe Flash Player 11, PlayStation Vita and Wii U. Its renderer supports many advanced techniques including HDRR, per-pixel lighting, and dynamic shadows. It also builds on the tools available in previous versions. In October 2011, the engine was ported to support Adobe Flash Player 11 through the Stage 3D hardware-accelerated APIs. Epic has used this version of the engine for their in-house games. Aggressive licensing of this iteration has garnered a great deal of support from many prominent licensees. Epic has announced that Unreal Engine 3 runs on both Windows 8 and Windows RT. Unreal Engine 4On August 18, 2005, Mark Rein, the vice-president of Epic Games, revealed that Unreal Engine 4 had been in development since 2003. Until mid-2008, development was exclusively by Tim Sweeney, technical director and founder of Epic Games. The engine targets the eighth generation of PC hardware and consoles.38106350In February 2012, Mark Rein said "people are going to be shocked later this year when they see Unreal Engine 4". Unreal Engine 4 was unveiled to limited attendees at the 2012 Game Developers Conference, and video of the engine being demonstrated by developer Alan "Talisman" Willard was released to the public on June 7, 2012 via GameTrailers TV. This demo was created on a PC with a Geforce GTX 580 and can be run on a PC with a Geforce GTX 680. Picture SEQ Picture_ \* ARABIC 12. Created game review27673301205230One of the major features of UE4 is real-time global illumination using voxel cone tracing, eliminating the need for pre-computed lighting. UE4 also features new developer features to reduce iteration time and allow direct updating of C++ code. New features of the debugger for "Kismet" (a visual scripting engine that debuted in UE3) allow developers to directly visualize code while testing. The developer can then jump to the source code and edit it in Visual Studio. Elements in the game can be clicked on directly to more easily change the game world. This also ultimately results in less of a divide between technical artist, a designer and a programmer. The result is a reduced time to compile code and allows game creators to tweak settings in real time. Picture SEQ Picture_ \* ARABIC 13. Game modeling using engine"In older engines, if you wanted to change the relationship between your weapon damage and how long it'll take to kill a creature, you may spend a couple of days iterating, but if you have to spend a lot of time waiting for a build every time, you're talking one change, waiting 15 minutes for the compile to complete, and then play the game, get to the point where you can test it, test it, exit the game, change, compile…now, since all of that can be done very quickly within the tools, it's ‘Make the change, play, when it compiles, finish, shoot the guy, and then escape, make the change, play.. the iteration time is down to 30 seconds instead of 15 minutes. Our ability to kind of roll through and see how the game is playing out is much faster.".CryEngineCryEngine 13081020327660CryEngine is a game engine used for the first-person shooter video game Far Cry. It was originally developed by Crytek as a technology demo for Nvidia and, when the company saw its potential, it was turned into a game. When video cards with support for 3.0 pixel and vertex shaders were released, Crytek released version 1.2 of the engine which used some of the capabilities for better graphics.Picture 14. Real life and games grafics comparisonLater the company developed CryEngine version 1.3, which added support for HDR lighting.The engine has been licensed to NCsoft for their MMORPG, Aion: Tower of Eternity. On March 30, 2006, Ubisoft acquired all intellectual property rights to the Far Cry franchise and a perpetual license to use the Far Cry edition of CryEngine. CryEngine 222860568960CryEngine 2 is used in Crytek's game Crysis, and an updated version in Crysis Warhead, a side story of Crysis. Also, the MMORPG Entropia Universe recently upgraded its graphics to the CryEngine 2. In March 2009 at the Game Developers Conference, CryEngine 2's successor, CryEngine 3, was shown on the Xbox 360 and PlayStation 3. Picture SEQ Picture_ \* ARABIC 15. Crysis gameplayCryEngine 2 was first licensed out to French company IMAGTP who specializes in architectural and urban-planning communication. The purpose of licensing the engine was to create a program to allow clients to see exactly what a building or other structure would look like before any actual building was undertaken.As of March 7, 2011, Simpson Studios, a new development studio, has licensed CryEngine 2 out to use on a Massively Multiplayer Virtual World (MMVW) that takes place on a terraformed Mars. On May 11, 2007, Crytek announced that they would be using the engine to create a game based on their new “intellectual property”. It is also confirmed that it will not be a part of Crysis and in fact may not even be a first person shooter.On September 17, 2007, Ringling College of Art & Design became the first higher education institution in the world to license CryEngine 2 for educational purposes.CryEngine 3On March 11, 2009, Crytek announced that it would introduce CryEngine 3 at the 2009 Game Developers Conference, held from March 25 to March 27. The new engine was being developed for use on Microsoft Windows, PlayStation 3, Xbox 360, and Wii U. As for the PC platform, the engine is said to support development in DirectX 9, 10, and 11. As of June 1, 2009, it was announced that Crysis 2 would be developed by Crytek on their brand new engine. CryEngine 3 was released on October 14, 2009. Picture SEQ Picture_ \* ARABIC 16. Crysis game grafics evolution109220177165On March 1, 2010, a new tech demo of the engine was released for the i3D 2010 symposium, which demonstrates 'Cascaded Light Propagation Volumes for Real Time Indirect Illumination'. On June 11, 2011, the Australian Defence Force revealed that Navy personnel would train on a virtual landing helicopter dock ship made using the CryEngine 3 software. As of July 1, 2011, the Mod SDK version of CryEngine 3 specifically to create custom maps, mods and content for Crysis 2 is available on Crytek's website. Crytek also released a free-to-use version of the CryEngine for non-commercial game development. It was released as of August 17, 2011 under the name CryEngine 3 SDK. Crytek announced on September 9, 2011 that they would be using CryEngine 3 to bring the original Crysis to consoles. It was released for Xbox Live and PlayStation Network on October 4, 2011. Picture 17. CryEngine developmentConclusionWe learned to recognize 3D games engines, review and analyze them. We learned how and what engine is running, found out the differences and similarities, strengths and how develop every game engine. Improved knowledge of working with Microsoft Office applications and google search system.SourcesGame engine < ; / 2012- 12- 15List of game engines < > /2012-12- 17Unreal engine < > /2012-12- 18CryEngine < > /2012-12-18Quake engine < ; /2012-12-19Picture list TOC \h \z \c "Picture " Picture 1. Tasks PAGEREF _Toc343712545 \h 3Picture 2. The Elder Scrolls IV: Oblivion gameplay PAGEREF _Toc343712546 \h 5Picture 3. HeroEngine PAGEREF _Toc343712547 \h 6Picture 4. First-person shooter gameplay PAGEREF _Toc343712548 \h 7Picture 5. Blender engine PAGEREF _Toc343712549 \h 8Picture 6. Created game review PAGEREF _Toc343712550 \h 8Picture 7. Quake map scheme PAGEREF _Toc343712551 \h 10Picture 8. Quake engine development PAGEREF _Toc343712552 \h 11Picture 9. Unreal engine1, 2, 3 comparison PAGEREF _Toc343712553 \h 12Picture 10. Created game review PAGEREF _Toc343712554 \h 13Picture 11. Created game review PAGEREF _Toc343712555 \h 13Picture 12. Created game review PAGEREF _Toc343712556 \h 14Picture 13. Game modeling using engine PAGEREF _Toc343712557 \h 14Picture 14. Real life and games grafics comparison PAGEREF _Toc343712558 \h 15Picture 15. Crysis gameplay PAGEREF _Toc343712559 \h 15Picture 16. Crysis game grafics evolution PAGEREF _Toc343712560 \h 16Picture 17. CryEngine development PAGEREF _Toc343712561 \h 17 ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download