42
CS 673: Spring 2012 Game Design and Programming (Game) Systems System dynamics and systems literacy 2/14/2012 1 Andy Nealen, Rutgers, 2012

CS 673: Spring 2012 Game Design and Programming

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CS 673: Spring 2012 Game Design and Programming

CS 673: Spring 2012

Game Designand Programming

(Game) Systems

System dynamics and systems literacy

2/14/2012 1Andy Nealen, Rutgers, 2012

Page 2: CS 673: Spring 2012 Game Design and Programming

Thinking in Systems

Donella Meadows

Andy Nealen, Rutgers, 2012 2/14/2012 2

Page 3: CS 673: Spring 2012 Game Design and Programming

“A system is a set of things—people, cells, molecules, or whatever—

interconnected in such a way that they produce their own pattern of

behavior over time.”

Donella Meadows

Andy Nealen, Rutgers, 2012 2/14/2012 3

Page 4: CS 673: Spring 2012 Game Design and Programming

“A system is an interconnected set of elements that is coherently

organized in a way that achieves something.”

Donella Meadows

Andy Nealen, Rutgers, 2012 2/14/2012 4

Page 5: CS 673: Spring 2012 Game Design and Programming

Andy Nealen, Rutgers, 2012 2/14/2012 5

Elements

Interconnections

Function/Purpose

Page 6: CS 673: Spring 2012 Game Design and Programming

Elements

Visible, tangible things

Volatile, variable resources (oil, wood, etc.)

Macro: roots, trunk, branches, leaves

Micro: cells, vessels, fluids, chloroplasts

University: buildings, students, professors, etc.

Intangibles

University pride, academic prowess, etc.

Human preference, happiness, fun, fear, etc.

Andy Nealen, Rutgers, 2012 2/14/2012 6

Page 7: CS 673: Spring 2012 Game Design and Programming

Interconnections

Cause and effect [If A, then B]

If [resource] is available, property costs rise

If fuel is used, character shrinks

Rules and policies are modeled this way

When interconnections change, the system may be greatly altered

Think of this as a graph

Changing connections changes graph topology

Andy Nealen, Rutgers, 2012 2/14/2012 7

Page 8: CS 673: Spring 2012 Game Design and Programming

Function/Purpose

Fulfills a need/desire

So many successful systems in nature that we have no hand in (or should not have a hand in)

Explicitly designed systems need to live up to these standards

Time based (dynamic) behavior

Fluctuation of elements (tangible/intangible stock)

Self- sustainability and stability under uncertainty

Andy Nealen, Rutgers, 2012 2/14/2012 8

Page 9: CS 673: Spring 2012 Game Design and Programming

More than the sum of its parts

Andy Nealen, Rutgers, 2012 2/14/2012 9

Page 10: CS 673: Spring 2012 Game Design and Programming

Kinds of systems

Mechanical systems

Car motors, co-op/versus video/board games, etc.

Social systems

Neighborhoods, co-op/versus video/board games, etc.

Games are both mechanical and social

Andy Nealen, Rutgers, 2012 2/14/2012 10

Page 11: CS 673: Spring 2012 Game Design and Programming

System graphs (1)

Andy Nealen, Rutgers, 2012 2/14/2012 11

Stock. (resource) Memory of the history of changing flows in the system

Delays, buffers, shock absorbers of a system

Page 12: CS 673: Spring 2012 Game Design and Programming

System graphs (2)

Andy Nealen, Rutgers, 2012 2/14/2012 12

Page 13: CS 673: Spring 2012 Game Design and Programming

System graphs (3)

Andy Nealen, Rutgers, 2012 2/14/2012 13

Page 14: CS 673: Spring 2012 Game Design and Programming

Game example

Page 15: CS 673: Spring 2012 Game Design and Programming

(Simplified) Osmos system

Andy Nealen, Rutgers, 2012 2/14/2012 15

Momentum

Size/mass

Food/motes

