What it takes to make a game? Asset pipeline and game engine
Cooperation ● Each aspects supports the other ones in one way or the other ● Tasks are divided up so that their execution can be parallelized ● Maximize output
Visual development processes in games and movies ● Getting more similar and similar as time goes on ○ Asset pipelines are getting closer (physical shading for example) ○ Game development still has extra steps and considerations. ● Both for good and bad...
Environment ● Design ● Art ○ Story/Idea ○ Story/Idea ○ Sketch ○ Gather reference ○ White/grey box ○ Concept art creation ○ Gameplay scripting ○ Basic shape modeling ○ Maintaining working state ○ Final art creation as art comes in ■ Model (high and) low poly ■ (Bake) ○ Fix bugs ■ Unwrap ■ Texture and shade ○ Import assets ○ Add lighting, effects, ambient sounds etc... ○ Maintain working state as gameplay evolves ○ Fix bugs
Characters Character development cycle example from Team Fortress 2: 1. Character silhouette 2. Interior shapes 3. Model sheet 4. 3D Model 5. Character Skin 6. Final Character in game
Animation ● Very time consuming ● Hand animation versus motion capture ● Canned versus procedural
Vertical slice ● Small polished section of game ● All aspects polished ● Helps to find problems earlier ● A chance for all departments to work together ● Bechmark for the rest of the game ● Potential time sync
Game engines ● Game engine is a set of software responsible for the game mechanics ● Runtime vs Tools
Layers
Hardware ● Desktop ○ A lot of configurations to handle ● Mobile / embedded ○ Still growing market ● Dedicated ○ Military simulators ● Name some differences!
Examples ● Input ○ touchscreen vs mouse vs gamepad vs keyboard ● Screen resolution ○ mobile devices vs desktop ■ 640x960 vs 4096x2160 ● Memory
Driver management ● Driver - Low level software component ● Driver operates as a delegate between upper layers and hardware
Operating system ● Win / OSX / Linux ● Embedded ○ Weird ones… In the bus ○ Mobile ■ Android ■ iOS ■ Windows Phone ■ BB, Tizen?
Engine core ● Support for components ○ Scripting ○ Graphics component ○ Input / Output component ● Initialize behaviour between components
Resource manager ● Getting data to the game ○ Asset manager ■ Loading data from HDD, Discs ○ Streaming system ■ Open world ● Open World vs Indoor
Rainbow Six: Siege
Middleware (Third Party SDKs) ● Nvidia PhysX ● Havok Animation ● Boost C++ ● Anything else?
https://www.dropbox. com/s/i9stetaw8qyp813/Screenshot %202015-04-09%2009.48.16.png? dl=0
SDK // Move sprite to position 50,10 in 2 seconds. auto moveTo = MoveTo::create(2, Vec2(50, 10)); mySprite1->runAction(moveTo); // trigger when you push down listener1->onTouchBegan = [](Touch* touch, Event* event){ // your code return true ; // if you are consuming it };
How? ● How to make a game ○ world ○ logic ○ graphics ○ sound ○ test! ○ Maintenance
Time For Questions!
Links ● http://www.valvesoftware.com/publications/2006/GDC2006_HL2DesignProcess.pdf ● http://www.technobuffalo.com/2015/03/17/the-last-guardians-trademark-application-filed-by-sony-again/ ● http://www.valvesoftware.com/publications/2008/GDC2008_StylizationWithAPurpose_TF2.pdf ● http://www.polycount.com/forum/showthread.php?t=148195 ● http://atomictiki.deviantart.com/journal/New-Lara-Croft-design-amp-Challenge-Results-263031433 ● http://www.newsarama.com/6030-pax-2010-portal-2-co-op-walkthrough-for-humans.html ● http://www.polycount.com/forum/showthread.php?t=103604&page=23 ● https://www.elance.com/samples/storyboards-halo-cinematic-trailer/129936259/ ● http://vignette3.wikia.nocookie.net/trollpasta/images/1/1c/50_layers_of_onions.jpg/revision/latest? cb=20131216190645 ● http://blogs-images.forbes.com/insertcoin/files/2014/06/rainbow-six-siege.jpg ● http://im.ziffdavisinternational.com/t/ign_ap/articlepage/g/grand-theft-auto-5-a-new-perspective/grand-theft-auto- 5-a-new-perspective_yfcy.1920.jpg
Recommend
More recommend