SlideShare una empresa de Scribd logo
1 de 67
Maximize Your Production Effort
   “Supersize your Production Pipe!”

      Efficient Content Authoring Tools and Pipeline
            For Inter-studio Asset Development
Introduction

•   Who am I?
•   Who are Slant Six Games?
•   Who are you?
Paul Simon Martin

•   Director of Technology, Slant Six Games
•   14 years videogame industry experience
•   Slant Six Games („05-Present):
     •   Technical Direction: BigBrain Game Engine
     •   AAA-quality, cross-platform engine
     •   Xbox 360, PS3 & Windows
     •   Full suite of content authoring tools
     •   Data transformation pipelines
     •   Automated build, test & publish environments
•   Sony Computer Entertainment America         („00-‟05):
     •   Developed: PS2 low-level & graphics engine (Syphon Filter)
     •   Developed: PSP low-level & graphics prototype engine (Syphon
         Filter)
•   Prior   („96-‟00):
     •   Graphics engine & tools for PS1, Dreamcast & Windows
Slant Six Games

•   Founded in 2005
•   Products:
    •   Unannounced Title – PS3/Xbox 360/Windows 2010
    •   SOCOM U.S. Navy Seals Fireteam Bravo 3 – PSP 2010
    •   SOCOM Confrontation – PS3 2008 and Cold Front DLC 2009
    •   SOCOM U.S. Navy Seals Tactical Strike – PSP 2007
    •   Syphon Filter: Dark Mirror - PSP 2006 – Rendering Engine

•   Awards:
    •   BC Business Magazine - Best of BC Top 10 Companies to work for in British Columbia - 2009
    •   Elan Award – Best New Game Company – 2008
    •   SOCOM US Navy Seals: Tactical Strike
    •   Elan Nominated - Best Hand-Held Game of the Year - 2008
    •   BAFTA Nominated - Best Strategy Game - 2009
    •   E3 Best PSP Multiplayer Experience -2007

•   Technology
    •   AAA class multi-platform (PC, XBOX 360, PS3) Proprietary Game Engine
    •   Proprietary Rendering and Animation Engines , Pipelines and Toolsets
    •   PSP proprietary Engine and Toolsets
Outsourcing @ Slant Six Games


  •   Started outsourcing art content in 2007
  •   Locally only at first…
  •   Then China
  •   Currently working with
       • 2+ partners in China
       • 1 partner in Canada
You are…
Glossary of Terms
•   Source Content:
    •   Any unoptimized game asset file that has not yet gone through
        data conversion
    •   E.g. *.ma, *.dds, *.tga, *.csv

•   Game Data:
    •   Data file that is ready to be loaded by the game
    •   Usually optimized for platform(s)

•   Authoring Tools:
    •   A tool (usually residing on PC) used to author source content
    •   E.g. Maya, Photoshop, CustomStudioTool

•   Data Pipeline:
    •   A set of tools & scripts that are used to convert Source Content
         Game Data
    •   Typically driven via a build engine
Glossary of Icons

•   Slides
    •   Online content
        (will discuss during this talk)

    •   Offline content
        (either hidden slide or will gloss over)



•   Suggestions
    •   Practices that work well for us
        (TODO: xxx)

    •   Things we learned the hard way
        (TOAVOID: xxx)
Rewind…
The Evolution of Production
               Circa 1980 AD


•   Part 1: The Programmer
The Evolution of Production
                 Circa 1985 AD


•   Part 2: The Artist
The Evolution of Production
                Circa 1994 AD


•   Part 3: Somebody hired a Game Designer
The Evolution of Production
                Circa 1998 AD


•   Part 3.5: Artist & Designer Spanking –
    popularity diminished
The Evolution of Production
              Circa 2000 AD


•   Part 4: Can‟t we all just get along?
The Evolution of Production
                    Current Day


•   Studios value their artists and designers
•   Artists and designers:
     • Build The Game
•   Programmers:
     • Support artists and designers
     • Implement core gameplay that can‟t be
       data-driven
“Your Studio is as good
                 as your Tools”

