SlideShare ist ein Scribd-Unternehmen logo
1 von 212
Procedural Processes
  Lessons Learnt From Automated
  Content Generation in “Easy Money”?




Luke Dicken and Heather Decker-Davis
 @LukeD          @HeatherMDecker
About Robot Overlord
Games
About Robot Overlord
Games
About Robot Overlord
Games
About Robot Overlord
Games
About "Easy Money?"
About "Easy Money?"
About "Easy Money?"
About "Easy Money?"
Easy Money?
Demo
Easy Money?
Demo
Why Generate Procedurally?
Why Generate Procedurally?


• Players expect lots of content in games
Why Generate Procedurally?


• Players expect lots of content in games
Why Generate Procedurally?


• Players expect lots of content in games
• Players memorize static levels
Why Generate Procedurally?


• Players expect lots of content in games
• Players memorize static levels
 • Disinterested in replaying the same content
Why Generate Procedurally?


• Players expect lots of content in games
• Players memorize static levels
 • Disinterested in replaying the same content
Why Generate Procedurally?


• Players expect lots of content in games
• Players memorize static levels
 • Disinterested in replaying the same content
• PCG can keep it fresh. Imagine Temple
 Run with a fixed level layout
Why Generate Procedurally?


• Players expect lots of content in games
• Players memorize static levels
 • Disinterested in replaying the same content
• PCG can keep it fresh. Imagine Temple
 Run with a fixed level layout
Why Generate Procedurally?


• Players expect lots of content in games
• Players memorize static levels
 • Disinterested in replaying the same content
• PCG can keep it fresh. Imagine Temple
 Run with a fixed level layout
Why Generate Procedurally?


• Players expect lots of content in games
• Players memorize static levels
 • Disinterested in replaying the same content
• PCG can keep it fresh. Imagine Temple
  Run with a fixed level layout
• Easier to store an algorithm than a set of
  assets
Procedural Generation in EM
Procedural Generation in EM


• An ample set of levels was needed, and
 PCG could help us achieve this
Procedural Generation in EM


• An ample set of levels was needed, and
 PCG could help us achieve this
 • Mazes are generated semi-randomly
Procedural Generation in EM


• An ample set of levels was needed, and
 PCG could help us achieve this
 • Mazes are generated semi-randomly
Procedural Generation in EM


• An ample set of levels was needed, and
 PCG could help us achieve this
 • Mazes are generated semi-randomly
Procedural Generation in EM


• An ample set of levels was needed, and
 PCG could help us achieve this
 • Mazes are generated semi-randomly
 • Items are deployed semi-randomly
Procedural Generation in EM


• An ample set of levels was needed, and
 PCG could help us achieve this
 • Mazes are generated semi-randomly
 • Items are deployed semi-randomly
Procedural Generation in EM


• An ample set of levels was needed, and
 PCG could help us achieve this
 • Mazes are generated semi-randomly
 • Items are deployed semi-randomly
Procedural Generation in EM


• An ample set of levels was needed, and
 PCG could help us achieve this
 • Mazes are generated semi-randomly
 • Items are deployed semi-randomly
• Today, we want to talk about how
 everything comes together and how PCG
 impacted our workflow and results
Developing Procedurally
Developing Procedurally


• Setting up conditions for a potential range
 of envisioned player experiences, rather
 than crafting highly specific settings
Developing Procedurally


• Setting up conditions for a potential range
  of envisioned player experiences, rather
  than crafting highly specific settings
• Static vs. Procedural levels
Developing Procedurally


• Setting up conditions for a potential range
  of envisioned player experiences, rather
  than crafting highly specific settings
• Static vs. Procedural levels
Developing Procedurally


• Setting up conditions for a potential range
  of envisioned player experiences, rather
  than crafting highly specific settings
• Static vs. Procedural levels
Developing Procedurally


• Setting up conditions for a potential range
  of envisioned player experiences, rather
  than crafting highly specific settings
• Static vs. Procedural levels
• Developers used to working strictly with
  static content models may need to shift
  their mindset
Designing Procedurally
Designing Procedurally

• Designing interactions for a space that
 does not yet exist
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
 • Be aware of potential unplayable situations
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
 • Be aware of potential unplayable situations
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
 • Be aware of potential unplayable situations
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
 • Be aware of potential unplayable situations
• Prototype your mechanics first
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
 • Be aware of potential unplayable situations
• Prototype your mechanics first
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
 • Be aware of potential unplayable situations
• Prototype your mechanics first
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
 • Be aware of potential unplayable situations
• Prototype your mechanics first
• System-oriented or formulaic progression
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
 • Be aware of potential unplayable situations
• Prototype your mechanics first
• System-oriented or formulaic progression
 • as always, refine with testing
Designing Procedurally

• Designing interactions for a space that
  does not yet exist
• Spatial challenges and the realm of
  possible results
 • Be aware of potential unplayable situations
• Prototype your mechanics first
• System-oriented or formulaic progression
 • as always, refine with testing
• Choose variables that follow your design
 goals and uphold a sense of fairness
Designing Procedurally
Designing Procedurally


• Test extremes of variables to find your
 target start and final level values
Designing Procedurally


• Test extremes of variables to find your
  target start and final level values
• Then build a formula to fill in between point
  A and point B
Designing Procedurally


• Test extremes of variables to find your
  target start and final level values
• Then build a formula to fill in between point
  A and point B
• Linear equations are a good starting point
Designing Procedurally


• Test extremes of variables to find your
  target start and final level values
• Then build a formula to fill in between point
  A and point B
• Linear equations are a good starting point
Designing Procedurally


• Test extremes of variables to find your
  target start and final level values
• Then build a formula to fill in between point
  A and point B
• Linear equations are a good starting point
Designing Procedurally


• Test extremes of variables to find your
  target start and final level values
• Then build a formula to fill in between point
  A and point B
• Linear equations are a good starting point
• Simple linear progression can be tweaked
Designing Procedurally


• Test extremes of variables to find your
  target start and final level values
• Then build a formula to fill in between point
  A and point B
• Linear equations are a good starting point
• Simple linear progression can be tweaked
 • For a distinct endgame feel, for example
Designing Procedurally


• Test extremes of variables to find your
  target start and final level values
• Then build a formula to fill in between point
  A and point B
• Linear equations are a good starting point
• Simple linear progression can be tweaked
 • For a distinct endgame feel, for example
Designing Procedurally


• Test extremes of variables to find your
  target start and final level values
• Then build a formula to fill in between point
  A and point B
• Linear equations are a good starting point
• Simple linear progression can be tweaked
 • For a distinct endgame feel, for example
Asset Creation
Asset Creation


• Involve artists early so they can experiment
 with the specific PCG system
Asset Creation


• Involve artists early so they can experiment
  with the specific PCG system
• Artists must think modularly and consider
  possible ways an asset may be positioned
Asset Creation


• Involve artists early so they can experiment
  with the specific PCG system
• Artists must think modularly and consider
  possible ways an asset may be positioned
• Several possible approaches
Asset Creation


• Involve artists early so they can experiment
  with the specific PCG system
• Artists must think modularly and consider
  possible ways an asset may be positioned
• Several possible approaches
 • theme packages
Asset Creation


• Involve artists early so they can experiment
  with the specific PCG system
• Artists must think modularly and consider
  possible ways an asset may be positioned
• Several possible approaches
 • theme packages
 • color shifting
Asset Creation


• Involve artists early so they can experiment
  with the specific PCG system
• Artists must think modularly and consider
  possible ways an asset may be positioned
• Several possible approaches
 • theme packages
 • color shifting
 • procedural texture
Asset Creation


• Involve artists early so they can experiment
  with the specific PCG system
• Artists must think modularly and consider
  possible ways an asset may be positioned
• Several possible approaches
 • theme packages
 • color shifting
 • procedural texture
Asset Creation
Asset Creation


• The art style in Easy Money? embraced the
 level structure while following the desired
 aesthetic
Asset Creation


• The art style in Easy Money? embraced the
 level structure while following the desired
 aesthetic
Asset Creation


• The art style in Easy Money? embraced the
 level structure while following the desired
 aesthetic
Asset Creation


• The art style in Easy Money? embraced the
 level structure while following the desired
 aesthetic
Asset Creation


• The art style in Easy Money? embraced the
  level structure while following the desired
  aesthetic
• Testing and prototyping art was helped in
  nailing down specifics methodology for
  asset construction
Prototyping
Prototyping

• Once general level characteristics were
 defined, 2D tiles were created
Prototyping

• Once general level characteristics were
 defined, 2D tiles were created
Prototyping

• Once general level characteristics were
  defined, 2D tiles were created
• This allowed us to refine both the
  generation system and the piece set
Prototyping

• Once general level characteristics were
  defined, 2D tiles were created
• This allowed us to refine both the
  generation system and the piece set
 • Easily iterate with little asset commitment
Prototyping

• Once general level characteristics were
  defined, 2D tiles were created
• This allowed us to refine both the
  generation system and the piece set
 • Easily iterate with little asset commitment
• Prototyping stages
Prototyping

• Once general level characteristics were
  defined, 2D tiles were created
• This allowed us to refine both the
  generation system and the piece set
 • Easily iterate with little asset commitment
• Prototyping stages
 • 2D representation
Prototyping

• Once general level characteristics were
  defined, 2D tiles were created
• This allowed us to refine both the
  generation system and the piece set
 • Easily iterate with little asset commitment
• Prototyping stages
 • 2D representation
 • 3D explorable levels
Prototyping

• Once general level characteristics were
  defined, 2D tiles were created
• This allowed us to refine both the
  generation system and the piece set
 • Easily iterate with little asset commitment
• Prototyping stages
 • 2D representation
 • 3D explorable levels
 • Adding the funds
Prototyping

• Once general level characteristics were
  defined, 2D tiles were created
• This allowed us to refine both the
  generation system and the piece set
 • Easily iterate with little asset commitment
• Prototyping stages
 • 2D representation
 • 3D explorable levels
 • Adding the funds
 • Incorporating hazards
The Art Pipeline
The Art Pipeline

• 2D tiles formed the blueprint for 3D pieces
The Art Pipeline

• 2D tiles formed the blueprint for 3D pieces
The Art Pipeline

• 2D tiles formed the blueprint for 3D pieces
• Precise construction ensured each piece
 would snap together properly on the grid
The Art Pipeline

• 2D tiles formed the blueprint for 3D pieces
• Precise construction ensured each piece
  would snap together properly on the grid
• Pieces unwrapped, textured individually,
  then tested in-game
The Art Pipeline

• 2D tiles formed the blueprint for 3D pieces
• Precise construction ensured each piece
  would snap together properly on the grid
• Pieces unwrapped, textured individually,
  then tested in-game
• To minimize draw calls, pack as much into
  a single texture sheet as possible
The Art Pipeline

• 2D tiles formed the blueprint for 3D pieces
• Precise construction ensured each piece
  would snap together properly on the grid
• Pieces unwrapped, textured individually,
  then tested in-game
• To minimize draw calls, pack as much into
  a single texture sheet as possible
The Art Pipeline

• 2D tiles formed the blueprint for 3D pieces
• Precise construction ensured each piece
  would snap together properly on the grid
• Pieces unwrapped, textured individually,
  then tested in-game
• To minimize draw calls, pack as much into
  a single texture sheet as possible
The Art Pipeline

• 2D tiles formed the blueprint for 3D pieces
• Precise construction ensured each piece
  would snap together properly on the grid
• Pieces unwrapped, textured individually,
  then tested in-game
• To minimize draw calls, pack as much into
  a single texture sheet as possible
• Maximized reusability of pixel space for
  shared components
Simple Maze Creation
Simple Maze Creation



• Creating mazes isn't overly hard
Simple Maze Creation



