SlideShare a Scribd company logo
Data Massage Therapy:
Pipelines, SCons and 'SOCOM: Confrontation‘
November 18th 2008
Introduction

Who Are We? Who are you?
Introduction
Who Are We?

Dean Giberson:
•    Started out in 1999 as tool developer for 4 years working on several StarWars titles
•    Currently Sr. Tools & Pipeline Engineer at Slant Six Games
•    Specialist areas; data build management and pipelines, …
•    After a short period teaching and contracting he returned to professional game development working on Sports titles for 3 years
•    Credits:
        –    NBA Live 08 (2007) Xbox 360/PS3
        –    NBA Live 07 (2006) Xbox 360/PS22/XBox/PC
        –    NBA Live 06 (2005) PS2/XBox/Gamecube/PC
        –    Midway Arcade Treasures 2 (2004) Gamecube
        –    Rogue Squadron 3: Rebel Strike (2003) Gamecube
        –    Rogue Squadron 2: Rogue Leader (2001) Gamecube
        –    Battle for Naboo (2000) N64

Paul Martin:
•     Started out in the industry 1996 graphics programmer for PlayStation
•     Currently a Technical Director and one of the principals of Slant Six games
•     Specialist areas are in graphics rendering, special effects and data build pipelines.
•     Credits:
        –    SOCOM: Tactical Strike (2007) PSP, Slant Six Games
        –    Syphon Filter: Dark Mirror (2006) PSP, Sony Computer Entertainment America, Inc.
        –    Syphon Filter: The Omega Strain (2004) PS2, SCEA
        –    Sled Storm (2002) PS2, Electronic Arts, Inc.
        –    SSX (2000) PS2, Electronic Arts, Inc.
        –    Need for Speed III: Hot Pursuit (1998) PS1, Electronic Arts, Inc.
        –    [bunch of unreleased stuff prior to this…]
Introduction
Who Are We?

Slant Six Games – Intro:

• Slant Six Games is one of the largest video game
  development studios within the Vancouver game
  development hub. We were established in February
  2005 and specialize in developing games for the
  PlayStation 3 and PlayStation Portable.
• We currently have 110 full time staff and occupy
  20,000 square feet in our studio located at the mouth
  of Granville Island in Vancouver, British Columbia.
Introduction
Who Are We?

Slant Six Games – Our Games:

•   First project was the creation of the graphics rendering engine for Sony Computer Entertainment
    America’s (SCEA) Syphon Filter: Dark Mirror (developed by Sony Bend, Oregon).

•   Inaugural title, SOCOM: Tactical Strike, published by SCEA, in October 2007. Was subsequently named
    the Best PSP Multiplayer Experience at E3 2007 and in February 2008 it was awarded the Elan Award
    for the Best Handheld Game of the Year. To date it has sold over 400,000 copies worldwide. Also in
    February 2008 we were awarded the prestigious Elan Award for Best New Video Game Company.

•   Just completed development of our largest and most significant project to date, SOCOM: Confrontation,
    for the PS3, in late summer of 2008. SOCOM: Confrontation has been in production for just under two
    years and was one of the more highly anticipated titles of this fall.

•   Currently working on
     •   Shipping SOCOM: Confrontation in other worldwide regions
     •   Unannounced PSP title for SCEA which is scheduled for completion in June of 2009
     •   Expansion packs and other new downloadable content for SOCOM: Confrontation on PS3
     •   Another unannounced new concept game for PS3
Introduction
Who Are You?

• Programmers/Technical Artists/Bunch of other people,
  hopefully interested in how to build an efficient data build
  pipeline for current/next generation game content

• In the wrong room?
Data Build System Requirements
•   Fast!
•   Correct
•   Extensible
•   Debuggable
•   Asset management integration
Our Data Builder System
Features:

•   Dependency Tracking
•   Shared Build Cache
•   Tight integration with Perforce
•   Partial Builds (build only: Textures, Collision,
    World Descriptors, etc)

Built on top of Scons…
SCons
What is it?