•   Paul M, circa 2003
•   “Tools”- Authoring, Infrastructure, Pipeline, Packaging
•   Today‟s games must have massively efficient runtime
     => Bake as much optimization into data as possible
•   Games built by production teams
     • Faster workflow => more content
     • Faster workflow => more iteration = polish = quality
Iterate!
Supersize Your Production Pipe?
Supersize your Production Pipe
•   Production pipe (prə duk′s̸hən, prō- pÄ«p):
    •   “The process that generates content for your games”
    •   narrow  constrictive  poor flow
    •   wide  dilative  good flow
    •   Considerations:
         • Internal team process / workflow
         • External team process / workflow
         • Authoring tools / workflow
Supersize your Production Pipe
      •   Super-size          (so̵̅o̅′pər sīz′):
          •   “Increase capacity”
          •   “Make bigger”
          •     In order to:
               •   Increase flow
Gotta Have Flow!
Latency – The Silent Killer

•   Latency: A measure of time delay
    experienced
    in a system
•   High latency = Low flow
•   Identify maximum iteration time
•   Identify latency
•   Derive a plan
•   Re-evaluate
Let’s Begin…
“The Production Pipeline”

  •   Infrastructure
  •   Content Authoring
  •   Data Conversion
  •   Game Runtime
  •   Game / Asset Packaging
  •   Game / Asset Sharing
A Typical Scenario

•   EvilThingSpawnTriggerVolume
Old School
1.       Trigger volume authored/tweaked
         in the level editor
2.       User hits the “export” button
3.       User runs a script to re-export the
         entire world




                                                15 mins
     •     textures converted, visibility map
           compiled, navigation mesh
           generated, …
4.       User waits 10+ mins
5.       User launches the game
6.       It takes 5 mins to load
7.       User runs player character from
         level start -> test area
8.       Volume was too big/too small? Try
         again, back to step 1.
Much Better
1.       Trigger volume authored/tweaked
         in the level editor
2.       User hits the “save” button
3.       The build infrastructure detects a
         file change




                                                    5-15 secs
     •     Triggers fast asset conversion for the
           new trigger volume alone
     •     Signals (already running) game
           there is a change
     •     Game hot-loads new volume and
           associated scripts
     •     Player character (still) in test
           location
4.       Volume too big/too small? Back to
         step 1.
Author vs Tweak

•   Author:
    •   Addition/deletion of something new
    •   Latency: 1-30 seconds
•   Tweak:
    •   Movement or property change of
        something existing
    •   Latency: < 5 seconds
What Happens Next…

Post-iteration, user commits changes…
1.  User hits “commit” button           User involvement
                                        ends here / moves on
2.  New level data committed to         to new task
    asset depot
3.  Build/Test Server (BTS) detects a change
    and begins asset conversion
4.  BTS launches an automated test of the game
    with new asset
5.  All happy? BTS sends user a confirmation
    email
6.  Problem? BTS sends user an email with
    relevant info
Infrastructure [IF]
Infrastructure


•   Asset management
•   Automated building
•   Automated testing
•   Automated metrics
    reporting
•   Process analysis
Infrastructure – Asset
              Management

•   Revision control
    •   Perforce
    •   Subversion/GIT/Mercurial
    •   Alienbrain
    •   Homegrown solution
•   Meta-Tagging (more on this
    later…)
•   Error checking & reporting
    (as early as possible!)
Infrastructure –
Automated Building
Infrastructure – Automated
          Testing
Infrastructure – Automated
          Metrics
Infrastructure - Analysis

                    Sharing
                    Boundary




       Internal +   Internal
       External     Only
Infrastructure - Sharing Tools

 •   Which to share and why?
     •   Remember that dotted „sharing‟ line a few
         slides ago…
 •   Workflow for sharing resultant data assets
 •   Tool & data versioning
     •   Developer studio tool versions usually more
         recent than remote studio‟s. So…
     •   Flexible runtime or…
     •   Asset upgrade process
Infrastructure - Analysis
Content Authoring [CA]
Content Authoring
Content Authoring

•   Intuitive UI
    •   Also, mirror existing commercial tools key
        bindings & shortcuts (Maya, Photoshop, …)