• Creating mazes isn't overly hard
• Just placing appropriate pieces into the
 world where there is a “road to nowhere”
Simple Maze Creation



• Creating mazes isn't overly hard
• Just placing appropriate pieces into the
  world where there is a “road to nowhere”
• Very efficient approach
Simple Maze Creation



• Creating mazes isn't overly hard
• Just placing appropriate pieces into the
  world where there is a “road to nowhere”
• Very efficient approach
Simple Maze Creation



• Creating mazes isn't overly hard
• Just placing appropriate pieces into the
  world where there is a “road to nowhere”
• Very efficient approach
Simple Maze Creation



• Creating mazes isn't overly hard
• Just placing appropriate pieces into the
  world where there is a “road to nowhere”
• Very efficient approach
Simple Maze Creation



• Creating mazes isn't overly hard
• Just placing appropriate pieces into the
  world where there is a “road to nowhere”
• Very efficient approach
Algorithmic Maze Creation
Maze Verification
Maze Verification

• We use some simple checks to validate the
 mazes produced are interesting
Maze Verification

• We use some simple checks to validate the
 mazes produced are interesting
 • Number of dead-ends placed in the maze
Maze Verification

• We use some simple checks to validate the
 mazes produced are interesting
 • Number of dead-ends placed in the maze
 • Straight-line Distance from start to end
Maze Verification

• We use some simple checks to validate the
 mazes produced are interesting
 • Number of dead-ends placed in the maze
 • Straight-line Distance from start to end
 • Number of pieces that have been placed
Maze Verification

• We use some simple checks to validate the
 mazes produced are interesting
 • Number of dead-ends placed in the maze
 • Straight-line Distance from start to end
 • Number of pieces that have been placed
• If any of these checks fail, the maze is
 rejected and a new one generated
Post-hoc Verification vs
Guided Generation
Post-hoc Verification vs
Guided Generation


• Verification is a very simple process
Post-hoc Verification vs
Guided Generation


• Verification is a very simple process
• Guiding generation is way more complex
Post-hoc Verification vs
Guided Generation


• Verification is a very simple process
• Guiding generation is way more complex
• Do we solve the simple problem multiple
 times, or the complex problem once
Post-hoc Verification vs
Guided Generation


• Verification is a very simple process
• Guiding generation is way more complex
• Do we solve the simple problem multiple
 times, or the complex problem once
 • Your mileage may vary
Analytics
Analytics



• Working out what the player is doing in
 your game is majorly important
Analytics



• Working out what the player is doing in
 your game is majorly important
Analytics



• Working out what the player is doing in
 your game is majorly important
Analytics



• Working out what the player is doing in
  your game is majorly important
• You need to pay attention and dig into the
  data to discover what’s actually going on
Analytics



• Working out what the player is doing in
  your game is majorly important
• You need to pay attention and dig into the
  data to discover what’s actually going on
Analytics



• Working out what the player is doing in
  your game is majorly important
• You need to pay attention and dig into the
  data to discover what’s actually going on
Analytics



• Working out what the player is doing in
  your game is majorly important
• You need to pay attention and dig into the
  data to discover what’s actually going on
Analytics



• Working out what the player is doing in
  your game is majorly important
• You need to pay attention and dig into the
  data to discover what’s actually going on
Analytics



• Working out what the player is doing in
  your game is majorly important
• You need to pay attention and dig into the
  data to discover what’s actually going on
Analytics



• Working out what the player is doing in
  your game is majorly important
• You need to pay attention and dig into the
  data to discover what’s actually going on
Export and Replay of
Content
Export and Replay of
Content


• Analysis needs context
Export and Replay of
Content


• Analysis needs context
• We need to have the ability to export
 configurations of levels
Export and Replay of
Content


• Analysis needs context
• We need to have the ability to export
  configurations of levels
• Also need to be able to bypass PCG
  system to load up a specific maze
Procedural Difficulty
Procedural Difficulty

• We have parameters that we're using:
Procedural Difficulty

• We have parameters that we're using:
 • for generation, for verification, for ingame
  properties
Procedural Difficulty

• We have parameters that we're using:
 • for generation, for verification, for ingame
   properties
• So it isn't hard to see that if we start
 manipulating these parameters we can
 start varying the difficulty
Procedural Difficulty

• We have parameters that we're using:
 • for generation, for verification, for ingame
   properties
• So it isn't hard to see that if we start
  manipulating these parameters we can
  start varying the difficulty
• As the game progresses, we can control
  the tone of the spaces being created
Procedural Difficulty

• We have parameters that we're using:
 • for generation, for verification, for ingame
   properties
• So it isn't hard to see that if we start
  manipulating these parameters we can
  start varying the difficulty
• As the game progresses, we can control
  the tone of the spaces being created
Procedural Difficulty

• We have parameters that we're using:
 • for generation, for verification, for ingame
   properties
• So it isn't hard to see that if we start
  manipulating these parameters we can
  start varying the difficulty
• As the game progresses, we can control
  the tone of the spaces being created
Procedural Difficulty

• We have parameters that we're using:
 • for generation, for verification, for ingame
   properties
• So it isn't hard to see that if we start
  manipulating these parameters we can
  start varying the difficulty
• As the game progresses, we can control
  the tone of the spaces being created
Procedural Difficulty

• We have parameters that we're using:
 • for generation, for verification, for ingame
   properties
• So it isn't hard to see that if we start
  manipulating these parameters we can
  start varying the difficulty
• As the game progresses, we can control
  the tone of the spaces being created
Player Modelling
Player Modelling


• We can look at how the player is playing
 the game and what they are choosing to
 spend time on
Player Modelling


• We can look at how the player is playing
  the game and what they are choosing to
  spend time on
• Then tailor the game to these tastes:
Player Modelling


• We can look at how the player is playing
  the game and what they are choosing to
  spend time on
• Then tailor the game to these tastes:
 • Players who prefer exploration can be given
  larger spaces
Player Modelling


• We can look at how the player is playing
  the game and what they are choosing to
  spend time on
• Then tailor the game to these tastes:
 • Players who prefer exploration can be given
   larger spaces
 • Players who dash to the goal can be given tight
   mazes with more hazards
Procedural Signposting
Procedural Signposting

• How can we guide the player?
Procedural Signposting

• How can we guide the player?
• Signposting is how designers subtly
 influence player perceptions
Procedural Signposting

• How can we guide the player?
• Signposting is how designers subtly
 influence player perceptions
 • Lights under "important" doors
Procedural Signposting

• How can we guide the player?
• Signposting is how designers subtly
 influence player perceptions
 • Lights under "important" doors
 • Cover position suggesting enemy locations
Procedural Signposting

• How can we guide the player?
• Signposting is how designers subtly
 influence player perceptions
 • Lights under "important" doors
 • Cover position suggesting enemy locations
Procedural Signposting

• How can we guide the player?
• Signposting is how designers subtly
 influence player perceptions
 • Lights under "important" doors
 • Cover position suggesting enemy locations
Procedural Signposting

• How can we guide the player?
• Signposting is how designers subtly
 influence player perceptions
 • Lights under "important" doors
 • Cover position suggesting enemy locations
• Can we generate these signs on the fly?
Procedural Signposting

• How can we guide the player?
• Signposting is how designers subtly
 influence player perceptions
 • Lights under "important" doors
 • Cover position suggesting enemy locations
• Can we generate these signs on the fly?
• In EM, we're playing with how we can use
 our collectibles and hazards to help the
 player flow towards the goal (or misdirect)
Challenges
Challenges

• Tools development may rack up a
 significant cost: both time and money
Challenges

• Tools development may rack up a
 significant cost: both time and money
Challenges

• Tools development may rack up a
 significant cost: both time and money
Challenges

• Tools development may rack up a
  significant cost: both time and money
• Strong programming knowledge required
Challenges

• Tools development may rack up a
  significant cost: both time and money
• Strong programming knowledge required
 • significant debugging and refining
Challenges

• Tools development may rack up a
  significant cost: both time and money
• Strong programming knowledge required
 • significant debugging and refining
 • responding to fringe cases
Challenges

• Tools development may rack up a
  significant cost: both time and money
• Strong programming knowledge required
 • significant debugging and refining
 • responding to fringe cases
• Potential "sameness" generated spaces
Challenges

• Tools development may rack up a
  significant cost: both time and money
• Strong programming knowledge required
 • significant debugging and refining
 • responding to fringe cases
• Potential "sameness" generated spaces
 • may be combated through:
Challenges

• Tools development may rack up a
  significant cost: both time and money
• Strong programming knowledge required
 • significant debugging and refining
 • responding to fringe cases
• Potential "sameness" generated spaces
 • may be combated through:
  • peppering in unique content
Challenges

• Tools development may rack up a
  significant cost: both time and money
• Strong programming knowledge required
 • significant debugging and refining
 • responding to fringe cases
• Potential "sameness" generated spaces
 • may be combated through:
  • peppering in unique content
  • combo approaches: both procedural and static
Challenges
Challenges




• Balancing the power of your tools
Challenges




• Balancing the power of your tools
 • Easy Money? started out with 100 levels
Challenges




• Balancing the power of your tools
 • Easy Money? started out with 100 levels
• PCG is not ideal for all types of games
Summary
Summary



• Must evaluate the pros and cons of PCG
 on a project-specific basic
Summary



• Must evaluate the pros and cons of PCG
  on a project-specific basic
• The methods here can be leveraged for
  many different styles of games and tailored
  to many different level structures
Summary



• Must evaluate the pros and cons of PCG
  on a project-specific basic
• The methods here can be leveraged for
  many different styles of games and tailored
  to many different level structures
Summary



• Must evaluate the pros and cons of PCG
  on a project-specific basic
• The methods here can be leveraged for
  many different styles of games and tailored
  to many different level structures
Takeaways
Takeaways


• Break levels down into modular pieces
Takeaways


• Break levels down into modular pieces
• Establish the PCG system early
Takeaways


• Break levels down into modular pieces
• Establish the PCG system early
• Tight integration between artists, designers
 and developers
Takeaways


• Break levels down into modular pieces
• Establish the PCG system early
• Tight integration between artists, designers
 and developers
 • PCG will affect decisions made by all groups
Takeaways


• Break levels down into modular pieces
• Establish the PCG system early
• Tight integration between artists, designers
 and developers
 • PCG will affect decisions made by all groups
• You can use PCG to turn your games to 11!
Alpha - http://easymoney.robotoverlord.co.uk/


                     Robot Overlord Games

   Heather Decker-Davis                       Luke Dicken
heather@robotoverlord.co.uk             luke@robotoverlord.co.uk
     @heathermdecker                           @LukeD

Weitere ähnliche Inhalte

Was ist angesagt?

General planning process 1 powerpoint ppt slides.
General planning process 1 powerpoint ppt slides.General planning process 1 powerpoint ppt slides.
General planning process 1 powerpoint ppt slides.SlideTeam.net
 
General planning strategy 1 powerpoint ppt slides.
General planning strategy 1 powerpoint ppt slides.General planning strategy 1 powerpoint ppt slides.
General planning strategy 1 powerpoint ppt slides.SlideTeam.net
 
General planning strategy 1 powerpoint presentation templates.
General planning strategy 1 powerpoint presentation templates.General planning strategy 1 powerpoint presentation templates.
General planning strategy 1 powerpoint presentation templates.SlideTeam.net
 
General planning process 1 powerpoint presentation templates.
General planning process 1 powerpoint presentation templates.General planning process 1 powerpoint presentation templates.
General planning process 1 powerpoint presentation templates.SlideTeam.net
 
General planning strategy 1 powerpoint presentation slides.
General planning strategy 1 powerpoint presentation slides.General planning strategy 1 powerpoint presentation slides.
General planning strategy 1 powerpoint presentation slides.SlideTeam.net
 