• From SCons.org:
  SCons is an Open Source software construction tool—that is, a next-generation build tool.
  Think of SCons as an improved, cross-platform substitute for the classic Make utility with
  integrated functionality similar to autoconf/automake and compiler caches such as ccache.
  In short, SCons is an easier, more reliable and faster way to build software.


Where did it come from?

• Also from SCons.org:
  SCons began life as the ScCons build tool design which won the Software Carpentry SC
  Build competition in August 2000. That design was in turn based on the Cons software
  construction utility. This project has been renamed SCons to reflect that it is no longer
  directly connected with Software Carpentry (well, that, and to make it slightly easier to
  type...).
SCons
Why are we using it?

…back to Data Build System Requirements

•   Fast!
•   Correct
•   Extensible
•   Debuggable
•   Asset management integration
SCons
Pros:

•   Robust
•   Reliable
•   Rich Scripting Interface (Python!)
•   Shared Data Caching
•   Multi-processor support
SCons
Cons:

• Phase 1 dependency & job building can be
  slow
• Core built on non-trivial Python code
  • Can make non-standard extensions to the
    system tricky to implement (e.g. dependency
    insertion, dependency pruning)
SConstruct
What is it?

• Equivalent of a Makefile
• The input file that SCons uses to control the build
• A Python script. With a one main difference
   • Definition order of SCons builder functions, does not
     dictate execution order
   • Execution order of non-builder functions is as expected
• Two-step processing
   • Regular Python (non-SCons Builder) functions first
   • Then SCons builders invoked as deemed necessary by
     the dependency engine
SConstruct
Some usage examples:

• Texture processing
• SSG (wad/pak/zip/rx2/etc) processing
• Tool Target Scanner (examples)
Pretty It Up – Use a GUI!
Nature abhors a vacuum
Pretty It Up – Use a GUI!
Artists and Designers abhor a command-line interface
Pretty It Up – Use a GUI!
Undesirable       Desirable
Pretty It Up – Use a GUI!
Not all roses!
• Staged building (the graph problem)
• Maya
• Large trees have large dependency
  graphs
Not all roses! Staged building
• You can’t know what Maya files to build
  until you have scanned your level files.
• You can’t know what textures to process
  until you have scanned your Maya files.
• You don’t know what assets to place into
  you ZIP until you have everything else
  first.
Solution. Staged building
• We manually scanned the level files using
  Python XML
• Texture build can still be a problem
• ZIPs get rebuilt if there is any change
• We have alpha level code for staged
  building for automatic LOD generation, but
  it was not exercised enough before we
  changed LOD methods
Not all roses! Maya
• We use MBs as our source file format for
  3D art.
• You can only have one instance of Maya
  running (and keep it reliable).
• Maya can take 30 seconds to launch.
• Bottleneck!
Solution. Maya
• Going to use gzip MAs, and write a text
  scanner for texture links, or write a simple
  MB scanner for textures
• SN-DBS MayaBatch
• Stripping Maya’s default launch scripts can
  get ~3 second launches
• Still bottleneck!
Not all roses! Big tree
• Building the dependency tree for the whole
  game could take 1.5 minutes for all assets
• MD5 sum of many files can be slow
• Artists that only want to change one
  texture (a 2 second problem) should not
  have to wait on this
• But it works great for build servers
• Balance?
Solution. Big tree
• Internally trim the tree for some assets
  based on type
• ResourceBuilder tells SCons the sub
  portion of the tree the artist is interested in
  and we only build that graph
