Game Engines: Why and What? 6 Months

Game Engines: Why and What? 6 Months

10/17/2014 Olde Tyme Game Making Turbo Assembler, Programmer Game Game Engines: Why and What? 6 months Dan White 30+ years ago, a game might have 1 Studio Technical Director programmer, and maybe 1 artist Pipeworks [email protected] A current mid‐large size project looks View from the CEO’s chair… like: Head Count • Games are big business – Current AAA titles: $30 million budget, 2+ year Artists time frame Animators • GTAV = 1 $Billion, $265 million to develope DiDesigners – Even mobile games: $500 thousand Scripters Programmers – Project completion date is very important Producers • Particularly for licensed properties, sports, holiday launches, or anything with advertising Game development Money Product On large projects, programmers are a small part organization On smaller projects, a larger part Where is test? Forgotten as usual.. This means we make games differently… Complexity When I first noticed change… • Even small games are complex software development projects involving multiple Jumpman Atari 800 disciplines. circa 1983: • Just “go make stuff” approach doesn’ t work. • The project management side is a discipline in itself. This game had an EDITOR! • What to do…. At the time, this seemed revolutionary to me. 1 10/17/2014 The solution: Game “Engines” Doom Engine cemented the idea.. • Idea is to use a set of reusable tools and Doom released in 1993 runtime to create product. – Spawned • “Engine,” like “object,” “beta” or “alpha” is a HeXen, Heretic and word that means many things. so on. – Started the idea that an engine is potentially valuable on its own. A more detailed view of today… The real task of engineers • The primary task of engineering is to make tools and Artists runtime to enable artists and designers to make games. – Saves money, but just as important increases Animators predictability. • This is how most industries work anyway…you don’t Designers need programmers to use AtAutoca d. C The Engine Product Scripters • Depending on the project, use a combination of in‐ house software, 3rd party solutions and open source. Audio Tech • Not to worry, we are decades away from losing the chance to be creative. Gameplay Engineers – Also, you don’t want designers bothering you to change hit Programmers points… Content Team Engineer programmer software developer The goal is a pipeline… How a game team should work… Tool chain Runtime Back End • Artists make assets: models, textures, etc.) • Designers use the assets to make levels. Import Assets Distribute • The levels are packed to make game data. • The runtime loads, processes and presents the data. Edit Game Load Collect Data • The back end saves data, statistics and transactions. Data • Back end data can be analyzed to close the loop. • Sound familiar? Bundle for Simulate Analyze Runtime – Source file Compiled EXE – EXE run by an OS Present 2 10/17/2014 Primary Components The art pipeline… Designers & Artists Scripters Render monkey, Photoshop FX composer 3ds Max DCC Tools Level Editor Source of: Maya .fx, .hlsl or .cg PSD/Tiff files Meshes files Animations Art Assets Level File Materials Textures Skins Aka: Distiller, packer Bundler Maya, 3ds Max, Resource converter Motionbuilder XSI Proprietary There will be at least one version DCC = Digital content Game data (commercial Special Pluggins binary files Creation for each target platform: PSP, PS2 products) XBOX, WII, X360, PS3, PC, X1… Export Pluggins Collada Runtime Originally targeted at film. DCC Tool Examples 3 10/17/2014 The level editing pipeline… Unreal Engine 4 Art assets Scripts Special effects Engine specific level editor Level file • Object placement & properties • Setup lights • Create light/shadow maps • Script binding (connect triggers and so forth) • Script testing • Create camera paths & cinematic sequences. • In some cases…creating of the static world geometry (now out of fashion) Spigot Other tools • Special Fx editor – Particle systems very important for look and feel. – Edit and tweak particle systems – Can be really fun to work with & neglected academically • Sound editor – Take sound samples (from Sound Forge or whatever) and create runtime sound‐effects by applying patches, filters etc. • Animation Graph Editor • Shader Editor • Asset management – This is a huge problem with > 10^5 files • UI System – Game UI can be very time consuming to make 4 10/17/2014 Unreal 4 Shader Editor Recurring Theme About the Bundler… • • The bundler preprocess data for the runtime. Editor • The bundler does the final conversion of assets to a platform specific format. • Previewer – Like the compiler • Runtime: loads, simulates, presents • Stripify & build meshes • Convert texture formats • As usual, the UI (editor) takes most of the – Also build texture atlases. • Compress everything that can be compressed. work • Layout binary data for streaming. • Handles endian swapping. • Build large data structures (e.g. BSP or kD trees) • Do every possible preprocess operation! – Among other advantages, finds errors early Runtime Loading and Asset Runtime Design Issues Management • Game runtime is a real‐time simulation • A misunderestimated problem – Predictable performance is what matters! • Number of assets may be > 10^5 – Typically vary per platform. • Steady 30hz is better than hunting between 30 and 60. – Artists are constantly updating • Amortization is not the answer – Data is big: WSOP takes 300GB on our Perforce server • Garbage collection is…garbage • Many source control systems choke – But we use it anyway • Loading assets into memory can take a long time. – Often networked – How long does it take to fill 5GB? • 7200RPM HDD can maybe hit 1Gb/sec…best case • Consoles need special treatment: – It may also require CPU – Resources are limited, memory is generally scarce • Loading and asset management are often the biggest (relative to the PC) problem…more than framerate! – Each frame is a new frame, but the set of loaded assets persists, so – Hardware has poor memory bandwidth & small “bad things” last many frames. caches 5 10/17/2014 Runtime…some important systems When it all goes together, you get: Telemetry Simulation/World Culling & “Scene Patching/CDN (Game object) Graph” Streaming & IO Rigid body Physics Geometry management (e.g. BSP Cloth/water Network trees Scripting Animation Math Interface & GUI Material Management Messaging/Events Shapes & Meshes Debugging Sound Special Effects Controller Video Primitive rendering Platform SDK (e.g. DX9 + Win32) Perhaps 80% is cross platform. This is a mobile game!!! Perspective Iteration –DW2 vs DW1 • The tools complexity, by line count, will be multiples of the runtime side (at least for a single platform). • The engineers use the runtime, but all the content people use the tools. – Training time on tools is much higher, cause more people are involved. – Productivity payoff is much higher for the same reason. • Runtime changes with platform and fads, but tools can remain forever. • A lot of what makes a runtime “good” is performance, but the payoff to the user may be low. – 2x increase in poly count is often barely noticeable • Iteration makes games good, and the tool chain allows iteration. • Our task as engineers is to think about the WHOLE engine, not just the runtime. This is essentially the same game and engine code. 6 10/17/2014 3rd party engines: Issues with making engines… Why build when you can buy? • You can make a game without tools, but you can’t make a game • without runtime. Until recently, needing an engine was a barrier to – Just like you can make a game without artists, but not without entry. programmers. • For financial and technical reasons, you must assemble an engine in • A small company can’t maintain an engine team. stages. – Pipeworks, at 55 people is even too small. • It is very easy to screw up. The world is fille d wihith fildfailed engine initiatives. – “Small” gets larger every year. • Making an engine genre agnostic is very hard…potentially • Viable 3rd party engines now exist: impossible. • Unity – Genres: FPS, RTS, RPG, fighting, puzzle, driving and the all‐important 3rd persona action adventure. • Unreal – Repurposing an engine is perilous. • Cryengine • In the end, users don’t give a darn…they want a fun game. – Prices have become reasonable Unity What if you use a 3rd party engine… • Combines in one tool: – Level editor rd – Particle editor • Even if you use a 3 party engine, you need – Previewer people who understand how engines work. • It has the killer feature: Game runs in the editor. • UI based on 3rd party plug ins – Unless you are just re‐skinning samples – In fact, there is an amazing market for 3rd party code & assets • Scripting bbdased on Mono • You can cross this line without knowing it – Has garbage collection…. rd • Targeted at mobile & browser. • A 3 party engine is more like an application – In fact, owns this market. framework for making games. • Also support consoles…sort of. • Unlike Ogre and some others, used to make many commercial games. • Line between engine and gameplay • Unity is an excellent thing to study! programmers blurs. The Back End Back End Implications • Disruptive forces since late 2000’s: • Once you connect to a database, many things become easy: – Cloud based save load – Piracy, and the need to control it – Multiplayer lobbies & leaderboards – Digital Distribution • But not synchronous MP – Social integration – Success of MMORPGS (e.g. WOW) – Freemium economy & transactions – High broadband penetration – Piracy protection – Telemetry, which has changed game design forever – Microtransactions

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    8 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us