Page 16: CS 673: Spring 2012 Game Design and Programming

(Simplified) Osmos system

Andy Nealen, Rutgers, 2012 2/14/2012 16

Momentum

Size/mass

Food/motes

Page 17: CS 673: Spring 2012 Game Design and Programming

(Simplified) Osmos system

Andy Nealen, Rutgers, 2012 2/14/2012 17

Momentum

Size/mass

Food/motes

Stock

Tangible. size + food

Less tangible. Momentum

Osmos forms a closed system

Many games do this

But: also have a social layer/system

Page 18: CS 673: Spring 2012 Game Design and Programming

Feedback loops

Andy Nealen, Rutgers, 2012 2/14/2012 18

Page 19: CS 673: Spring 2012 Game Design and Programming

“A feedback loop is a closed chain of causal connections, from a stock

through a set of decisions or rules or physical laws or actions that are

dependent on the level of stock, and back again through a flow to change

the stock.”

Donella Meadows

Andy Nealen, Rutgers, 2012 2/14/2012 19

Page 20: CS 673: Spring 2012 Game Design and Programming

Balancing feedback loops

Aka “negative” feedback loops

Goal seeking or stability seeking

Mass spring systems (restoring spring forces)

Thermostat that tries to achieve target temperature

Cooling of hot beverage

Andy Nealen, Rutgers, 2012 2/14/2012 20

Page 21: CS 673: Spring 2012 Game Design and Programming

Game example

Page 22: CS 673: Spring 2012 Game Design and Programming

Reinforcing feedback loops

Aka “positive” (or runaway) feedback loops

Lead to exponential growth or runaway collapses over time

Game example: chess

If I lose pieces, I am more likely to lose(and vice versa)

Andy Nealen, Rutgers, 2012 2/14/2012 22

Page 23: CS 673: Spring 2012 Game Design and Programming

Game example

Andy Nealen, Rutgers, 2012 2/14/2012 23

Momentum

Size/mass

Food/motes

Osmos

Reduction of size as momentum is added is a balancing feedback loop

Increase in size as motes are consumed is a reinforcing feedback loop

They need to be in balance (hard!)

Page 24: CS 673: Spring 2012 Game Design and Programming

Single stock + two balancing loops

Andy Nealen, Rutgers, 2012 2/14/2012 24

Page 25: CS 673: Spring 2012 Game Design and Programming

Single stock + two balancing loops

Andy Nealen, Rutgers, 2012 2/14/2012 25

Page 26: CS 673: Spring 2012 Game Design and Programming

Single stock + two balancing loops

Andy Nealen, Rutgers, 2012 2/14/2012 26

Even simpler example: hot/cold shower

Page 27: CS 673: Spring 2012 Game Design and Programming

Does this look familiar?

Andy Nealen, Rutgers, 2012 2/14/2012 27

Page 28: CS 673: Spring 2012 Game Design and Programming

Does this look familiar?

Andy Nealen, Rutgers, 2012 2/14/2012 28

Time step in Euler integration

Depending on stiffness of ODE, smaller time step

rest length stretched

f(t) s(t)

s(t)

t

f(t) = k∙s(t)

t

Page 29: CS 673: Spring 2012 Game Design and Programming

Oscillations

Andy Nealen, Rutgers, 2012 2/14/2012 29t

Time step in Euler integration

Depending on stiffness of ODE, smaller time step

rest length stretched

f(t) s(t)

s(t)

t

f(t) = k∙s(t)To infinity!(eventually)

Page 30: CS 673: Spring 2012 Game Design and Programming

How to fix this? (1)

Andy Nealen, Rutgers, 2012 2/14/2012 30

Page 31: CS 673: Spring 2012 Game Design and Programming

How to fix this? (2)

Andy Nealen, Rutgers, 2012 2/14/2012 31

Page 32: CS 673: Spring 2012 Game Design and Programming

How to fix this? (3)

Andy Nealen, Rutgers, 2012 2/14/2012 32

