DOC PREVIEW
OSU CS 419 - Game Programming: The BIG Picture

This preview shows page 1-2-3 out of 8 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

10/5/20121Game Programming:The BIG PictureDan WhiteStudio Technical [email protected] very old days…Turbo Assembler,6 monthsProgrammer Game30 years ago, a game might have 1 programmer, and maybe 1 artistView from the CEO’s chair…• Games are big business– Current AAA titles: $30 million budget, 2+ year time frame– Project completion date is very important• Particularly for licensed properties, sports, holiday launches, or anything with advertisingGame development organizationMoney ProductThis means we make games differently…When I first noticed change…JumpmanAtari 800circa 1983:This game had an EDITOR!At the time, this seemed revolutionary to me.Doom Engine cemented the idea– Spawned HeXen, Heretic and so on– Started the idea that an engine is potentially valuable on its ownDoom released in 1993CA more detailed view of today…The EngineAnimatorsDesignersArtistsScriptersProductEngineersEngineer = programmer = software developerAudio TechContent TeamGameplayProgrammers10/5/20122Distribution of People (large project)Head CountArtistsAnimatorsDesignersScriptersProgrammersProducersOn large projects, programmers are a small partOn smaller projects, a larger partWhere is test? Forgotten as usual..The real task of engineers• The main task of engineers in a commercial game company is to make tools and runtime to enable artists and designers to make games.– Saves money, but just as important increases predictability.• This is how most industries work anyway…you don’t need programmers to use Autocad.• How to design and create the perfect engine is very much unsolved.*• Not to worry, we are decades away from losing the chance to be creative.Actually it has been sort of solved• Flash has taken over the market for 2D games.• It’s a huge success.• Flash games can be made with only scripters.• This is possible because:• Performance not an issue for 2D• 2D games are vastly simpler• So successful that MS is making their own: Silverlight.• Future is unknown: Will HTML 5 replace it, or will Flash succeed with 3d support.Adobe Flash CS5Flash suggests form of the general solution• Artists make assets.• Designers use the assets to make levels.• The levels are packed to make game data.• The runtime interprets & processes the game data.• Sound familiar?– Source file Compiled EXE– EXE run by an OSA slightly more detailed view…ArtistsDCC ToolsDesigners & ScriptersLevel EditorArt Assets Level FileBundlerAka: Distiller, packerResource converterGame dataRuntimeDCC = Digital content Creation There will be at least one versionfor each target platform: PSP, PS2XBOX, WII, X360, PS3, PC10/5/20123The art pipeline…Maya, 3ds Max, MotionbuilderXSI(commercial products)Special PlugginsExport PlugginsPhotoshopPSD/Tiff files.fx, .hlsl or .cg filesRender monkey,FX composerColladaProprietary binary filesSource of:MeshesAnimationsMaterialsTexturesSkinsOriginally targeted at film.The level editing pipeline…Engine specific level editorArt assets Scripts Special effectsLevel 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)10/5/20124How to design a level editor is still unsettled…• Some engines use the DCC as the level editor• Some approaches have a special build of the game that is also the level editor.• In some cases, the level editor also does the bundling.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.• Asset management– This is a huge problem with > 10^5 filesRecurring Theme• Editor• Previewer• Runtime• As usual, the UI (editor) takes most of the work.10/5/20125On to the Bundler…• The bundler does the final conversion of assets to a platform specific format.– Like the compiler• Stripify & build meshes• Convert texture formats– Also build texture atlases.• Compress everything that can be compressed.• 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• Game runtime is a real-time simulation– Predictable performance is important• Amortization is not the answer• Garbage collection is…garbage– Resources are limited, memory is generally scarce (relative to the PC)– Hardware has poor memory bandwidth & small cachesRuntime…some important systemsMathPrimitive renderingPlatform SDK (e.g. DX9 + Win32)Streaming & IOSpecial EffectsShapes & MeshesSimulation/World(Game object)Culling & “Scene Graph”Rigid body PhysicsMaterial ManagementMessaging/EventsDebugging SoundVideoScriptingNetworkInterface & GUIGeometry management (e.g. BSP treesPerhaps 80% is cross platform.Cloth/waterControllerAnimationRuntime design issues• Grouping of libraries varies, but functionality is common.• Biggest unsolved question in runtime design is how to achieve threading.– Or, on PS3 how to use the SPE’s• Note that I have broken the engine down much farther that the tools side. Many of the components exist there as well.The point…• The whole tool chain is very important, and the runtime often gets too much attention.• Our task as engineers is to think about the WHOLE engine, not just the runtime.When it all goes together, you get:10/5/20126Perspective• 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.Iteration – DW1 vs DW2Issues with engine-centric development• You can make a game without


View Full Document

OSU CS 419 - Game Programming: The BIG Picture

Download Game Programming: The BIG Picture
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Game Programming: The BIG Picture and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Game Programming: The BIG Picture 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?