• New versions of SCons have the `--
  interactive’ flags to scan the tree once and
  let you run multiple commands on it
• Balance
Not all roses! Other platforms

• Make  XNA  Ant  Cmake  YABS
• All have similar problems
• SCons’ MD5 checking gives best results
  so far
• …and Python script, not <gripe> XML
  </gripe> 
The rebuild story
SOCOM: Confrontation
SOCOM: Confrontation
Some Stats:
• Source data total size: 200 Gb
• Target (PS3) data total size: 3 Gb
• World models for 1 world:49
• Unique prop models for 1 world: 167
• Prop instances for 1 world: 1901
• Unique textures for 1 world: 1209
• Lightmaps for 1 world: 1581 (x2 – day+night)
What Next?
•   Debugger
•   Staged building
•   Link to SN-DBS
•   Code?
References
• SCons: http://www.scons.org/
• Slant Six Games: http://slantsixgames.com
• SOCOM: Confrontation:
 http://www.us.playstation.com/PS3/Games/SOCOM_U_S_Navy_SEALs_Confrontation
Talk to Us!
Paul Martin:   paul@slantsixgames.com
Dean Giberson: dgiberson@slantsixgames.com

                  Slant Six Games
                      3rd Floor,
                1523 West 3rd Avenue,
                Vancouver, BC V6J 1J8


            http://www.slantsixgames.com
Bye For Now!

More Related Content

What's hot

Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Software
 
Server side game_development
Server side game_developmentServer side game_development
Server side game_development
Yekmer Simsek
 
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Software
 
Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019
Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019
Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019
Unity Technologies
 
ECS: Making the Entity Debugger - Unite LA
ECS: Making the Entity Debugger - Unite LAECS: Making the Entity Debugger - Unite LA
ECS: Making the Entity Debugger - Unite LA
Unity Technologies
 
Brewing Your Own Game Engie eng
Brewing Your Own Game Engie engBrewing Your Own Game Engie eng
Brewing Your Own Game Engie eng
Coconut Island
 
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersEast Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
Gerke Max Preussner
 
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
Novell
 
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
Gerke Max Preussner
 
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsEast Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsGerke Max Preussner
 
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...
Amazon Web Services
 
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
Gerke Max Preussner
 
Software Distribution
Software DistributionSoftware Distribution
Software Distribution
Dell World
 
How to be a distribution-friendly project
How to be a distribution-friendly projectHow to be a distribution-friendly project
How to be a distribution-friendly project
Donnie Berkholz
 
GDCE 2015: Blueprint Components to C++
GDCE 2015: Blueprint Components to C++GDCE 2015: Blueprint Components to C++
GDCE 2015: Blueprint Components to C++
Gerke Max Preussner
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Alan Forbes
 
Style & Design Principles 03 - Component-Based Entity Systems
Style & Design Principles 03 - Component-Based Entity SystemsStyle & Design Principles 03 - Component-Based Entity Systems
Style & Design Principles 03 - Component-Based Entity Systems
Nick Pruehs
 
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
Gerke Max Preussner
 
MongoDB as Search Engine Repository @ MongoTokyo2011
MongoDB as Search Engine Repository @ MongoTokyo2011MongoDB as Search Engine Repository @ MongoTokyo2011
MongoDB as Search Engine Repository @ MongoTokyo2011
Preferred Networks
 
Eight Rules for Making Your First Great Game
Eight Rules for Making Your First Great GameEight Rules for Making Your First Great Game
Eight Rules for Making Your First Great Game
Nick Pruehs
 

What's hot (20)

Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
Umbra Ignite 2015: Graham Wihlidal – Adapting a technology stream to ever-evo...
 
Server side game_development
Server side game_developmentServer side game_development
Server side game_development
 
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
Umbra Ignite 2015: Jérémy Virga – Dishonored 2 rendering engine architecture ...
 
Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019
Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019
Refresh what you know about AssetDatabase.Refresh()- Unite Copenhagen 2019
 
ECS: Making the Entity Debugger - Unite LA
ECS: Making the Entity Debugger - Unite LAECS: Making the Entity Debugger - Unite LA
ECS: Making the Entity Debugger - Unite LA
 
Brewing Your Own Game Engie eng
Brewing Your Own Game Engie engBrewing Your Own Game Engie eng
Brewing Your Own Game Engie eng
 
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for CodersEast Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
East Coast DevCon 2014: Programming in UE4 - A Quick Orientation for Coders
 
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
What's LUM Got To Do with It: Deployment Considerations for Linux User Manage...
 
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
West Coast DevCon 2014: Engine Overview - A Programmers Glimpse at UE4
 
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsEast Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
 
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...
 
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
West Coast DevCon 2014: Game Programming in UE4 - Game Framework & Sample Pro...
 
Software Distribution
Software DistributionSoftware Distribution
Software Distribution
 
How to be a distribution-friendly project
How to be a distribution-friendly projectHow to be a distribution-friendly project
How to be a distribution-friendly project
 
GDCE 2015: Blueprint Components to C++
GDCE 2015: Blueprint Components to C++GDCE 2015: Blueprint Components to C++
GDCE 2015: Blueprint Components to C++
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Style & Design Principles 03 - Component-Based Entity Systems
Style & Design Principles 03 - Component-Based Entity SystemsStyle & Design Principles 03 - Component-Based Entity Systems
Style & Design Principles 03 - Component-Based Entity Systems
 
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
West Coast DevCon 2014: Extensibility in UE4 - Customizing Your Games and the...
 
MongoDB as Search Engine Repository @ MongoTokyo2011
MongoDB as Search Engine Repository @ MongoTokyo2011MongoDB as Search Engine Repository @ MongoTokyo2011
MongoDB as Search Engine Repository @ MongoTokyo2011
 
Eight Rules for Making Your First Great Game
Eight Rules for Making Your First Great GameEight Rules for Making Your First Great Game
Eight Rules for Making Your First Great Game
 

Similar to Confrontation Pipeline and SCons

Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipe
slantsixgames
 
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
gamifi.cc
 
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo YueUGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
Jessica Tams
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You Think
Gorm Lai
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
Slide_N
 
Vido game and kinect
Vido game and kinectVido game and kinect
Vido game and kinect
Mohammed Abd El-Sattar
 
2004: Söldner - a Post Mortem
2004: Söldner - a Post Mortem2004: Söldner - a Post Mortem
2004: Söldner - a Post Mortem
Teut Weidemann
 
Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...
Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...
Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...
Jimmy Sieben
 
Igniting the Spark: Building Online Services for Borderlands 2
Igniting the Spark: Building Online Services for Borderlands 2Igniting the Spark: Building Online Services for Borderlands 2
Igniting the Spark: Building Online Services for Borderlands 2
Jimmy Sieben
 
God Of War : post mortem
God Of War : post mortemGod Of War : post mortem
God Of War : post mortem
Mustapha Tachouct
 
Cocos2d programming
Cocos2d programmingCocos2d programming
Cocos2d programming
Changwon National University
 
Game development -session on unity 3d
Game development -session on unity 3d Game development -session on unity 3d
Game development -session on unity 3d
Muhammad Maaz Irfan
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
Globant
 
Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engine
Michalis Kamburelis
 
Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011
Karsten Wysk
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
DevClub_lv
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JSFestUA
 
Rapid Game Development with RUby and Gosu – Ruby Manor 4
Rapid Game Development with RUby and Gosu – Ruby Manor 4Rapid Game Development with RUby and Gosu – Ruby Manor 4
Rapid Game Development with RUby and Gosu – Ruby Manor 4
benko
 
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionistDEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
Felipe Prado
 

Similar to Confrontation Pipeline and SCons (20)

Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipe
 
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
 
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo YueUGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
UGC In Game : A Brief History and How We Bring It To Mobile | Zhuo Yue
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You Think
 
XNAPresentation
XNAPresentationXNAPresentation
XNAPresentation
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
Vido game and kinect
Vido game and kinectVido game and kinect
Vido game and kinect
 
2004: Söldner - a Post Mortem
2004: Söldner - a Post Mortem2004: Söldner - a Post Mortem
2004: Söldner - a Post Mortem
 
Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...
Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...
Gaming in the Cloud: How Gearbox Software Uses Amazon Web Services to Reach M...
 
Igniting the Spark: Building Online Services for Borderlands 2
Igniting the Spark: Building Online Services for Borderlands 2Igniting the Spark: Building Online Services for Borderlands 2
Igniting the Spark: Building Online Services for Borderlands 2
 
God Of War : post mortem
God Of War : post mortemGod Of War : post mortem
God Of War : post mortem
 
Cocos2d programming
Cocos2d programmingCocos2d programming
Cocos2d programming
 
Game development -session on unity 3d
Game development -session on unity 3d Game development -session on unity 3d
Game development -session on unity 3d
 
Metodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en GamingMetodologías de desarrollo de software en Gaming
Metodologías de desarrollo de software en Gaming
 
Castle Game Engine and the joy of making and using a custom game engine
Castle Game Engine and the joy  of making and using a custom game engineCastle Game Engine and the joy  of making and using a custom game engine
Castle Game Engine and the joy of making and using a custom game engine
 
Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011Delta Engine @ CeBit 2011
Delta Engine @ CeBit 2011
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
 
Rapid Game Development with RUby and Gosu – Ruby Manor 4
Rapid Game Development with RUby and Gosu – Ruby Manor 4Rapid Game Development with RUby and Gosu – Ruby Manor 4
Rapid Game Development with RUby and Gosu – Ruby Manor 4
 
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionistDEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
 

More from slantsixgames

Ask the Producers Feb 8th
Ask the Producers Feb 8thAsk the Producers Feb 8th
Ask the Producers Feb 8thslantsixgames
 
Maximize Your Production Effort (Chinese)
Maximize Your Production Effort (Chinese)Maximize Your Production Effort (Chinese)
Maximize Your Production Effort (Chinese)
slantsixgames
 
SCons an Introduction
SCons an IntroductionSCons an Introduction
SCons an Introduction
slantsixgames
 
Confrontation Audio GDC 2009
Confrontation Audio GDC 2009Confrontation Audio GDC 2009
Confrontation Audio GDC 2009
slantsixgames
 
Audio SPU Presentation
Audio SPU PresentationAudio SPU Presentation
Audio SPU Presentation
slantsixgames
 
Collision Detection an Overview
Collision Detection an OverviewCollision Detection an Overview
Collision Detection an Overview
slantsixgames
 
Modern Graphics Pipeline Overview
Modern Graphics Pipeline OverviewModern Graphics Pipeline Overview
Modern Graphics Pipeline Overview
slantsixgames
 
PPU Optimisation Lesson
PPU Optimisation LessonPPU Optimisation Lesson
PPU Optimisation Lesson
slantsixgames
 
Event System Presentation
Event System PresentationEvent System Presentation
Event System Presentation
slantsixgames
 

More from slantsixgames (9)

Ask the Producers Feb 8th
Ask the Producers Feb 8thAsk the Producers Feb 8th
Ask the Producers Feb 8th
 
Maximize Your Production Effort (Chinese)
Maximize Your Production Effort (Chinese)Maximize Your Production Effort (Chinese)
Maximize Your Production Effort (Chinese)
 
SCons an Introduction
SCons an IntroductionSCons an Introduction
SCons an Introduction
 
Confrontation Audio GDC 2009
Confrontation Audio GDC 2009Confrontation Audio GDC 2009
Confrontation Audio GDC 2009
 
Audio SPU Presentation
Audio SPU PresentationAudio SPU Presentation
Audio SPU Presentation
 
Collision Detection an Overview
Collision Detection an OverviewCollision Detection an Overview
Collision Detection an Overview
 
Modern Graphics Pipeline Overview
Modern Graphics Pipeline OverviewModern Graphics Pipeline Overview
Modern Graphics Pipeline Overview
 
PPU Optimisation Lesson
PPU Optimisation LessonPPU Optimisation Lesson
PPU Optimisation Lesson
 
Event System Presentation
Event System PresentationEvent System Presentation
Event System Presentation
 

Recently uploaded

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 

Recently uploaded (20)

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 

Confrontation Pipeline and SCons

  • 1. Data Massage Therapy: Pipelines, SCons and 'SOCOM: Confrontation‘ November 18th 2008
  • 3. Introduction Who Are We? Dean Giberson: • Started out in 1999 as tool developer for 4 years working on several StarWars titles • Currently Sr. Tools & Pipeline Engineer at Slant Six Games • Specialist areas; data build management and pipelines, … • After a short period teaching and contracting he returned to professional game development working on Sports titles for 3 years • Credits: – NBA Live 08 (2007) Xbox 360/PS3 – NBA Live 07 (2006) Xbox 360/PS22/XBox/PC – NBA Live 06 (2005) PS2/XBox/Gamecube/PC – Midway Arcade Treasures 2 (2004) Gamecube – Rogue Squadron 3: Rebel Strike (2003) Gamecube – Rogue Squadron 2: Rogue Leader (2001) Gamecube – Battle for Naboo (2000) N64 Paul Martin: • Started out in the industry 1996 graphics programmer for PlayStation • Currently a Technical Director and one of the principals of Slant Six games • Specialist areas are in graphics rendering, special effects and data build pipelines. • Credits: – SOCOM: Tactical Strike (2007) PSP, Slant Six Games – Syphon Filter: Dark Mirror (2006) PSP, Sony Computer Entertainment America, Inc. – Syphon Filter: The Omega Strain (2004) PS2, SCEA – Sled Storm (2002) PS2, Electronic Arts, Inc. – SSX (2000) PS2, Electronic Arts, Inc. – Need for Speed III: Hot Pursuit (1998) PS1, Electronic Arts, Inc. – [bunch of unreleased stuff prior to this…]
  • 4. Introduction Who Are We? Slant Six Games – Intro: • Slant Six Games is one of the largest video game development studios within the Vancouver game development hub. We were established in February 2005 and specialize in developing games for the PlayStation 3 and PlayStation Portable. • We currently have 110 full time staff and occupy 20,000 square feet in our studio located at the mouth of Granville Island in Vancouver, British Columbia.
  • 5. Introduction Who Are We? Slant Six Games – Our Games: • First project was the creation of the graphics rendering engine for Sony Computer Entertainment America’s (SCEA) Syphon Filter: Dark Mirror (developed by Sony Bend, Oregon). • Inaugural title, SOCOM: Tactical Strike, published by SCEA, in October 2007. Was subsequently named the Best PSP Multiplayer Experience at E3 2007 and in February 2008 it was awarded the Elan Award for the Best Handheld Game of the Year. To date it has sold over 400,000 copies worldwide. Also in February 2008 we were awarded the prestigious Elan Award for Best New Video Game Company. • Just completed development of our largest and most significant project to date, SOCOM: Confrontation, for the PS3, in late summer of 2008. SOCOM: Confrontation has been in production for just under two years and was one of the more highly anticipated titles of this fall. • Currently working on • Shipping SOCOM: Confrontation in other worldwide regions • Unannounced PSP title for SCEA which is scheduled for completion in June of 2009 • Expansion packs and other new downloadable content for SOCOM: Confrontation on PS3 • Another unannounced new concept game for PS3
  • 6. Introduction Who Are You? • Programmers/Technical Artists/Bunch of other people, hopefully interested in how to build an efficient data build pipeline for current/next generation game content • In the wrong room?
  • 7. Data Build System Requirements • Fast! • Correct • Extensible • Debuggable • Asset management integration
  • 8. Our Data Builder System Features: • Dependency Tracking • Shared Build Cache • Tight integration with Perforce • Partial Builds (build only: Textures, Collision, World Descriptors, etc) Built on top of Scons…
  • 9. SCons What is it? • From SCons.org: SCons is an Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. In short, SCons is an easier, more reliable and faster way to build software. Where did it come from? • Also from SCons.org: SCons began life as the ScCons build tool design which won the Software Carpentry SC Build competition in August 2000. That design was in turn based on the Cons software construction utility. This project has been renamed SCons to reflect that it is no longer directly connected with Software Carpentry (well, that, and to make it slightly easier to type...).
  • 10. SCons Why are we using it? …back to Data Build System Requirements • Fast! • Correct • Extensible • Debuggable • Asset management integration
  • 11. SCons Pros: • Robust • Reliable • Rich Scripting Interface (Python!) • Shared Data Caching • Multi-processor support
  • 12. SCons Cons: • Phase 1 dependency & job building can be slow • Core built on non-trivial Python code • Can make non-standard extensions to the system tricky to implement (e.g. dependency insertion, dependency pruning)
  • 13. SConstruct What is it? • Equivalent of a Makefile • The input file that SCons uses to control the build • A Python script. With a one main difference • Definition order of SCons builder functions, does not dictate execution order • Execution order of non-builder functions is as expected • Two-step processing • Regular Python (non-SCons Builder) functions first • Then SCons builders invoked as deemed necessary by the dependency engine
  • 14. SConstruct Some usage examples: • Texture processing • SSG (wad/pak/zip/rx2/etc) processing • Tool Target Scanner (examples)
  • 15. Pretty It Up – Use a GUI! Nature abhors a vacuum
  • 16. Pretty It Up – Use a GUI! Artists and Designers abhor a command-line interface
  • 17. Pretty It Up – Use a GUI! Undesirable Desirable
  • 18. Pretty It Up – Use a GUI!
  • 19. Not all roses! • Staged building (the graph problem) • Maya • Large trees have large dependency graphs
  • 20. Not all roses! Staged building • You can’t know what Maya files to build until you have scanned your level files. • You can’t know what textures to process until you have scanned your Maya files. • You don’t know what assets to place into you ZIP until you have everything else first.
  • 21. Solution. Staged building • We manually scanned the level files using Python XML • Texture build can still be a problem • ZIPs get rebuilt if there is any change • We have alpha level code for staged building for automatic LOD generation, but it was not exercised enough before we changed LOD methods
  • 22. Not all roses! Maya • We use MBs as our source file format for 3D art. • You can only have one instance of Maya running (and keep it reliable). • Maya can take 30 seconds to launch. • Bottleneck!
  • 23. Solution. Maya • Going to use gzip MAs, and write a text scanner for texture links, or write a simple MB scanner for textures • SN-DBS MayaBatch • Stripping Maya’s default launch scripts can get ~3 second launches • Still bottleneck!
  • 24. Not all roses! Big tree • Building the dependency tree for the whole game could take 1.5 minutes for all assets • MD5 sum of many files can be slow • Artists that only want to change one texture (a 2 second problem) should not have to wait on this • But it works great for build servers • Balance?
  • 25. Solution. Big tree • Internally trim the tree for some assets based on type • ResourceBuilder tells SCons the sub portion of the tree the artist is interested in and we only build that graph • New versions of SCons have the `-- interactive’ flags to scan the tree once and let you run multiple commands on it • Balance
  • 26. Not all roses! Other platforms • Make XNA Ant Cmake YABS • All have similar problems • SCons’ MD5 checking gives best results so far • …and Python script, not <gripe> XML </gripe> 
  • 29. SOCOM: Confrontation Some Stats: • Source data total size: 200 Gb • Target (PS3) data total size: 3 Gb • World models for 1 world:49 • Unique prop models for 1 world: 167 • Prop instances for 1 world: 1901 • Unique textures for 1 world: 1209 • Lightmaps for 1 world: 1581 (x2 – day+night)
  • 30. What Next? • Debugger • Staged building • Link to SN-DBS • Code?
  • 31. References • SCons: http://www.scons.org/ • Slant Six Games: http://slantsixgames.com • SOCOM: Confrontation: http://www.us.playstation.com/PS3/Games/SOCOM_U_S_Navy_SEALs_Confrontation
  • 32. Talk to Us! Paul Martin: paul@slantsixgames.com Dean Giberson: dgiberson@slantsixgames.com Slant Six Games 3rd Floor, 1523 West 3rd Avenue, Vancouver, BC V6J 1J8 http://www.slantsixgames.com