General planning process 1 powerpoint presentation slides.
General planning process 1 powerpoint presentation slides.General planning process 1 powerpoint presentation slides.
General planning process 1 powerpoint presentation slides.SlideTeam.net
 
General planning strategy 1 powerpoint ppt templates.
General planning strategy 1 powerpoint ppt templates.General planning strategy 1 powerpoint ppt templates.
General planning strategy 1 powerpoint ppt templates.SlideTeam.net
 
Moving from boxed title Game Development to F2P | Ralf C. Adam
Moving from boxed title Game Development to F2P | Ralf C. AdamMoving from boxed title Game Development to F2P | Ralf C. Adam
Moving from boxed title Game Development to F2P | Ralf C. AdamRalf C. Adam
 
"The Great Technical Swindle" by Laurent Cerveau
"The Great Technical Swindle" by Laurent Cerveau"The Great Technical Swindle" by Laurent Cerveau
"The Great Technical Swindle" by Laurent CerveauTheFamily
 
Agile UX - expanded and reworked
Agile UX - expanded and reworkedAgile UX - expanded and reworked
Agile UX - expanded and reworkedsparrk
 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio managementAlberto Brandolini
 
Estimation or, "How to Dig your Grave"
Estimation or, "How to Dig your Grave"Estimation or, "How to Dig your Grave"
Estimation or, "How to Dig your Grave"Rowan Merewood
 
Handling Waterfall Nostalgia when Moving to Agile
Handling Waterfall Nostalgia when Moving to AgileHandling Waterfall Nostalgia when Moving to Agile
Handling Waterfall Nostalgia when Moving to AgileYaki Koren
 

Was ist angesagt? (14)

General planning process 1 powerpoint ppt slides.
General planning process 1 powerpoint ppt slides.General planning process 1 powerpoint ppt slides.
General planning process 1 powerpoint ppt slides.
 
General planning strategy 1 powerpoint ppt slides.
General planning strategy 1 powerpoint ppt slides.General planning strategy 1 powerpoint ppt slides.
General planning strategy 1 powerpoint ppt slides.
 
General planning strategy 1 powerpoint presentation templates.
General planning strategy 1 powerpoint presentation templates.General planning strategy 1 powerpoint presentation templates.
General planning strategy 1 powerpoint presentation templates.
 
General planning process 1 powerpoint presentation templates.
General planning process 1 powerpoint presentation templates.General planning process 1 powerpoint presentation templates.
General planning process 1 powerpoint presentation templates.
 
General planning strategy 1 powerpoint presentation slides.
General planning strategy 1 powerpoint presentation slides.General planning strategy 1 powerpoint presentation slides.
General planning strategy 1 powerpoint presentation slides.
 
General planning process 1 powerpoint presentation slides.
General planning process 1 powerpoint presentation slides.General planning process 1 powerpoint presentation slides.
General planning process 1 powerpoint presentation slides.
 
General planning strategy 1 powerpoint ppt templates.
General planning strategy 1 powerpoint ppt templates.General planning strategy 1 powerpoint ppt templates.
General planning strategy 1 powerpoint ppt templates.
 
The gordian knot
The gordian knotThe gordian knot
The gordian knot
 
Moving from boxed title Game Development to F2P | Ralf C. Adam
Moving from boxed title Game Development to F2P | Ralf C. AdamMoving from boxed title Game Development to F2P | Ralf C. Adam
Moving from boxed title Game Development to F2P | Ralf C. Adam
 
"The Great Technical Swindle" by Laurent Cerveau
"The Great Technical Swindle" by Laurent Cerveau"The Great Technical Swindle" by Laurent Cerveau
"The Great Technical Swindle" by Laurent Cerveau
 
Agile UX - expanded and reworked
Agile UX - expanded and reworkedAgile UX - expanded and reworked
Agile UX - expanded and reworked
 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio management
 
Estimation or, "How to Dig your Grave"
Estimation or, "How to Dig your Grave"Estimation or, "How to Dig your Grave"
Estimation or, "How to Dig your Grave"
 
Handling Waterfall Nostalgia when Moving to Agile
Handling Waterfall Nostalgia when Moving to AgileHandling Waterfall Nostalgia when Moving to Agile
Handling Waterfall Nostalgia when Moving to Agile
 

Ähnlich wie No Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural Processes

Procedural Processes - Lessons Learnt from Automated Content Generation in "E...
Procedural Processes - Lessons Learnt from Automated Content Generation in "E...Procedural Processes - Lessons Learnt from Automated Content Generation in "E...
Procedural Processes - Lessons Learnt from Automated Content Generation in "E...Luke Dicken
 
Refactoring RIA Unleashed 2011
Refactoring RIA Unleashed 2011Refactoring RIA Unleashed 2011
Refactoring RIA Unleashed 2011Jesse Warden
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing codeZivtech, LLC
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new buildAndrew Phillips
 
Successful Project Presentation
Successful Project PresentationSuccessful Project Presentation
Successful Project PresentationColin Sullivan
 
Level Design Workshop - GDC China 2012
Level Design Workshop - GDC China 2012Level Design Workshop - GDC China 2012
Level Design Workshop - GDC China 2012Joel Burgess
 
Tester career path
Tester career pathTester career path
Tester career pathgaoliang641
 
Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Developmentkmloomis
 
WebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D EngineWebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D Engineaerotwist
 
Tackling Testing Telephony
Tackling Testing Telephony Tackling Testing Telephony
Tackling Testing Telephony Mojo Lingo
 
Alm with tfs 2013
Alm with tfs 2013Alm with tfs 2013
Alm with tfs 2013MSDEVMTL
 
Jeff Lopez - To Affinity and Beyond
Jeff Lopez - To Affinity and BeyondJeff Lopez - To Affinity and Beyond
Jeff Lopez - To Affinity and BeyondAgile Impact
 
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureTechnical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureAllison Pollard
 
"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011
"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011
"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011Playniac
 
Software Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaSoftware Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaBrian Topping
 

Ähnlich wie No Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural Processes (20)

Procedural Processes - Lessons Learnt from Automated Content Generation in "E...
Procedural Processes - Lessons Learnt from Automated Content Generation in "E...Procedural Processes - Lessons Learnt from Automated Content Generation in "E...
Procedural Processes - Lessons Learnt from Automated Content Generation in "E...
 
Refactoring RIA Unleashed 2011
Refactoring RIA Unleashed 2011Refactoring RIA Unleashed 2011
Refactoring RIA Unleashed 2011
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
 
Successful Project Presentation
Successful Project PresentationSuccessful Project Presentation
Successful Project Presentation
 
talk
talktalk
talk
 
Level Design Workshop - GDC China 2012
Level Design Workshop - GDC China 2012Level Design Workshop - GDC China 2012
Level Design Workshop - GDC China 2012
 
Tester career path
Tester career pathTester career path
Tester career path
 
Project Tools in Web Development
Project Tools in Web DevelopmentProject Tools in Web Development
Project Tools in Web Development
 
WebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D EngineWebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D Engine
 
Tackling Testing Telephony
Tackling Testing Telephony Tackling Testing Telephony
Tackling Testing Telephony
 
Alm with tfs 2013
Alm with tfs 2013Alm with tfs 2013
Alm with tfs 2013
 
Jeff Lopez - To Affinity and Beyond
Jeff Lopez - To Affinity and BeyondJeff Lopez - To Affinity and Beyond
Jeff Lopez - To Affinity and Beyond
 
Jeff Lopez - To Affinity and Beyond
Jeff Lopez - To Affinity and BeyondJeff Lopez - To Affinity and Beyond
Jeff Lopez - To Affinity and Beyond
 
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship CultureTechnical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
Technical Excellence Doesn't Just Happen--Igniting a Craftsmanship Culture
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 
"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011
"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011
"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011
 
Software Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaSoftware Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with Scala
 
OOP in JS
OOP in JSOOP in JS
OOP in JS
 
JavaFX 101
JavaFX 101JavaFX 101
JavaFX 101
 

Mehr von No Show Conference

Taking ARGs Back from Marketing and Museums
Taking ARGs Back from Marketing and MuseumsTaking ARGs Back from Marketing and Museums
Taking ARGs Back from Marketing and MuseumsNo Show Conference
 
Now That’s Just Bizarre: The Making of “Dominique Pamplemousse"
Now That’s Just Bizarre: The Making of “Dominique Pamplemousse"Now That’s Just Bizarre: The Making of “Dominique Pamplemousse"
Now That’s Just Bizarre: The Making of “Dominique Pamplemousse"No Show Conference
 