Page 33: CS 673: Spring 2012 Game Design and Programming

Dynamic perception

We need (spacetime) contrast to perceive difference and change… and explore

But thinking in spatio-temporal system dynamics is not trivial since cause and effect is not always obvious

We are linear minds in a non-linear world

Most relations are not linear

Examples. soil erosion, material behavior, etc.

Andy Nealen, Rutgers, 2012 2/14/2012 33

Page 34: CS 673: Spring 2012 Game Design and Programming

Purpose/Meaning/Function

Andy Nealen, Rutgers, 2012 2/14/2012 34

Page 35: CS 673: Spring 2012 Game Design and Programming

Purpose of a system

Procedural rhetoric (Ian Bogost)

Procedurality. creating, explaining, or understanding processes. And processes definethe way things work

Rhetoric. effective and persuasive expression

Dynamical meaning (Jon Blow, MIGS 2008)

Anytime we set up a system of behavior, that system communicates something to the player, whether intentional or not.

Andy Nealen, Rutgers, 2012 2/14/2012 35

Page 36: CS 673: Spring 2012 Game Design and Programming

From Jon’s talk (1)

Andy Nealen, Rutgers, 2012 2/14/2012 36

Video games are not a traditional storytelling medium per se. The player is an agent of chaos, making the medium ill-equipped to convey a pre-authored narrative with anywhere near the effectiveness of books or film. Rather, a video game is a box of possibilities, and the best stories told are those that arise from the player expressing his own agency within a functional, believable gameworld…

Steve Gaynor from his blog Fullbright,July 27th, 2008:

Page 37: CS 673: Spring 2012 Game Design and Programming

From Jon’s talk (2)

Andy Nealen, Rutgers, 2012 2/14/2012 37

Frank Lantz (via email):

“...meaning which is less specific, less concrete and deliberate, harder to define, harder to pin down, a meaning that transcends the author-reader conduit model of ‘message’ style meaning, a meaning that absorbs intention but is not bound by it, a meaning that can't be reduced to a claim about the world, but is no less about the world because of it.”

Page 38: CS 673: Spring 2012 Game Design and Programming

Systems literacy

Analysis/redesign of existing systems

Hone ability to understand parts

See/understand interconnections

Ask “what if” questions about future behaviors

Be creative and courageous about system redesign

All of this becomes your toolbox as a designer

Find common abstractions of solved problems

We are amazing pattern recognizers. Use this!

Andy Nealen, Rutgers, 2012 2/14/2012 38

Page 39: CS 673: Spring 2012 Game Design and Programming

Tweaking and redesigning

Numbers. Double or halve your parameters

Buffers. Sizes of stocks/resources

Stock/flow structures.

Delays. Delay between cause and effect

Balancing/reinforcing feedback loops.

Information flows. What to render and hide?

Rules. Interconnection policies

Structure. The interconnections themselves

Andy Nealen, Rutgers, 2012 2/14/2012 39

Page 40: CS 673: Spring 2012 Game Design and Programming

Momentum in flOw is free (other interesting progress stucture though!)

Osmos system and flOw system

Andy Nealen, Rutgers, 2012 2/14/2012 40

Momentum

Size/mass

Food/motes

Momentum

Size/mass

Food/motes

Page 41: CS 673: Spring 2012 Game Design and Programming

Guidelines

Get the beat of the system (playtest!)

Expose your mental models to others

Pay attention to everything, even intangibles and aesthetics, and try to get a feel for how they influence system (social/mechanical) dynamics

Implement feedback policies for loops based on experience and playtesting (!!!)

Andy Nealen, Rutgers, 2012 2/14/2012 41

Page 42: CS 673: Spring 2012 Game Design and Programming

Further Reading

Meadows, Thinking in Systems

Hunicke et al., MDA

Salen/Zimmerman, Rules of Play

The world outside and all around you

Nope. Not kidding.

2/14/2012 42Andy Nealen, Rutgers, 2012