•   Consistent UI
•   Close to Zero-iteration time
    •   The 5 Second Rule
    •   Ideally in-game/in-viewer
    •   Or in tool viewport
Organizing Assets
•   By meta-tag     (e.g. iTunes)
    •   Requires implementation effort
    •   Tends towards poor file management
•   By directory    (e.g. Windows)
    •   Tough to relocate
•   Find a balance
    •   <= 200 tagged items per folder
    •   Disallow tags defined by user
Tracking Assets
•   Tracking software/tools
    •   Hansoft
    •   Filemaker Pro
    •   Excel
•   Consistent language
    •   Normal map change
    •   Mesh change
    •   Detail change…
Budgets and Metrics

•   Establish „Cost Scores‟ for all assets
•   Find a currency for each asset type
    •   E.g.
         •   Filesize (Kilobytes)
         •   Dimensions (pixels wide/pixels tall/pixels deep)
         •   Runtime cost (GPU cycles or even # lines of code!)
•   Allow users to evaluate the total cost of a
    scene
•   Document currencies for outsource
    partners
•   Document budgets in asset tracker when
    outsourcing
Budgets and Metrics
Data Conversion [DC]
Data Conversion

•   DOS Batch files are evil!
    •   Limited functionality
    •   Poor scripting language
    •   Slow to execute
    •   No data dependency checking =>
        each build takes as long as the
        previous
    •   Hard to debug
Data Conversion

•   Many better options available:
    •   Scons (we like this )
    •   MSBuild
    •   Ant/NAnt
    •   Jam
    •   Make
Data Conversion


•   Error Checking:
    •   As much as possible
    •   Report in a timely manner
         •   Often convenient to check for missing assets in
             data conversion pipe but…
         •   Try to prevent errors getting this far
         •   Better to report errors at authoring time
    •   Report errors clearly!
Game Runtime [GR]
Engine Considerations

•   Middleware:
    •   Not inherently evil    but don‟t rush into it
    •   Consider: Tools authoring process (identify any latency!)
    •   Consider: Interoperability with your runtime
    •   Consider: Integration with your tools & data
        pipeline
    •   Consider: Support?
    •   Consider: Source code?
Middleware @ Slant 6

  Collision, rigid body physics, ragdoll

  Audio asset management, audio runtime

  Low-level networking

  Maya export via Fcollada


  Mesh LoD
Engine Considerations

•   Live update:
    •   Tuning variables
    •   Object position/scale/rotation
    •   Object creation/deletion
    •   Object refresh
•   Live variable introspection/reflection
    •   Game variable state reflected in
        authoring tools
Game and Asset Packaging [AP]
Game/Asset Packaging


•   Which format?
     •   MSI / ZIP / RAR
     •   PSN package
     •   XBL package
•   Identify configuration complexity
•   Automate!
Game and Asset Sharing [AS]
Game/Asset Sharing

•   Shared Server
    •   Perforce + P4 Proxy
    •   Visual SourceSafe + SourceOffsite
•   Package Drop
    •   FTP
    •   Aspera fasp™
    •   HDD Courier
•   Carrier pigeon?
Asset Sharing – P4 Proxy
Asset Sharing – Package Drop
FTP/Aspera fasp™
Asset Sharing – Package Drops


 •   Problem:
     •   Long build process for packages
     •   Usually commence late in the work day
     •   Someone needs to work late!
 •   Solution:
     •   Automate the package shipping!
In Summary
Don’t


•   Let production process evolve on its own
•   Always prioritize game features over tools
    & workflow improvements
•   Ignore your production team‟s workflow
    requests
•   Underestimate management effort for
    outsourcing
Do
•   Identify latency in your production pipeline
•   Automate as much as possible
•   Have regular „asset authoring priorities‟
    meetings
•   Hire an army of tools engineers!
•   Create an outsourcing plan
•   Treat outsourcing partners like part of the
    team
•   Regular status meetings with outsourcing
    partners
•   MAXIMIZE YOUR PRODUCTION PIPE!
Talk to me...
Q&A

Más contenido relacionado

La actualidad más candente

The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012
Jan Jongboom
 
DockerCon SF 2015: Maintaining the official node.js docker image
DockerCon SF 2015: Maintaining the official node.js docker imageDockerCon SF 2015: Maintaining the official node.js docker image
DockerCon SF 2015: Maintaining the official node.js docker image
Docker, Inc.
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
Ulrich Krause
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week India
exortech
 

La actualidad más candente (20)

7 Ways to Optimize Hudson in Production
7 Ways to Optimize Hudson in Production7 Ways to Optimize Hudson in Production
7 Ways to Optimize Hudson in Production
 
Hudson at FISL 2009
Hudson at FISL 2009Hudson at FISL 2009
Hudson at FISL 2009
 
The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012The Architect Way - JSCamp.asia 2012
The Architect Way - JSCamp.asia 2012
 
Hudson: Your robotic butler
Hudson: Your robotic butlerHudson: Your robotic butler
Hudson: Your robotic butler
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
Inventory Tips & Tricks
Inventory Tips & TricksInventory Tips & Tricks
Inventory Tips & Tricks
 
DockerCon SF 2015: Maintaining the official node.js docker image
DockerCon SF 2015: Maintaining the official node.js docker imageDockerCon SF 2015: Maintaining the official node.js docker image
DockerCon SF 2015: Maintaining the official node.js docker image
 
Troubleshooting K1000
Troubleshooting K1000Troubleshooting K1000
Troubleshooting K1000
 
DockerCon SF 2015: Maintaining the Official Node.js Docker Image
DockerCon SF 2015: Maintaining the Official Node.js Docker ImageDockerCon SF 2015: Maintaining the Official Node.js Docker Image
DockerCon SF 2015: Maintaining the Official Node.js Docker Image
 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
 
Game Programming 05 - Development Tools
Game Programming 05 - Development ToolsGame Programming 05 - Development Tools
Game Programming 05 - Development Tools
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week India
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing Infra
 
From Unity3D to Unreal Engine 4
From Unity3D to Unreal Engine 4From Unity3D to Unreal Engine 4
From Unity3D to Unreal Engine 4
 
Large scale automation with jenkins
Large scale automation with jenkinsLarge scale automation with jenkins
Large scale automation with jenkins
 
Jenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of JenkinsJenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of Jenkins
 
(ATS3-DEV02) Scripting with .NET Assemblies in Symyx Notebook
(ATS3-DEV02) Scripting with .NET Assemblies in Symyx Notebook(ATS3-DEV02) Scripting with .NET Assemblies in Symyx Notebook
(ATS3-DEV02) Scripting with .NET Assemblies in Symyx Notebook
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
Securing jenkins
Securing jenkinsSecuring jenkins
Securing jenkins
 

Similar a Maximize Your Production Effort (English)

Similar a Maximize Your Production Effort (English) (20)

Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipe
 
De Re PlayStation Vita
De Re PlayStation VitaDe Re PlayStation Vita
De Re PlayStation Vita
 
Inside the IT Territory game server / Mark Lokshin (IT Territory)
Inside the IT Territory game server / Mark Lokshin (IT Territory)Inside the IT Territory game server / Mark Lokshin (IT Territory)
Inside the IT Territory game server / Mark Lokshin (IT Territory)
 
Brewing Your Own Game Engie eng
Brewing Your Own Game Engie engBrewing Your Own Game Engie eng
Brewing Your Own Game Engie eng
 
Working Well Together: How to Keep High-end Game Development Teams Productive
Working Well Together: How to Keep High-end Game Development Teams ProductiveWorking Well Together: How to Keep High-end Game Development Teams Productive
Working Well Together: How to Keep High-end Game Development Teams Productive
 
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
 
Massively Social != Massively Multiplayer
Massively Social != Massively MultiplayerMassively Social != Massively Multiplayer
Massively Social != Massively Multiplayer
 
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...
 
Unity 3D VS your team
Unity 3D VS your teamUnity 3D VS your team
Unity 3D VS your team
 
God Of War : post mortem
God Of War : post mortemGod Of War : post mortem
God Of War : post mortem
 
Five Cliches of Online Game Development
Five Cliches of Online Game DevelopmentFive Cliches of Online Game Development
Five Cliches of Online Game Development
 
Designing a Highly Available Environment Using Methods of Modern IT Infrastru...
Designing a Highly Available Environment Using Methods of Modern IT Infrastru...Designing a Highly Available Environment Using Methods of Modern IT Infrastru...
Designing a Highly Available Environment Using Methods of Modern IT Infrastru...
 
2004: Söldner - a Post Mortem
2004: Söldner - a Post Mortem2004: Söldner - a Post Mortem
2004: Söldner - a Post Mortem
 
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
GDC Europe 2014: Unreal Engine 4 for Programmers - Lessons Learned & Things t...
 
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
GDC 2010 - A Dynamic Component Architecture for High Performance Gameplay - M...
 
From Web to Mobile with Stage 3D
From Web to Mobile with Stage 3DFrom Web to Mobile with Stage 3D
From Web to Mobile with Stage 3D
 
Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015
 
Game development -session on unity 3d
Game development -session on unity 3d Game development -session on unity 3d
Game development -session on unity 3d
 
Creating great Unity games for Windows 10 - Part 1
Creating great Unity games for Windows 10 - Part 1Creating great Unity games for Windows 10 - Part 1
Creating great Unity games for Windows 10 - Part 1
 
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
 

Más de slantsixgames

Ask the Producers Feb 8th
Ask the Producers Feb 8thAsk the Producers Feb 8th
Ask the Producers Feb 8th
slantsixgames
 

Más de 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
 

Último

Último (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Maximize Your Production Effort (English)

  • 1.
  • 2. Maximize Your Production Effort “Supersize your Production Pipe!” Efficient Content Authoring Tools and Pipeline For Inter-studio Asset Development
  • 3. Introduction • Who am I? • Who are Slant Six Games? • Who are you?
  • 4. Paul Simon Martin • Director of Technology, Slant Six Games • 14 years videogame industry experience • Slant Six Games („05-Present): • Technical Direction: BigBrain Game Engine • AAA-quality, cross-platform engine • Xbox 360, PS3 & Windows • Full suite of content authoring tools • Data transformation pipelines • Automated build, test & publish environments • Sony Computer Entertainment America („00-‟05): • Developed: PS2 low-level & graphics engine (Syphon Filter) • Developed: PSP low-level & graphics prototype engine (Syphon Filter) • Prior („96-‟00): • Graphics engine & tools for PS1, Dreamcast & Windows
  • 5. Slant Six Games • Founded in 2005 • Products: • Unannounced Title – PS3/Xbox 360/Windows 2010 • SOCOM U.S. Navy Seals Fireteam Bravo 3 – PSP 2010 • SOCOM Confrontation – PS3 2008 and Cold Front DLC 2009 • SOCOM U.S. Navy Seals Tactical Strike – PSP 2007 • Syphon Filter: Dark Mirror - PSP 2006 – Rendering Engine • Awards: • BC Business Magazine - Best of BC Top 10 Companies to work for in British Columbia - 2009 • Elan Award – Best New Game Company – 2008 • SOCOM US Navy Seals: Tactical Strike • Elan Nominated - Best Hand-Held Game of the Year - 2008 • BAFTA Nominated - Best Strategy Game - 2009 • E3 Best PSP Multiplayer Experience -2007 • Technology • AAA class multi-platform (PC, XBOX 360, PS3) Proprietary Game Engine • Proprietary Rendering and Animation Engines , Pipelines and Toolsets • PSP proprietary Engine and Toolsets
  • 6. Outsourcing @ Slant Six Games • Started outsourcing art content in 2007 • Locally only at first… • Then China • Currently working with • 2+ partners in China • 1 partner in Canada
  • 8. Glossary of Terms • Source Content: • Any unoptimized game asset file that has not yet gone through data conversion • E.g. *.ma, *.dds, *.tga, *.csv • Game Data: • Data file that is ready to be loaded by the game • Usually optimized for platform(s) • Authoring Tools: • A tool (usually residing on PC) used to author source content • E.g. Maya, Photoshop, CustomStudioTool • Data Pipeline: • A set of tools & scripts that are used to convert Source Content  Game Data • Typically driven via a build engine
  • 9. Glossary of Icons • Slides • Online content (will discuss during this talk) • Offline content (either hidden slide or will gloss over) • Suggestions • Practices that work well for us (TODO: xxx) • Things we learned the hard way (TOAVOID: xxx)
  • 11. The Evolution of Production Circa 1980 AD • Part 1: The Programmer
  • 12. The Evolution of Production Circa 1985 AD • Part 2: The Artist
  • 13. The Evolution of Production Circa 1994 AD • Part 3: Somebody hired a Game Designer
  • 14. The Evolution of Production Circa 1998 AD • Part 3.5: Artist & Designer Spanking – popularity diminished
  • 15. The Evolution of Production Circa 2000 AD • Part 4: Can‟t we all just get along?
  • 16. The Evolution of Production Current Day • Studios value their artists and designers • Artists and designers: • Build The Game • Programmers: • Support artists and designers • Implement core gameplay that can‟t be data-driven
  • 17. “Your Studio is as good as your Tools” • Paul M, circa 2003 • “Tools”- Authoring, Infrastructure, Pipeline, Packaging • Today‟s games must have massively efficient runtime => Bake as much optimization into data as possible • Games built by production teams • Faster workflow => more content • Faster workflow => more iteration = polish = quality
  • 20. Supersize your Production Pipe • Production pipe (prə duk′s̸hən, prō- pÄ«p): • “The process that generates content for your games” • narrow  constrictive  poor flow • wide  dilative  good flow • Considerations: • Internal team process / workflow • External team process / workflow • Authoring tools / workflow
  • 21. Supersize your Production Pipe • Super-size (so̵̅o̅′pər sīz′): • “Increase capacity” • “Make bigger” • In order to: • Increase flow
  • 23. Latency – The Silent Killer • Latency: A measure of time delay experienced in a system • High latency = Low flow • Identify maximum iteration time • Identify latency • Derive a plan • Re-evaluate
  • 25. “The Production Pipeline” • Infrastructure • Content Authoring • Data Conversion • Game Runtime • Game / Asset Packaging • Game / Asset Sharing
  • 26. A Typical Scenario • EvilThingSpawnTriggerVolume
  • 27. Old School 1. Trigger volume authored/tweaked in the level editor 2. User hits the “export” button 3. User runs a script to re-export the entire world 15 mins • textures converted, visibility map compiled, navigation mesh generated, … 4. User waits 10+ mins 5. User launches the game 6. It takes 5 mins to load 7. User runs player character from level start -> test area 8. Volume was too big/too small? Try again, back to step 1.
  • 28. Much Better 1. Trigger volume authored/tweaked in the level editor 2. User hits the “save” button 3. The build infrastructure detects a file change 5-15 secs • Triggers fast asset conversion for the new trigger volume alone • Signals (already running) game there is a change • Game hot-loads new volume and associated scripts • Player character (still) in test location 4. Volume too big/too small? Back to step 1.
  • 29. Author vs Tweak • Author: • Addition/deletion of something new • Latency: 1-30 seconds • Tweak: • Movement or property change of something existing • Latency: < 5 seconds
  • 30. What Happens Next… Post-iteration, user commits changes… 1. User hits “commit” button User involvement ends here / moves on 2. New level data committed to to new task asset depot 3. Build/Test Server (BTS) detects a change and begins asset conversion 4. BTS launches an automated test of the game with new asset 5. All happy? BTS sends user a confirmation email 6. Problem? BTS sends user an email with relevant info
  • 32. Infrastructure • Asset management • Automated building • Automated testing • Automated metrics reporting • Process analysis
  • 33. Infrastructure – Asset Management • Revision control • Perforce • Subversion/GIT/Mercurial • Alienbrain • Homegrown solution • Meta-Tagging (more on this later…) • Error checking & reporting (as early as possible!)
  • 37. Infrastructure - Analysis Sharing Boundary Internal + Internal External Only
  • 38. Infrastructure - Sharing Tools • Which to share and why? • Remember that dotted „sharing‟ line a few slides ago… • Workflow for sharing resultant data assets • Tool & data versioning • Developer studio tool versions usually more recent than remote studio‟s. So… • Flexible runtime or… • Asset upgrade process
  • 42. Content Authoring • Intuitive UI • Also, mirror existing commercial tools key bindings & shortcuts (Maya, Photoshop, …) • Consistent UI • Close to Zero-iteration time • The 5 Second Rule • Ideally in-game/in-viewer • Or in tool viewport
  • 43. Organizing Assets • By meta-tag (e.g. iTunes) • Requires implementation effort • Tends towards poor file management • By directory (e.g. Windows) • Tough to relocate • Find a balance • <= 200 tagged items per folder • Disallow tags defined by user
  • 44. Tracking Assets • Tracking software/tools • Hansoft • Filemaker Pro • Excel • Consistent language • Normal map change • Mesh change • Detail change…
  • 45. Budgets and Metrics • Establish „Cost Scores‟ for all assets • Find a currency for each asset type • E.g. • Filesize (Kilobytes) • Dimensions (pixels wide/pixels tall/pixels deep) • Runtime cost (GPU cycles or even # lines of code!) • Allow users to evaluate the total cost of a scene • Document currencies for outsource partners • Document budgets in asset tracker when outsourcing
  • 47.
  • 49. Data Conversion • DOS Batch files are evil! • Limited functionality • Poor scripting language • Slow to execute • No data dependency checking => each build takes as long as the previous • Hard to debug
  • 50. Data Conversion • Many better options available: • Scons (we like this ) • MSBuild • Ant/NAnt • Jam • Make
  • 51. Data Conversion • Error Checking: • As much as possible • Report in a timely manner • Often convenient to check for missing assets in data conversion pipe but… • Try to prevent errors getting this far • Better to report errors at authoring time • Report errors clearly!
  • 53. Engine Considerations • Middleware: • Not inherently evil but don‟t rush into it • Consider: Tools authoring process (identify any latency!) • Consider: Interoperability with your runtime • Consider: Integration with your tools & data pipeline • Consider: Support? • Consider: Source code?
  • 54. Middleware @ Slant 6 Collision, rigid body physics, ragdoll Audio asset management, audio runtime Low-level networking Maya export via Fcollada Mesh LoD
  • 55. Engine Considerations • Live update: • Tuning variables • Object position/scale/rotation • Object creation/deletion • Object refresh • Live variable introspection/reflection • Game variable state reflected in authoring tools
  • 56. Game and Asset Packaging [AP]
  • 57. Game/Asset Packaging • Which format? • MSI / ZIP / RAR • PSN package • XBL package • Identify configuration complexity • Automate!
  • 58. Game and Asset Sharing [AS]
  • 59. Game/Asset Sharing • Shared Server • Perforce + P4 Proxy • Visual SourceSafe + SourceOffsite • Package Drop • FTP • Aspera fasp™ • HDD Courier • Carrier pigeon?
  • 60. Asset Sharing – P4 Proxy
  • 61. Asset Sharing – Package Drop FTP/Aspera fasp™
  • 62. Asset Sharing – Package Drops • Problem: • Long build process for packages • Usually commence late in the work day • Someone needs to work late! • Solution: • Automate the package shipping!
  • 64. Don’t • Let production process evolve on its own • Always prioritize game features over tools & workflow improvements • Ignore your production team‟s workflow requests • Underestimate management effort for outsourcing
  • 65. Do • Identify latency in your production pipeline • Automate as much as possible • Have regular „asset authoring priorities‟ meetings • Hire an army of tools engineers! • Create an outsourcing plan • Treat outsourcing partners like part of the team • Regular status meetings with outsourcing partners • MAXIMIZE YOUR PRODUCTION PIPE!
  • 67. Q&A

Notas del editor

  1. Programmers sat in dark offices and built an entire video game.Some of them that had a partial right-brain, also created the artwork
  2. The chance of hiring a programmer that has good artistic skills is slim-to-nonePeople started to realize this fairly early on and hired a token artist
  3. Oct 2008: Richard Garriott is the first game designer in space.The creator of the Ultima series of video games was launched into orbit with a crew aboard a Soyuz TMA spacecraft.
  4. Some assertions…Quality comes from iteration – more iteration cycles, higher qualityMore time = more iteration cycles = more quality
  5. In the land of the AAA product, Iteration is king!
  6. Because you…
  7. What breaks flow?If you’re as impatient as me, then you are acutely aware of latency in almost every consumer electronic device that you interact with, daily.For example, drawing cash from an ATM, authorization after punching your PIN into a supermarket checkout, etc.In a production environment, the time that is taken by artists or designers waiting for results to happen after they hit the “do stuff now” button is wasted time that is hard to hide with multi-tasking.What I mean by that is that typically they are either:1/ Too short to switch gears and do meaningful work while waiting for the results OR2/ Too long to wait for the results, so the gear switching is a long one and the person loses momentum on that task altogether
  8. The rest of this talk will be divided between 6 sections related to the Production Pipeline
  9. To illustrate my breakdown of “the pipeline” here is a slightly contrived example of the lifecycle of a typical new game feature, in an authoring pipeline... PC enters instance of EvilThingSpawnTriggerVolume, causes evil NPCs to be spawned that want to cause PC harm
  10. Some rules of thumb…
  11. Take a step back, look at your process Take inventory, see what works well, what is broken Can you draw a line that easily separates the tools / data that you wish to share with an outsource partner?
  12. Here is a dump of some execution timings for tools in our Data Conversion pipeline Can you generate something similar for analysis?
  13. Pre-define meta-tags (e.g. Building, Detail, Blocker, Light, Trigger) – don’t allow each user to define new ones that are shared by the team Document your pre-defined tags for consistency with outsourcing partners
  14. Pre-define meta-tags (e.g. Building, Detail, Blocker, Light, Trigger) – don’t allow each user to define new ones that are shared by the team Document your pre-defined tags for consistency with outsourcing partners
  15. Wherever possible, source assets should have a clearly defined associated cost.Establish a currency that is well-defined (even if using a meta-points system) and used when referring to budgetsWhen working with an outsourcing studio, this system is invaluable since it allows a black-and-white way to define your expectations regarding asset budgets, and whether they have been met.
  16. Asset meta-currency Each coloured dot = different resource type
  17. Scene cost barometer
  18. DOS Batch files are evil!Seriously, if your studio’s data conversion pipeline consists solely of a bunch of batch files that are run sequentially, take it out the back alley, shoot it, and tell your kids that Floppy died a peaceful death and we’ll get a new one.
  19. I have presented entire lectures on this topic so please free to ping me offline if you have any questions here
  20. Runtime interoperabilityMemory managementProfilingTools IntegrationDo they supply format conversion tools?Can you drive their data conversion tools from the command line?Do they expose an API for deriving input dependency files and resultant output files?
  21. These are non-trivial features for your engine to support Can’t have engine team working in isolation of tools team
  22. Generation of TRC-compliant PSN / XBL packages is a complicated process Familiarize yourself with it early One of the best decisions I’ve made was to set up our PSN package authoring process really early in development – it exposed a dialog with Sony’s external TRC staff that would have delayed the shipping of our game if we hadn’t addressed it then. Don’t leave until Beta!
  23. Package drop Package up assets on each end, send to recipient by some protocolFTP – slooow (but free)Aspera – fast (but costs) I have good personal experience with Aspera; it was our transfer protocol of choice when working with Sony Japan and Sony USA
  24. Problem: Someone needs to hang around after work hours, waiting on a lengthy build process, just so they can push a button to start the FTP/Aspera transferSolution:Have your package build pipeline automatically post the package upon successful completionEasy to do using FTP command line clientI worked with Aspera’s support people to customize their command line client such that we could automate delivery by FASP – now also trivial to implement
  25. At least 1 manager fulltime to manage outsourced assets