Everything You Always Wanted to Know About Fighting Games (But Were Afraid to...
Everything You Always Wanted to Know About Fighting Games (But Were Afraid to...Everything You Always Wanted to Know About Fighting Games (But Were Afraid to...
Everything You Always Wanted to Know About Fighting Games (But Were Afraid to...No Show Conference
 
The Call of Duty Approach to Interactive Fiction Tutorials
The Call of Duty Approach to Interactive Fiction TutorialsThe Call of Duty Approach to Interactive Fiction Tutorials
The Call of Duty Approach to Interactive Fiction TutorialsNo Show Conference
 
Twine: Confessions of a Deadbeat Project Leader
Twine: Confessions of a Deadbeat Project LeaderTwine: Confessions of a Deadbeat Project Leader
Twine: Confessions of a Deadbeat Project LeaderNo Show Conference
 
No Show 2012 - Clara Fernández-Vara - Environmental Storytelling
No Show 2012 - Clara Fernández-Vara - Environmental Storytelling No Show 2012 - Clara Fernández-Vara - Environmental Storytelling
No Show 2012 - Clara Fernández-Vara - Environmental Storytelling No Show Conference
 
No Show 2012 - Mitchell Smallman - At Least Your Parents HAVE a Basement
No Show 2012 - Mitchell Smallman - At Least Your Parents HAVE a BasementNo Show 2012 - Mitchell Smallman - At Least Your Parents HAVE a Basement
No Show 2012 - Mitchell Smallman - At Least Your Parents HAVE a BasementNo Show Conference
 
No Show 2012 - Deirdra Kiai - Men In Games
No Show 2012 - Deirdra Kiai - Men In GamesNo Show 2012 - Deirdra Kiai - Men In Games
No Show 2012 - Deirdra Kiai - Men In GamesNo Show Conference
 
No Show 2012 - Tim Crosby - Can You Write That Down
No Show 2012 - Tim Crosby - Can You Write That DownNo Show 2012 - Tim Crosby - Can You Write That Down
No Show 2012 - Tim Crosby - Can You Write That DownNo Show Conference
 
No Show 2012 - Bryant Drew Jones - Designing For Togetherness
No Show 2012 - Bryant Drew Jones - Designing For TogethernessNo Show 2012 - Bryant Drew Jones - Designing For Togetherness
No Show 2012 - Bryant Drew Jones - Designing For TogethernessNo Show Conference
 

Mehr von No Show Conference (11)

Taking ARGs Back from Marketing and Museums
Taking ARGs Back from Marketing and MuseumsTaking ARGs Back from Marketing and Museums
Taking ARGs Back from Marketing and Museums
 
Now That’s Just Bizarre: The Making of “Dominique Pamplemousse"
Now That’s Just Bizarre: The Making of “Dominique Pamplemousse"Now That’s Just Bizarre: The Making of “Dominique Pamplemousse"
Now That’s Just Bizarre: The Making of “Dominique Pamplemousse"
 
Everything You Always Wanted to Know About Fighting Games (But Were Afraid to...
Everything You Always Wanted to Know About Fighting Games (But Were Afraid to...Everything You Always Wanted to Know About Fighting Games (But Were Afraid to...
Everything You Always Wanted to Know About Fighting Games (But Were Afraid to...
 
The Call of Duty Approach to Interactive Fiction Tutorials
The Call of Duty Approach to Interactive Fiction TutorialsThe Call of Duty Approach to Interactive Fiction Tutorials
The Call of Duty Approach to Interactive Fiction Tutorials
 
Level Criticism
Level CriticismLevel Criticism
Level Criticism
 
Twine: Confessions of a Deadbeat Project Leader
Twine: Confessions of a Deadbeat Project LeaderTwine: Confessions of a Deadbeat Project Leader
Twine: Confessions of a Deadbeat Project Leader
 
No Show 2012 - Clara Fernández-Vara - Environmental Storytelling
No Show 2012 - Clara Fernández-Vara - Environmental Storytelling No Show 2012 - Clara Fernández-Vara - Environmental Storytelling
No Show 2012 - Clara Fernández-Vara - Environmental Storytelling
 
No Show 2012 - Mitchell Smallman - At Least Your Parents HAVE a Basement
No Show 2012 - Mitchell Smallman - At Least Your Parents HAVE a BasementNo Show 2012 - Mitchell Smallman - At Least Your Parents HAVE a Basement
No Show 2012 - Mitchell Smallman - At Least Your Parents HAVE a Basement
 
No Show 2012 - Deirdra Kiai - Men In Games
No Show 2012 - Deirdra Kiai - Men In GamesNo Show 2012 - Deirdra Kiai - Men In Games
No Show 2012 - Deirdra Kiai - Men In Games
 
No Show 2012 - Tim Crosby - Can You Write That Down
No Show 2012 - Tim Crosby - Can You Write That DownNo Show 2012 - Tim Crosby - Can You Write That Down
No Show 2012 - Tim Crosby - Can You Write That Down
 
No Show 2012 - Bryant Drew Jones - Designing For Togetherness
No Show 2012 - Bryant Drew Jones - Designing For TogethernessNo Show 2012 - Bryant Drew Jones - Designing For Togetherness
No Show 2012 - Bryant Drew Jones - Designing For Togetherness
 

Kürzlich hochgeladen

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

No Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural Processes

  • 1. Procedural Processes Lessons Learnt From Automated Content Generation in “Easy Money”? Luke Dicken and Heather Decker-Davis @LukeD @HeatherMDecker
  • 13. Why Generate Procedurally? • Players expect lots of content in games
  • 14. Why Generate Procedurally? • Players expect lots of content in games
  • 15. Why Generate Procedurally? • Players expect lots of content in games • Players memorize static levels
  • 16. Why Generate Procedurally? • Players expect lots of content in games • Players memorize static levels • Disinterested in replaying the same content
  • 17. Why Generate Procedurally? • Players expect lots of content in games • Players memorize static levels • Disinterested in replaying the same content
  • 18. Why Generate Procedurally? • Players expect lots of content in games • Players memorize static levels • Disinterested in replaying the same content • PCG can keep it fresh. Imagine Temple Run with a fixed level layout
  • 19. Why Generate Procedurally? • Players expect lots of content in games • Players memorize static levels • Disinterested in replaying the same content • PCG can keep it fresh. Imagine Temple Run with a fixed level layout
  • 20. Why Generate Procedurally? • Players expect lots of content in games • Players memorize static levels • Disinterested in replaying the same content • PCG can keep it fresh. Imagine Temple Run with a fixed level layout
  • 21. Why Generate Procedurally? • Players expect lots of content in games • Players memorize static levels • Disinterested in replaying the same content • PCG can keep it fresh. Imagine Temple Run with a fixed level layout • Easier to store an algorithm than a set of assets
  • 23. Procedural Generation in EM • An ample set of levels was needed, and PCG could help us achieve this
  • 24. Procedural Generation in EM • An ample set of levels was needed, and PCG could help us achieve this • Mazes are generated semi-randomly
  • 25. Procedural Generation in EM • An ample set of levels was needed, and PCG could help us achieve this • Mazes are generated semi-randomly
  • 26. Procedural Generation in EM • An ample set of levels was needed, and PCG could help us achieve this • Mazes are generated semi-randomly
  • 27. Procedural Generation in EM • An ample set of levels was needed, and PCG could help us achieve this • Mazes are generated semi-randomly • Items are deployed semi-randomly
  • 28. Procedural Generation in EM • An ample set of levels was needed, and PCG could help us achieve this • Mazes are generated semi-randomly • Items are deployed semi-randomly
  • 29. Procedural Generation in EM • An ample set of levels was needed, and PCG could help us achieve this • Mazes are generated semi-randomly • Items are deployed semi-randomly
  • 30. Procedural Generation in EM • An ample set of levels was needed, and PCG could help us achieve this • Mazes are generated semi-randomly • Items are deployed semi-randomly • Today, we want to talk about how everything comes together and how PCG impacted our workflow and results
  • 32. Developing Procedurally • Setting up conditions for a potential range of envisioned player experiences, rather than crafting highly specific settings
  • 33. Developing Procedurally • Setting up conditions for a potential range of envisioned player experiences, rather than crafting highly specific settings • Static vs. Procedural levels
  • 34. Developing Procedurally • Setting up conditions for a potential range of envisioned player experiences, rather than crafting highly specific settings • Static vs. Procedural levels
  • 35. Developing Procedurally • Setting up conditions for a potential range of envisioned player experiences, rather than crafting highly specific settings • Static vs. Procedural levels
  • 36. Developing Procedurally • Setting up conditions for a potential range of envisioned player experiences, rather than crafting highly specific settings • Static vs. Procedural levels • Developers used to working strictly with static content models may need to shift their mindset
  • 38. Designing Procedurally • Designing interactions for a space that does not yet exist
  • 39. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results
  • 40. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results • Be aware of potential unplayable situations
  • 41. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results • Be aware of potential unplayable situations
  • 42. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results • Be aware of potential unplayable situations
  • 43. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results • Be aware of potential unplayable situations • Prototype your mechanics first
  • 44. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results • Be aware of potential unplayable situations • Prototype your mechanics first
  • 45. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results • Be aware of potential unplayable situations • Prototype your mechanics first
  • 46. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results • Be aware of potential unplayable situations • Prototype your mechanics first • System-oriented or formulaic progression
  • 47. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results • Be aware of potential unplayable situations • Prototype your mechanics first • System-oriented or formulaic progression • as always, refine with testing
  • 48. Designing Procedurally • Designing interactions for a space that does not yet exist • Spatial challenges and the realm of possible results • Be aware of potential unplayable situations • Prototype your mechanics first • System-oriented or formulaic progression • as always, refine with testing • Choose variables that follow your design goals and uphold a sense of fairness
  • 50. Designing Procedurally • Test extremes of variables to find your target start and final level values
  • 51. Designing Procedurally • Test extremes of variables to find your target start and final level values • Then build a formula to fill in between point A and point B
  • 52. Designing Procedurally • Test extremes of variables to find your target start and final level values • Then build a formula to fill in between point A and point B • Linear equations are a good starting point
  • 53. Designing Procedurally • Test extremes of variables to find your target start and final level values • Then build a formula to fill in between point A and point B • Linear equations are a good starting point
  • 54. Designing Procedurally • Test extremes of variables to find your target start and final level values • Then build a formula to fill in between point A and point B • Linear equations are a good starting point
  • 55. Designing Procedurally • Test extremes of variables to find your target start and final level values • Then build a formula to fill in between point A and point B • Linear equations are a good starting point • Simple linear progression can be tweaked
  • 56. Designing Procedurally • Test extremes of variables to find your target start and final level values • Then build a formula to fill in between point A and point B • Linear equations are a good starting point • Simple linear progression can be tweaked • For a distinct endgame feel, for example
  • 57. Designing Procedurally • Test extremes of variables to find your target start and final level values • Then build a formula to fill in between point A and point B • Linear equations are a good starting point • Simple linear progression can be tweaked • For a distinct endgame feel, for example
  • 58. Designing Procedurally • Test extremes of variables to find your target start and final level values • Then build a formula to fill in between point A and point B • Linear equations are a good starting point • Simple linear progression can be tweaked • For a distinct endgame feel, for example
  • 60. Asset Creation • Involve artists early so they can experiment with the specific PCG system
  • 61. Asset Creation • Involve artists early so they can experiment with the specific PCG system • Artists must think modularly and consider possible ways an asset may be positioned
  • 62. Asset Creation • Involve artists early so they can experiment with the specific PCG system • Artists must think modularly and consider possible ways an asset may be positioned • Several possible approaches
  • 63. Asset Creation • Involve artists early so they can experiment with the specific PCG system • Artists must think modularly and consider possible ways an asset may be positioned • Several possible approaches • theme packages
  • 64. Asset Creation • Involve artists early so they can experiment with the specific PCG system • Artists must think modularly and consider possible ways an asset may be positioned • Several possible approaches • theme packages • color shifting
  • 65. Asset Creation • Involve artists early so they can experiment with the specific PCG system • Artists must think modularly and consider possible ways an asset may be positioned • Several possible approaches • theme packages • color shifting • procedural texture
  • 66. Asset Creation • Involve artists early so they can experiment with the specific PCG system • Artists must think modularly and consider possible ways an asset may be positioned • Several possible approaches • theme packages • color shifting • procedural texture
  • 68. Asset Creation • The art style in Easy Money? embraced the level structure while following the desired aesthetic
  • 69. Asset Creation • The art style in Easy Money? embraced the level structure while following the desired aesthetic
  • 70. Asset Creation • The art style in Easy Money? embraced the level structure while following the desired aesthetic
  • 71. Asset Creation • The art style in Easy Money? embraced the level structure while following the desired aesthetic
  • 72. Asset Creation • The art style in Easy Money? embraced the level structure while following the desired aesthetic • Testing and prototyping art was helped in nailing down specifics methodology for asset construction
  • 74. Prototyping • Once general level characteristics were defined, 2D tiles were created
  • 75. Prototyping • Once general level characteristics were defined, 2D tiles were created
  • 76. Prototyping • Once general level characteristics were defined, 2D tiles were created • This allowed us to refine both the generation system and the piece set
  • 77. Prototyping • Once general level characteristics were defined, 2D tiles were created • This allowed us to refine both the generation system and the piece set • Easily iterate with little asset commitment
  • 78. Prototyping • Once general level characteristics were defined, 2D tiles were created • This allowed us to refine both the generation system and the piece set • Easily iterate with little asset commitment • Prototyping stages
  • 79. Prototyping • Once general level characteristics were defined, 2D tiles were created • This allowed us to refine both the generation system and the piece set • Easily iterate with little asset commitment • Prototyping stages • 2D representation
  • 80. Prototyping • Once general level characteristics were defined, 2D tiles were created • This allowed us to refine both the generation system and the piece set • Easily iterate with little asset commitment • Prototyping stages • 2D representation • 3D explorable levels
  • 81. Prototyping • Once general level characteristics were defined, 2D tiles were created • This allowed us to refine both the generation system and the piece set • Easily iterate with little asset commitment • Prototyping stages • 2D representation • 3D explorable levels • Adding the funds
  • 82. Prototyping • Once general level characteristics were defined, 2D tiles were created • This allowed us to refine both the generation system and the piece set • Easily iterate with little asset commitment • Prototyping stages • 2D representation • 3D explorable levels • Adding the funds • Incorporating hazards
  • 84. The Art Pipeline • 2D tiles formed the blueprint for 3D pieces
  • 85. The Art Pipeline • 2D tiles formed the blueprint for 3D pieces
  • 86. The Art Pipeline • 2D tiles formed the blueprint for 3D pieces • Precise construction ensured each piece would snap together properly on the grid
  • 87. The Art Pipeline • 2D tiles formed the blueprint for 3D pieces • Precise construction ensured each piece would snap together properly on the grid • Pieces unwrapped, textured individually, then tested in-game
  • 88. The Art Pipeline • 2D tiles formed the blueprint for 3D pieces • Precise construction ensured each piece would snap together properly on the grid • Pieces unwrapped, textured individually, then tested in-game • To minimize draw calls, pack as much into a single texture sheet as possible
  • 89. The Art Pipeline • 2D tiles formed the blueprint for 3D pieces • Precise construction ensured each piece would snap together properly on the grid • Pieces unwrapped, textured individually, then tested in-game • To minimize draw calls, pack as much into a single texture sheet as possible
  • 90. The Art Pipeline • 2D tiles formed the blueprint for 3D pieces • Precise construction ensured each piece would snap together properly on the grid • Pieces unwrapped, textured individually, then tested in-game • To minimize draw calls, pack as much into a single texture sheet as possible
  • 91. The Art Pipeline • 2D tiles formed the blueprint for 3D pieces • Precise construction ensured each piece would snap together properly on the grid • Pieces unwrapped, textured individually, then tested in-game • To minimize draw calls, pack as much into a single texture sheet as possible • Maximized reusability of pixel space for shared components
  • 93. Simple Maze Creation • Creating mazes isn't overly hard
  • 94. Simple Maze Creation • Creating mazes isn't overly hard • Just placing appropriate pieces into the world where there is a “road to nowhere”
  • 95. Simple Maze Creation • Creating mazes isn't overly hard • Just placing appropriate pieces into the world where there is a “road to nowhere” • Very efficient approach
  • 96. Simple Maze Creation • Creating mazes isn't overly hard • Just placing appropriate pieces into the world where there is a “road to nowhere” • Very efficient approach
  • 97. Simple Maze Creation • Creating mazes isn't overly hard • Just placing appropriate pieces into the world where there is a “road to nowhere” • Very efficient approach
  • 98. Simple Maze Creation • Creating mazes isn't overly hard • Just placing appropriate pieces into the world where there is a “road to nowhere” • Very efficient approach
  • 99. Simple Maze Creation • Creating mazes isn't overly hard • Just placing appropriate pieces into the world where there is a “road to nowhere” • Very efficient approach
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 138. Maze Verification • We use some simple checks to validate the mazes produced are interesting
  • 139. Maze Verification • We use some simple checks to validate the mazes produced are interesting • Number of dead-ends placed in the maze
  • 140. Maze Verification • We use some simple checks to validate the mazes produced are interesting • Number of dead-ends placed in the maze • Straight-line Distance from start to end
  • 141. Maze Verification • We use some simple checks to validate the mazes produced are interesting • Number of dead-ends placed in the maze • Straight-line Distance from start to end • Number of pieces that have been placed
  • 142. Maze Verification • We use some simple checks to validate the mazes produced are interesting • Number of dead-ends placed in the maze • Straight-line Distance from start to end • Number of pieces that have been placed • If any of these checks fail, the maze is rejected and a new one generated
  • 144. Post-hoc Verification vs Guided Generation • Verification is a very simple process
  • 145. Post-hoc Verification vs Guided Generation • Verification is a very simple process • Guiding generation is way more complex
  • 146. Post-hoc Verification vs Guided Generation • Verification is a very simple process • Guiding generation is way more complex • Do we solve the simple problem multiple times, or the complex problem once
  • 147. Post-hoc Verification vs Guided Generation • Verification is a very simple process • Guiding generation is way more complex • Do we solve the simple problem multiple times, or the complex problem once • Your mileage may vary
  • 149. Analytics • Working out what the player is doing in your game is majorly important
  • 150. Analytics • Working out what the player is doing in your game is majorly important
  • 151. Analytics • Working out what the player is doing in your game is majorly important
  • 152. Analytics • Working out what the player is doing in your game is majorly important • You need to pay attention and dig into the data to discover what’s actually going on
  • 153. Analytics • Working out what the player is doing in your game is majorly important • You need to pay attention and dig into the data to discover what’s actually going on
  • 154. Analytics • Working out what the player is doing in your game is majorly important • You need to pay attention and dig into the data to discover what’s actually going on
  • 155. Analytics • Working out what the player is doing in your game is majorly important • You need to pay attention and dig into the data to discover what’s actually going on
  • 156. Analytics • Working out what the player is doing in your game is majorly important • You need to pay attention and dig into the data to discover what’s actually going on
  • 157. Analytics • Working out what the player is doing in your game is majorly important • You need to pay attention and dig into the data to discover what’s actually going on
  • 158. Analytics • Working out what the player is doing in your game is majorly important • You need to pay attention and dig into the data to discover what’s actually going on
  • 159. Export and Replay of Content
  • 160. Export and Replay of Content • Analysis needs context
  • 161. Export and Replay of Content • Analysis needs context • We need to have the ability to export configurations of levels
  • 162. Export and Replay of Content • Analysis needs context • We need to have the ability to export configurations of levels • Also need to be able to bypass PCG system to load up a specific maze
  • 164. Procedural Difficulty • We have parameters that we're using:
  • 165. Procedural Difficulty • We have parameters that we're using: • for generation, for verification, for ingame properties
  • 166. Procedural Difficulty • We have parameters that we're using: • for generation, for verification, for ingame properties • So it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty
  • 167. Procedural Difficulty • We have parameters that we're using: • for generation, for verification, for ingame properties • So it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty • As the game progresses, we can control the tone of the spaces being created
  • 168. Procedural Difficulty • We have parameters that we're using: • for generation, for verification, for ingame properties • So it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty • As the game progresses, we can control the tone of the spaces being created
  • 169. Procedural Difficulty • We have parameters that we're using: • for generation, for verification, for ingame properties • So it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty • As the game progresses, we can control the tone of the spaces being created
  • 170. Procedural Difficulty • We have parameters that we're using: • for generation, for verification, for ingame properties • So it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty • As the game progresses, we can control the tone of the spaces being created
  • 171. Procedural Difficulty • We have parameters that we're using: • for generation, for verification, for ingame properties • So it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty • As the game progresses, we can control the tone of the spaces being created
  • 173. Player Modelling • We can look at how the player is playing the game and what they are choosing to spend time on
  • 174. Player Modelling • We can look at how the player is playing the game and what they are choosing to spend time on • Then tailor the game to these tastes:
  • 175. Player Modelling • We can look at how the player is playing the game and what they are choosing to spend time on • Then tailor the game to these tastes: • Players who prefer exploration can be given larger spaces
  • 176. Player Modelling • We can look at how the player is playing the game and what they are choosing to spend time on • Then tailor the game to these tastes: • Players who prefer exploration can be given larger spaces • Players who dash to the goal can be given tight mazes with more hazards
  • 178. Procedural Signposting • How can we guide the player?
  • 179. Procedural Signposting • How can we guide the player? • Signposting is how designers subtly influence player perceptions
  • 180. Procedural Signposting • How can we guide the player? • Signposting is how designers subtly influence player perceptions • Lights under "important" doors
  • 181. Procedural Signposting • How can we guide the player? • Signposting is how designers subtly influence player perceptions • Lights under "important" doors • Cover position suggesting enemy locations
  • 182. Procedural Signposting • How can we guide the player? • Signposting is how designers subtly influence player perceptions • Lights under "important" doors • Cover position suggesting enemy locations
  • 183. Procedural Signposting • How can we guide the player? • Signposting is how designers subtly influence player perceptions • Lights under "important" doors • Cover position suggesting enemy locations
  • 184. Procedural Signposting • How can we guide the player? • Signposting is how designers subtly influence player perceptions • Lights under "important" doors • Cover position suggesting enemy locations • Can we generate these signs on the fly?
  • 185. Procedural Signposting • How can we guide the player? • Signposting is how designers subtly influence player perceptions • Lights under "important" doors • Cover position suggesting enemy locations • Can we generate these signs on the fly? • In EM, we're playing with how we can use our collectibles and hazards to help the player flow towards the goal (or misdirect)
  • 187. Challenges • Tools development may rack up a significant cost: both time and money
  • 188. Challenges • Tools development may rack up a significant cost: both time and money
  • 189. Challenges • Tools development may rack up a significant cost: both time and money
  • 190. Challenges • Tools development may rack up a significant cost: both time and money • Strong programming knowledge required
  • 191. Challenges • Tools development may rack up a significant cost: both time and money • Strong programming knowledge required • significant debugging and refining
  • 192. Challenges • Tools development may rack up a significant cost: both time and money • Strong programming knowledge required • significant debugging and refining • responding to fringe cases
  • 193. Challenges • Tools development may rack up a significant cost: both time and money • Strong programming knowledge required • significant debugging and refining • responding to fringe cases • Potential "sameness" generated spaces
  • 194. Challenges • Tools development may rack up a significant cost: both time and money • Strong programming knowledge required • significant debugging and refining • responding to fringe cases • Potential "sameness" generated spaces • may be combated through:
  • 195. Challenges • Tools development may rack up a significant cost: both time and money • Strong programming knowledge required • significant debugging and refining • responding to fringe cases • Potential "sameness" generated spaces • may be combated through: • peppering in unique content
  • 196. Challenges • Tools development may rack up a significant cost: both time and money • Strong programming knowledge required • significant debugging and refining • responding to fringe cases • Potential "sameness" generated spaces • may be combated through: • peppering in unique content • combo approaches: both procedural and static
  • 198. Challenges • Balancing the power of your tools
  • 199. Challenges • Balancing the power of your tools • Easy Money? started out with 100 levels
  • 200. Challenges • Balancing the power of your tools • Easy Money? started out with 100 levels • PCG is not ideal for all types of games
  • 202. Summary • Must evaluate the pros and cons of PCG on a project-specific basic
  • 203. Summary • Must evaluate the pros and cons of PCG on a project-specific basic • The methods here can be leveraged for many different styles of games and tailored to many different level structures
  • 204. Summary • Must evaluate the pros and cons of PCG on a project-specific basic • The methods here can be leveraged for many different styles of games and tailored to many different level structures
  • 205. Summary • Must evaluate the pros and cons of PCG on a project-specific basic • The methods here can be leveraged for many different styles of games and tailored to many different level structures
  • 207. Takeaways • Break levels down into modular pieces
  • 208. Takeaways • Break levels down into modular pieces • Establish the PCG system early
  • 209. Takeaways • Break levels down into modular pieces • Establish the PCG system early • Tight integration between artists, designers and developers
  • 210. Takeaways • Break levels down into modular pieces • Establish the PCG system early • Tight integration between artists, designers and developers • PCG will affect decisions made by all groups
  • 211. Takeaways • Break levels down into modular pieces • Establish the PCG system early • Tight integration between artists, designers and developers • PCG will affect decisions made by all groups • You can use PCG to turn your games to 11!
  • 212. Alpha - http://easymoney.robotoverlord.co.uk/ Robot Overlord Games Heather Decker-Davis Luke Dicken heather@robotoverlord.co.uk luke@robotoverlord.co.uk @heathermdecker @LukeD

Hinweis der Redaktion

  1. \n
  2. Founded by Luke as an AI-centric "studio"\nFocused on AI prototypes, and later AI work-for-hire\nLong-time collaborator Heather joined in March as resident designer & artist\nGame development project spun out of Heather's MFA thesis\n
  3. Founded by Luke as an AI-centric "studio"\nFocused on AI prototypes, and later AI work-for-hire\nLong-time collaborator Heather joined in March as resident designer & artist\nGame development project spun out of Heather's MFA thesis\n
  4. Founded by Luke as an AI-centric "studio"\nFocused on AI prototypes, and later AI work-for-hire\nLong-time collaborator Heather joined in March as resident designer & artist\nGame development project spun out of Heather's MFA thesis\n
  5. Founded by Luke as an AI-centric "studio"\nFocused on AI prototypes, and later AI work-for-hire\nLong-time collaborator Heather joined in March as resident designer & artist\nGame development project spun out of Heather's MFA thesis\n
  6. Founded by Luke as an AI-centric "studio"\nFocused on AI prototypes, and later AI work-for-hire\nLong-time collaborator Heather joined in March as resident designer & artist\nGame development project spun out of Heather's MFA thesis\n
  7. Casual title based around risk/reward management\n"Millionaire" style lose-everything death penalty\nFacebook-based leaderboards\nIncreasing difficulty each level forces players to decide when to quit and log their score\nHand off to Heather after this one for a demo of the game\n
  8. Casual title based around risk/reward management\n"Millionaire" style lose-everything death penalty\nFacebook-based leaderboards\nIncreasing difficulty each level forces players to decide when to quit and log their score\nHand off to Heather after this one for a demo of the game\n
  9. Casual title based around risk/reward management\n"Millionaire" style lose-everything death penalty\nFacebook-based leaderboards\nIncreasing difficulty each level forces players to decide when to quit and log their score\nHand off to Heather after this one for a demo of the game\n
  10. Casual title based around risk/reward management\n"Millionaire" style lose-everything death penalty\nFacebook-based leaderboards\nIncreasing difficulty each level forces players to decide when to quit and log their score\nHand off to Heather after this one for a demo of the game\n
  11. Casual title based around risk/reward management\n"Millionaire" style lose-everything death penalty\nFacebook-based leaderboards\nIncreasing difficulty each level forces players to decide when to quit and log their score\nHand off to Heather after this one for a demo of the game\n
  12. Casual title based around risk/reward management\n"Millionaire" style lose-everything death penalty\nFacebook-based leaderboards\nIncreasing difficulty each level forces players to decide when to quit and log their score\nHand off to Heather after this one for a demo of the game\n
  13. \n
  14. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  15. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  16. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  17. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  18. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  19. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  20. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  21. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  22. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  23. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  24. Players expect lots of content in casual games\ntraditionally we were building this content purposefully, "by hand"\nInherent issues w/ static level content\nPlayers memorize levels and optimal paths - \nOften disinterested in replaying the same content\nPCG can keep it fresh. Imagine Temple Run with a fixed level layout\nEasier to store an algorithm than a set of assets\n
  25. One of my design goals was to facilitate a constant race to the top. Static content was at odds w/ this.\nAn ample set of levels was needed, and PCG could help us achieve this\nabout skill and reaction vs. muscle memory\nMazes are generated semi-randomly\nItems are deployed semi-randomly\nToday, we want to talk about how everything comes together and how PCG impacted our workflow and results\n
  26. One of my design goals was to facilitate a constant race to the top. Static content was at odds w/ this.\nAn ample set of levels was needed, and PCG could help us achieve this\nabout skill and reaction vs. muscle memory\nMazes are generated semi-randomly\nItems are deployed semi-randomly\nToday, we want to talk about how everything comes together and how PCG impacted our workflow and results\n
  27. One of my design goals was to facilitate a constant race to the top. Static content was at odds w/ this.\nAn ample set of levels was needed, and PCG could help us achieve this\nabout skill and reaction vs. muscle memory\nMazes are generated semi-randomly\nItems are deployed semi-randomly\nToday, we want to talk about how everything comes together and how PCG impacted our workflow and results\n
  28. One of my design goals was to facilitate a constant race to the top. Static content was at odds w/ this.\nAn ample set of levels was needed, and PCG could help us achieve this\nabout skill and reaction vs. muscle memory\nMazes are generated semi-randomly\nItems are deployed semi-randomly\nToday, we want to talk about how everything comes together and how PCG impacted our workflow and results\n
  29. One of my design goals was to facilitate a constant race to the top. Static content was at odds w/ this.\nAn ample set of levels was needed, and PCG could help us achieve this\nabout skill and reaction vs. muscle memory\nMazes are generated semi-randomly\nItems are deployed semi-randomly\nToday, we want to talk about how everything comes together and how PCG impacted our workflow and results\n
  30. One of my design goals was to facilitate a constant race to the top. Static content was at odds w/ this.\nAn ample set of levels was needed, and PCG could help us achieve this\nabout skill and reaction vs. muscle memory\nMazes are generated semi-randomly\nItems are deployed semi-randomly\nToday, we want to talk about how everything comes together and how PCG impacted our workflow and results\n
  31. One of my design goals was to facilitate a constant race to the top. Static content was at odds w/ this.\nAn ample set of levels was needed, and PCG could help us achieve this\nabout skill and reaction vs. muscle memory\nMazes are generated semi-randomly\nItems are deployed semi-randomly\nToday, we want to talk about how everything comes together and how PCG impacted our workflow and results\n
  32. One of my design goals was to facilitate a constant race to the top. Static content was at odds w/ this.\nAn ample set of levels was needed, and PCG could help us achieve this\nabout skill and reaction vs. muscle memory\nMazes are generated semi-randomly\nItems are deployed semi-randomly\nToday, we want to talk about how everything comes together and how PCG impacted our workflow and results\n
  33. More about setting up conditions for an envisioned range of possible player experiences than crafting a highly specific linear experience \nTerminology: static vs procedural.\nAnalogy: the difference between Peggle and Bejewelled - randomly placed and deliberately laid out\nSince many games follow the static content model and you may be used to developing this way, it might require conscious breaking of your previous development mindset\n
  34. More about setting up conditions for an envisioned range of possible player experiences than crafting a highly specific linear experience \nTerminology: static vs procedural.\nAnalogy: the difference between Peggle and Bejewelled - randomly placed and deliberately laid out\nSince many games follow the static content model and you may be used to developing this way, it might require conscious breaking of your previous development mindset\n
  35. More about setting up conditions for an envisioned range of possible player experiences than crafting a highly specific linear experience \nTerminology: static vs procedural.\nAnalogy: the difference between Peggle and Bejewelled - randomly placed and deliberately laid out\nSince many games follow the static content model and you may be used to developing this way, it might require conscious breaking of your previous development mindset\n
  36. More about setting up conditions for an envisioned range of possible player experiences than crafting a highly specific linear experience \nTerminology: static vs procedural.\nAnalogy: the difference between Peggle and Bejewelled - randomly placed and deliberately laid out\nSince many games follow the static content model and you may be used to developing this way, it might require conscious breaking of your previous development mindset\n
  37. More about setting up conditions for an envisioned range of possible player experiences than crafting a highly specific linear experience \nTerminology: static vs procedural.\nAnalogy: the difference between Peggle and Bejewelled - randomly placed and deliberately laid out\nSince many games follow the static content model and you may be used to developing this way, it might require conscious breaking of your previous development mindset\n
  38. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  39. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  40. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  41. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  42. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  43. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  44. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  45. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  46. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  47. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  48. Designing interactions for a space that does not yet exist - takes a different design mindset\nSpatial challenges - requires thought into the realm of possible results (are there potential impossible challenges?) and necessary constraints\nBreak it up. test core game mechanics - would this be fun? prior to developing a level gen system\n•Goodbye level design. System-oriented or formulaic progression is key - like all game design, requires testing to refine\n•Identify which variables impact your game in the desired manner - sense of fairness\n
  49. Test extremes of variables to find your target start and final level values, build a formula to fill in between point A and point B\nLinear equations - offer straightforward control, gradual progression... good starting pt. \nYou may choose to further shape the progression curve past the base linear format\n
  50. Test extremes of variables to find your target start and final level values, build a formula to fill in between point A and point B\nLinear equations - offer straightforward control, gradual progression... good starting pt. \nYou may choose to further shape the progression curve past the base linear format\n
  51. Test extremes of variables to find your target start and final level values, build a formula to fill in between point A and point B\nLinear equations - offer straightforward control, gradual progression... good starting pt. \nYou may choose to further shape the progression curve past the base linear format\n
  52. Test extremes of variables to find your target start and final level values, build a formula to fill in between point A and point B\nLinear equations - offer straightforward control, gradual progression... good starting pt. \nYou may choose to further shape the progression curve past the base linear format\n
  53. Test extremes of variables to find your target start and final level values, build a formula to fill in between point A and point B\nLinear equations - offer straightforward control, gradual progression... good starting pt. \nYou may choose to further shape the progression curve past the base linear format\n
  54. Test extremes of variables to find your target start and final level values, build a formula to fill in between point A and point B\nLinear equations - offer straightforward control, gradual progression... good starting pt. \nYou may choose to further shape the progression curve past the base linear format\n
  55. Test extremes of variables to find your target start and final level values, build a formula to fill in between point A and point B\nLinear equations - offer straightforward control, gradual progression... good starting pt. \nYou may choose to further shape the progression curve past the base linear format\n
  56. Test extremes of variables to find your target start and final level values, build a formula to fill in between point A and point B\nLinear equations - offer straightforward control, gradual progression... good starting pt. \nYou may choose to further shape the progression curve past the base linear format\n
  57. Test extremes of variables to find your target start and final level values, build a formula to fill in between point A and point B\nLinear equations - offer straightforward control, gradual progression... good starting pt. \nYou may choose to further shape the progression curve past the base linear format\n
  58. In general\nThe tech of how everything's put together will cause challenges for artists: involve them early\nArtists must think modularly and consider possible ways an asset may be positioned\nmodular assets in level editors - some parallels, but lack of direct control = new challenges\nMany possible approaches for art beyond this (theme packages, color shifting, procedural texture) Note pattern textures may prove difficult to predict/align\n
  59. In general\nThe tech of how everything's put together will cause challenges for artists: involve them early\nArtists must think modularly and consider possible ways an asset may be positioned\nmodular assets in level editors - some parallels, but lack of direct control = new challenges\nMany possible approaches for art beyond this (theme packages, color shifting, procedural texture) Note pattern textures may prove difficult to predict/align\n
  60. In general\nThe tech of how everything's put together will cause challenges for artists: involve them early\nArtists must think modularly and consider possible ways an asset may be positioned\nmodular assets in level editors - some parallels, but lack of direct control = new challenges\nMany possible approaches for art beyond this (theme packages, color shifting, procedural texture) Note pattern textures may prove difficult to predict/align\n
  61. In general\nThe tech of how everything's put together will cause challenges for artists: involve them early\nArtists must think modularly and consider possible ways an asset may be positioned\nmodular assets in level editors - some parallels, but lack of direct control = new challenges\nMany possible approaches for art beyond this (theme packages, color shifting, procedural texture) Note pattern textures may prove difficult to predict/align\n
  62. In general\nThe tech of how everything's put together will cause challenges for artists: involve them early\nArtists must think modularly and consider possible ways an asset may be positioned\nmodular assets in level editors - some parallels, but lack of direct control = new challenges\nMany possible approaches for art beyond this (theme packages, color shifting, procedural texture) Note pattern textures may prove difficult to predict/align\n
  63. In general\nThe tech of how everything's put together will cause challenges for artists: involve them early\nArtists must think modularly and consider possible ways an asset may be positioned\nmodular assets in level editors - some parallels, but lack of direct control = new challenges\nMany possible approaches for art beyond this (theme packages, color shifting, procedural texture) Note pattern textures may prove difficult to predict/align\n
  64. In general\nThe tech of how everything's put together will cause challenges for artists: involve them early\nArtists must think modularly and consider possible ways an asset may be positioned\nmodular assets in level editors - some parallels, but lack of direct control = new challenges\nMany possible approaches for art beyond this (theme packages, color shifting, procedural texture) Note pattern textures may prove difficult to predict/align\n
  65. EM Specific\n•Art style embraced the level structure: old timey steampunk carnival sideshow\n- rivet cuffs\n•I say bring artists in early because it may take trial and error to figure out the best approach.\nTesting and prototyping.\n
  66. EM Specific\n•Art style embraced the level structure: old timey steampunk carnival sideshow\n- rivet cuffs\n•I say bring artists in early because it may take trial and error to figure out the best approach.\nTesting and prototyping.\n
  67. EM Specific\n•Art style embraced the level structure: old timey steampunk carnival sideshow\n- rivet cuffs\n•I say bring artists in early because it may take trial and error to figure out the best approach.\nTesting and prototyping.\n
  68. EM Specific\n•Art style embraced the level structure: old timey steampunk carnival sideshow\n- rivet cuffs\n•I say bring artists in early because it may take trial and error to figure out the best approach.\nTesting and prototyping.\n
  69. EM Specific\n•Art style embraced the level structure: old timey steampunk carnival sideshow\n- rivet cuffs\n•I say bring artists in early because it may take trial and error to figure out the best approach.\nTesting and prototyping.\n
  70. EM Specific\n•Art style embraced the level structure: old timey steampunk carnival sideshow\n- rivet cuffs\n•I say bring artists in early because it may take trial and error to figure out the best approach.\nTesting and prototyping.\n
  71. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  72. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  73. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  74. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  75. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  76. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  77. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  78. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  79. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  80. •Once general level characteristics were defined, 2D tiles were created\n•This allowed us to refine both the generation system and the piece set, easily iterate\n•Level gen system built to support easy add/removal of pieces\nonce the system was refined & basic tile set consistently produced desired results, we moved forward with 3D asset production\nOverall prototyping occurred in stages: 2D, 3D, pickups/funds, then hazards, each building on the last\n
  81. 3D level assets modelled based on 2d tiles\ncareful attention to scale and consistent construction ensured each piece would snap together properly on the grid\nOnce all models passed testing in-game, onward to texture.\nWith this particular engine, to minimize draw calls, I crammed as much onto a single texture sheet as possible - pickups to level pieces\nThey have individual UVs but all refer to a single image for texture info\nPacking aside, maximized reusability of pixel space for shared components\n\n
  82. 3D level assets modelled based on 2d tiles\ncareful attention to scale and consistent construction ensured each piece would snap together properly on the grid\nOnce all models passed testing in-game, onward to texture.\nWith this particular engine, to minimize draw calls, I crammed as much onto a single texture sheet as possible - pickups to level pieces\nThey have individual UVs but all refer to a single image for texture info\nPacking aside, maximized reusability of pixel space for shared components\n\n
  83. 3D level assets modelled based on 2d tiles\ncareful attention to scale and consistent construction ensured each piece would snap together properly on the grid\nOnce all models passed testing in-game, onward to texture.\nWith this particular engine, to minimize draw calls, I crammed as much onto a single texture sheet as possible - pickups to level pieces\nThey have individual UVs but all refer to a single image for texture info\nPacking aside, maximized reusability of pixel space for shared components\n\n
  84. 3D level assets modelled based on 2d tiles\ncareful attention to scale and consistent construction ensured each piece would snap together properly on the grid\nOnce all models passed testing in-game, onward to texture.\nWith this particular engine, to minimize draw calls, I crammed as much onto a single texture sheet as possible - pickups to level pieces\nThey have individual UVs but all refer to a single image for texture info\nPacking aside, maximized reusability of pixel space for shared components\n\n
  85. 3D level assets modelled based on 2d tiles\ncareful attention to scale and consistent construction ensured each piece would snap together properly on the grid\nOnce all models passed testing in-game, onward to texture.\nWith this particular engine, to minimize draw calls, I crammed as much onto a single texture sheet as possible - pickups to level pieces\nThey have individual UVs but all refer to a single image for texture info\nPacking aside, maximized reusability of pixel space for shared components\n\n
  86. 3D level assets modelled based on 2d tiles\ncareful attention to scale and consistent construction ensured each piece would snap together properly on the grid\nOnce all models passed testing in-game, onward to texture.\nWith this particular engine, to minimize draw calls, I crammed as much onto a single texture sheet as possible - pickups to level pieces\nThey have individual UVs but all refer to a single image for texture info\nPacking aside, maximized reusability of pixel space for shared components\n\n
  87. 3D level assets modelled based on 2d tiles\ncareful attention to scale and consistent construction ensured each piece would snap together properly on the grid\nOnce all models passed testing in-game, onward to texture.\nWith this particular engine, to minimize draw calls, I crammed as much onto a single texture sheet as possible - pickups to level pieces\nThey have individual UVs but all refer to a single image for texture info\nPacking aside, maximized reusability of pixel space for shared components\n\n
  88. 3D level assets modelled based on 2d tiles\ncareful attention to scale and consistent construction ensured each piece would snap together properly on the grid\nOnce all models passed testing in-game, onward to texture.\nWith this particular engine, to minimize draw calls, I crammed as much onto a single texture sheet as possible - pickups to level pieces\nThey have individual UVs but all refer to a single image for texture info\nPacking aside, maximized reusability of pixel space for shared components\n\n
  89. 3D level assets modelled based on 2d tiles\ncareful attention to scale and consistent construction ensured each piece would snap together properly on the grid\nOnce all models passed testing in-game, onward to texture.\nWith this particular engine, to minimize draw calls, I crammed as much onto a single texture sheet as possible - pickups to level pieces\nThey have individual UVs but all refer to a single image for texture info\nPacking aside, maximized reusability of pixel space for shared components\n\n
  90. Creating mazes isn't overly hard\nBiggest challenge is tracking representation internally\nThis is not a code tutorial so skipping all of that!\nAll we really need to grow a maze is place appropriate pieces into the game world\nAnywhere that is a "road to nowhere" can have more maze tagged on.\nVery efficient approach\nGenerates some nice spaces, images are using 2D prototypes that Heather mentioned\n(1st image)\nIntended to create mazes of around 20 pieces, but scales well\nAround 30,000 it starts to chug and take a few seconds\n(2nd image)\n
  91. Creating mazes isn't overly hard\nBiggest challenge is tracking representation internally\nThis is not a code tutorial so skipping all of that!\nAll we really need to grow a maze is place appropriate pieces into the game world\nAnywhere that is a "road to nowhere" can have more maze tagged on.\nVery efficient approach\nGenerates some nice spaces, images are using 2D prototypes that Heather mentioned\n(1st image)\nIntended to create mazes of around 20 pieces, but scales well\nAround 30,000 it starts to chug and take a few seconds\n(2nd image)\n
  92. Creating mazes isn't overly hard\nBiggest challenge is tracking representation internally\nThis is not a code tutorial so skipping all of that!\nAll we really need to grow a maze is place appropriate pieces into the game world\nAnywhere that is a "road to nowhere" can have more maze tagged on.\nVery efficient approach\nGenerates some nice spaces, images are using 2D prototypes that Heather mentioned\n(1st image)\nIntended to create mazes of around 20 pieces, but scales well\nAround 30,000 it starts to chug and take a few seconds\n(2nd image)\n
  93. Creating mazes isn't overly hard\nBiggest challenge is tracking representation internally\nThis is not a code tutorial so skipping all of that!\nAll we really need to grow a maze is place appropriate pieces into the game world\nAnywhere that is a "road to nowhere" can have more maze tagged on.\nVery efficient approach\nGenerates some nice spaces, images are using 2D prototypes that Heather mentioned\n(1st image)\nIntended to create mazes of around 20 pieces, but scales well\nAround 30,000 it starts to chug and take a few seconds\n(2nd image)\n
  94. Creating mazes isn't overly hard\nBiggest challenge is tracking representation internally\nThis is not a code tutorial so skipping all of that!\nAll we really need to grow a maze is place appropriate pieces into the game world\nAnywhere that is a "road to nowhere" can have more maze tagged on.\nVery efficient approach\nGenerates some nice spaces, images are using 2D prototypes that Heather mentioned\n(1st image)\nIntended to create mazes of around 20 pieces, but scales well\nAround 30,000 it starts to chug and take a few seconds\n(2nd image)\n
  95. Creating mazes isn't overly hard\nBiggest challenge is tracking representation internally\nThis is not a code tutorial so skipping all of that!\nAll we really need to grow a maze is place appropriate pieces into the game world\nAnywhere that is a "road to nowhere" can have more maze tagged on.\nVery efficient approach\nGenerates some nice spaces, images are using 2D prototypes that Heather mentioned\n(1st image)\nIntended to create mazes of around 20 pieces, but scales well\nAround 30,000 it starts to chug and take a few seconds\n(2nd image)\n
  96. Creating mazes isn't overly hard\nBiggest challenge is tracking representation internally\nThis is not a code tutorial so skipping all of that!\nAll we really need to grow a maze is place appropriate pieces into the game world\nAnywhere that is a "road to nowhere" can have more maze tagged on.\nVery efficient approach\nGenerates some nice spaces, images are using 2D prototypes that Heather mentioned\n(1st image)\nIntended to create mazes of around 20 pieces, but scales well\nAround 30,000 it starts to chug and take a few seconds\n(2nd image)\n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. This is one shows that we are aware there is a piece to the North that doesn't have a corresponding Southerly connection, so the piece selected at random cannot have a North connection\n
  104. Likewise here, it cannot have a north pipe\n
  105. \n
  106. \n
  107. \n
  108. \n
  109. This one /must/ have a north connection to keep the maze complete\n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. End Capping\n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. One end-cap is replaced with the end room asset\n
  134. The algorithm implicitly produces "fully connected" mazes.\nWe use some simple checks to validate the mazes produced are interesting\nNumber of dead-ends placed in the maze\nDistance from start to end\nNumber of pieces that have been placed\nIf any of these checks fail, the maze is rejected and a new one generated\n
  135. The algorithm implicitly produces "fully connected" mazes.\nWe use some simple checks to validate the mazes produced are interesting\nNumber of dead-ends placed in the maze\nDistance from start to end\nNumber of pieces that have been placed\nIf any of these checks fail, the maze is rejected and a new one generated\n
  136. The algorithm implicitly produces "fully connected" mazes.\nWe use some simple checks to validate the mazes produced are interesting\nNumber of dead-ends placed in the maze\nDistance from start to end\nNumber of pieces that have been placed\nIf any of these checks fail, the maze is rejected and a new one generated\n
  137. The algorithm implicitly produces "fully connected" mazes.\nWe use some simple checks to validate the mazes produced are interesting\nNumber of dead-ends placed in the maze\nDistance from start to end\nNumber of pieces that have been placed\nIf any of these checks fail, the maze is rejected and a new one generated\n
  138. The algorithm implicitly produces "fully connected" mazes.\nWe use some simple checks to validate the mazes produced are interesting\nNumber of dead-ends placed in the maze\nDistance from start to end\nNumber of pieces that have been placed\nIf any of these checks fail, the maze is rejected and a new one generated\n
  139. Frequent question\nEssentially boils down to P vs NP\nVerification is a very simple process\nGuiding generation is way more complex\nDo we solve the simple problem multiple times, or the complex problem once\nYour mileage may vary\nDepends a lot on the frequency you will reject generated spaces with\nFor EM this is about 1 in 50, and we can generate a maze without guidance on the order of 2ms\nQuick maths and at 60fps - 2.56x10^-14 chance of slowing down even a frame\n
  140. Frequent question\nEssentially boils down to P vs NP\nVerification is a very simple process\nGuiding generation is way more complex\nDo we solve the simple problem multiple times, or the complex problem once\nYour mileage may vary\nDepends a lot on the frequency you will reject generated spaces with\nFor EM this is about 1 in 50, and we can generate a maze without guidance on the order of 2ms\nQuick maths and at 60fps - 2.56x10^-14 chance of slowing down even a frame\n
  141. Frequent question\nEssentially boils down to P vs NP\nVerification is a very simple process\nGuiding generation is way more complex\nDo we solve the simple problem multiple times, or the complex problem once\nYour mileage may vary\nDepends a lot on the frequency you will reject generated spaces with\nFor EM this is about 1 in 50, and we can generate a maze without guidance on the order of 2ms\nQuick maths and at 60fps - 2.56x10^-14 chance of slowing down even a frame\n
  142. Frequent question\nEssentially boils down to P vs NP\nVerification is a very simple process\nGuiding generation is way more complex\nDo we solve the simple problem multiple times, or the complex problem once\nYour mileage may vary\nDepends a lot on the frequency you will reject generated spaces with\nFor EM this is about 1 in 50, and we can generate a maze without guidance on the order of 2ms\nQuick maths and at 60fps - 2.56x10^-14 chance of slowing down even a frame\n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. Analysis needs context\nIn particular for tracking Fringe Cases - Heather mentioned\nHow can we inspect events in a player's game when that content is being generated on the fly?\nNeed to have the ability to export configurations of levels along with analytics data\nSo also need to be able to bypass PCG system and load up a specific maze for replay\n
  154. Analysis needs context\nIn particular for tracking Fringe Cases - Heather mentioned\nHow can we inspect events in a player's game when that content is being generated on the fly?\nNeed to have the ability to export configurations of levels along with analytics data\nSo also need to be able to bypass PCG system and load up a specific maze for replay\n
  155. Analysis needs context\nIn particular for tracking Fringe Cases - Heather mentioned\nHow can we inspect events in a player's game when that content is being generated on the fly?\nNeed to have the ability to export configurations of levels along with analytics data\nSo also need to be able to bypass PCG system and load up a specific maze for replay\n
  156. We have parameters that we're using\nfor generation\nfor verification\nfor ingame properties\nSo it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty\nLarger mazes, more mines, faster moving mines, increase the branching of the maze\nAs the game progresses, we can control the tone of the spaces being created\nSee Tiny Wings for a good example of this in action\n
  157. We have parameters that we're using\nfor generation\nfor verification\nfor ingame properties\nSo it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty\nLarger mazes, more mines, faster moving mines, increase the branching of the maze\nAs the game progresses, we can control the tone of the spaces being created\nSee Tiny Wings for a good example of this in action\n
  158. We have parameters that we're using\nfor generation\nfor verification\nfor ingame properties\nSo it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty\nLarger mazes, more mines, faster moving mines, increase the branching of the maze\nAs the game progresses, we can control the tone of the spaces being created\nSee Tiny Wings for a good example of this in action\n
  159. We have parameters that we're using\nfor generation\nfor verification\nfor ingame properties\nSo it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty\nLarger mazes, more mines, faster moving mines, increase the branching of the maze\nAs the game progresses, we can control the tone of the spaces being created\nSee Tiny Wings for a good example of this in action\n
  160. We have parameters that we're using\nfor generation\nfor verification\nfor ingame properties\nSo it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty\nLarger mazes, more mines, faster moving mines, increase the branching of the maze\nAs the game progresses, we can control the tone of the spaces being created\nSee Tiny Wings for a good example of this in action\n
  161. We have parameters that we're using\nfor generation\nfor verification\nfor ingame properties\nSo it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty\nLarger mazes, more mines, faster moving mines, increase the branching of the maze\nAs the game progresses, we can control the tone of the spaces being created\nSee Tiny Wings for a good example of this in action\n
  162. We have parameters that we're using\nfor generation\nfor verification\nfor ingame properties\nSo it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty\nLarger mazes, more mines, faster moving mines, increase the branching of the maze\nAs the game progresses, we can control the tone of the spaces being created\nSee Tiny Wings for a good example of this in action\n
  163. We have parameters that we're using\nfor generation\nfor verification\nfor ingame properties\nSo it isn't hard to see that if we start manipulating these parameters we can start varying the difficulty\nLarger mazes, more mines, faster moving mines, increase the branching of the maze\nAs the game progresses, we can control the tone of the spaces being created\nSee Tiny Wings for a good example of this in action\n
  164. We can go a step further tho\nRather than adapting the game to suit the degree of challenge we want a specific level to represent\nWe can look at how the player is playing the game and what they are choosing to spend time on\nThen tailor the game to these tastes\nPlayers who prefer exploration can be given larger spaces\nPlayers who dash to the goal can be given tight mazes with more hazards\n
  165. We can go a step further tho\nRather than adapting the game to suit the degree of challenge we want a specific level to represent\nWe can look at how the player is playing the game and what they are choosing to spend time on\nThen tailor the game to these tastes\nPlayers who prefer exploration can be given larger spaces\nPlayers who dash to the goal can be given tight mazes with more hazards\n
  166. We can go a step further tho\nRather than adapting the game to suit the degree of challenge we want a specific level to represent\nWe can look at how the player is playing the game and what they are choosing to spend time on\nThen tailor the game to these tastes\nPlayers who prefer exploration can be given larger spaces\nPlayers who dash to the goal can be given tight mazes with more hazards\n
  167. We can go a step further tho\nRather than adapting the game to suit the degree of challenge we want a specific level to represent\nWe can look at how the player is playing the game and what they are choosing to spend time on\nThen tailor the game to these tastes\nPlayers who prefer exploration can be given larger spaces\nPlayers who dash to the goal can be given tight mazes with more hazards\n
  168. We've talked about making the level\nWe've talked about catering the level to the player\nHow can we guide the player?\nSignposting is how designers subtly influence player perceptions\nLights under "important" doors\nCan we generate these signs on the fly?\nIn EM, we're playing with how we can use our collectibles and hazards to help the player flow towards the goal (or misdirect)\n
  169. We've talked about making the level\nWe've talked about catering the level to the player\nHow can we guide the player?\nSignposting is how designers subtly influence player perceptions\nLights under "important" doors\nCan we generate these signs on the fly?\nIn EM, we're playing with how we can use our collectibles and hazards to help the player flow towards the goal (or misdirect)\n
  170. We've talked about making the level\nWe've talked about catering the level to the player\nHow can we guide the player?\nSignposting is how designers subtly influence player perceptions\nLights under "important" doors\nCan we generate these signs on the fly?\nIn EM, we're playing with how we can use our collectibles and hazards to help the player flow towards the goal (or misdirect)\n
  171. We've talked about making the level\nWe've talked about catering the level to the player\nHow can we guide the player?\nSignposting is how designers subtly influence player perceptions\nLights under "important" doors\nCan we generate these signs on the fly?\nIn EM, we're playing with how we can use our collectibles and hazards to help the player flow towards the goal (or misdirect)\n
  172. We've talked about making the level\nWe've talked about catering the level to the player\nHow can we guide the player?\nSignposting is how designers subtly influence player perceptions\nLights under "important" doors\nCan we generate these signs on the fly?\nIn EM, we're playing with how we can use our collectibles and hazards to help the player flow towards the goal (or misdirect)\n
  173. We've talked about making the level\nWe've talked about catering the level to the player\nHow can we guide the player?\nSignposting is how designers subtly influence player perceptions\nLights under "important" doors\nCan we generate these signs on the fly?\nIn EM, we're playing with how we can use our collectibles and hazards to help the player flow towards the goal (or misdirect)\n
  174. We've talked about making the level\nWe've talked about catering the level to the player\nHow can we guide the player?\nSignposting is how designers subtly influence player perceptions\nLights under "important" doors\nCan we generate these signs on the fly?\nIn EM, we're playing with how we can use our collectibles and hazards to help the player flow towards the goal (or misdirect)\n
  175. We've talked about making the level\nWe've talked about catering the level to the player\nHow can we guide the player?\nSignposting is how designers subtly influence player perceptions\nLights under "important" doors\nCan we generate these signs on the fly?\nIn EM, we're playing with how we can use our collectibles and hazards to help the player flow towards the goal (or misdirect)\n
  176. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  177. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  178. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  179. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  180. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  181. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  182. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  183. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  184. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  185. First and foremost: not a silver bullet, but good to have in the tool set\nTools development, creating your content gen systems, can end up being a quagmire of cost and time\n(see Spore, ambitious but infamously over-budget and behind schedule)\nTeam MUST have strong programming\nample time WILL be spent debugging and refining procedural systems, responding to fringe cases\nPotential "sameness" of autonomously generated spaces\nmay be combated through:\nintroduction of unique content over time, but each new level gen feature must be tested and refined\ncombination approaches, as seen in Diablo games\n
  186. balance - potential for nearly limitless content, but offering endless levels often conflicts w/ player expectations, finite goals\nUse your newfound PCG powers wisely\n(EM had 100 levels... dropped to 25)\nprocedural level generation is not ideal for all types of games\nFor example, environmental storytelling becomes a challenge\n
  187. balance - potential for nearly limitless content, but offering endless levels often conflicts w/ player expectations, finite goals\nUse your newfound PCG powers wisely\n(EM had 100 levels... dropped to 25)\nprocedural level generation is not ideal for all types of games\nFor example, environmental storytelling becomes a challenge\n
  188. balance - potential for nearly limitless content, but offering endless levels often conflicts w/ player expectations, finite goals\nUse your newfound PCG powers wisely\n(EM had 100 levels... dropped to 25)\nprocedural level generation is not ideal for all types of games\nFor example, environmental storytelling becomes a challenge\n
  189. developers should evaluate the pros and cons of procedural generation relative to their project before taking off w/ this path\nkey question: does the benefit brought by PCG warrant the tools dev, testing, etc?\nThe methods here can be leveraged for many different styles of games (RPGs, action, racing, etc.) and tailored to many different level structures\nA well-known example would be Diablo 3, which is structured essentially the same what we’ve been discussed here today.\n
  190. developers should evaluate the pros and cons of procedural generation relative to their project before taking off w/ this path\nkey question: does the benefit brought by PCG warrant the tools dev, testing, etc?\nThe methods here can be leveraged for many different styles of games (RPGs, action, racing, etc.) and tailored to many different level structures\nA well-known example would be Diablo 3, which is structured essentially the same what we’ve been discussed here today.\n
  191. developers should evaluate the pros and cons of procedural generation relative to their project before taking off w/ this path\nkey question: does the benefit brought by PCG warrant the tools dev, testing, etc?\nThe methods here can be leveraged for many different styles of games (RPGs, action, racing, etc.) and tailored to many different level structures\nA well-known example would be Diablo 3, which is structured essentially the same what we’ve been discussed here today.\n
  192. developers should evaluate the pros and cons of procedural generation relative to their project before taking off w/ this path\nkey question: does the benefit brought by PCG warrant the tools dev, testing, etc?\nThe methods here can be leveraged for many different styles of games (RPGs, action, racing, etc.) and tailored to many different level structures\nA well-known example would be Diablo 3, which is structured essentially the same what we’ve been discussed here today.\n
  193. Break levels down into modular pieces\nEstablish the PCG system early\nTight integration between artists, designers and developers\nPCG will affect decisions made by all groups\nYou can use PCG to turn your games to 11!\n
  194. Break levels down into modular pieces\nEstablish the PCG system early\nTight integration between artists, designers and developers\nPCG will affect decisions made by all groups\nYou can use PCG to turn your games to 11!\n
  195. Break levels down into modular pieces\nEstablish the PCG system early\nTight integration between artists, designers and developers\nPCG will affect decisions made by all groups\nYou can use PCG to turn your games to 11!\n
  196. Break levels down into modular pieces\nEstablish the PCG system early\nTight integration between artists, designers and developers\nPCG will affect decisions made by all groups\nYou can use PCG to turn your games to 11!\n
  197. Break levels down into modular pieces\nEstablish the PCG system early\nTight integration between artists, designers and developers\nPCG will affect decisions made by all groups\nYou can use PCG to turn your games to 11!\n
  198. \n