mail@pastecode.io avatar
6 months ago
38 kB
okay so dynamics um so this really as a game designer i think in terms of i've got this big set
of legos you know and i applaud the legos and i can pull them together and stick them you know uh into each other to make game designs
or interactive systems um and they're actually they're like kind of two types of people they're the people that have all their legos in a box unsorted and
there's people that have their logos perfectly sorted in like a fishing tackle box um and normally i'm the person that has
the legos unsorted in the box but you know when i started thinking about dynamics and how i could talk about that you know
really came to taking them out unsorting them saying okay yeah this is something i use and that's this and this is something else i use so really i'm going
to talk about three things here kind of three intersecting dimensions number one of the topologies which i
mentioned kind of in passing a little bit earlier the idea that we have agents networks and layers i'm stating a little bit
differently here but these are kind of the way things relate to each other in a structural sense both you know through time or
spatial then we have what i'm calling dynamics themselves these are the ways in which
these structures change through time and the last thing here are the
paradigms these are kind of different ways of looking at the world and parsing it into some model
this you know i'm going to kind of do last and going to go kind of through a historical approach and this has to do with like simulation method
methodologies so um topology
first or just kind of we've talked about this briefly but one thing you can do is you can look at a game topologically um
you know some games are very linear like missed you know you kind of go through and it has you know pretty much a set of puzzles you have to unlock in order um
some games are a bit more open-ended like chess where there's a definite starting point and you know many millions of ending possible ending
points a lot of games like first person shooters in fact are like this bottom thing where you have kind of a web
between nodes when you're on a level you can run around do whatever you want but basically you have to eventually get the red key to open the door to get to the
next level at which point the whole state starts over so you have this kind of collapsing little webs connected through nodes
um open-ended simulations like simcity are a little bit more web-like um and so you know i think in games that's
the trend is getting more open-ended more web-like um even with in-games and i think i
showed you the slide already each one of these topologies is roughly represented um
agents and games are you know agent-based simulations are becoming uh much more interesting because of their
flexibility uh the sims the actual little people in the game the sims are kind of agents they make autonomous little decisions
um players in the sims online form these social connections and these kind of groups of households or clubs and in
some sense those are like networks you have this kind of social networks and layers you know you typically find
in any game you know the uh basically the dimension here is from rigid to flexible
agents have the most flexible kind of interactions they can kind of reform themselves very rapidly over short periods of time whereas
a layer you know your neighbor today is going to be your neighbor tomorrow generally you don't have you know the components of a layer moving around so
that's the chief kind of definition between these now these dynamics can occur through all
these topologies um we can experience growth you know either in agents you
know either in size or number maybe a population model networks can expand or the links can expand and then
on these layers we can have kind of expansion through space a lot of times we use a lot of dispersion algorithms for things like
pollution um you know in network things really building up a structure and it
might be a social structure or it might be some more technical it might be even a tech tree where the topology of the thing is changing over time
propagation is the movement of something through these networks or primarily through networks it can be material it
can be information or it can even just be patterns typically it's happening through networks
a lot of times you know there's propagation happening you know between your user base this is a lot this is
outside the game the way we think about it we propagate you know ideas like we might have a new sheet for a game and we tell them you know the fan sites about
it and then they tell the player sites and then it propagates amongst them that's kind of a top-down global propagation um a lot of things propagate from you
know horizontally through one of these layers a lot of cheats that players discover
they then you know pass on to other players and at some point that there's you know kind of a currency involved here between the players and there's a friction involved too
so certain directions through this topology have higher friction than others
um sometimes that friction has to do with how hardcore the people are in the game uh sometimes when you drop information
into a game or into a player base the hardcore players get it very early on they're the early adopters and they get
the highest value out of that information and they burn through it very fast the same thing is true with content when we add new objects to games
typically the hardcore people download it first and they'll sit there and play for five hours straight and then they're done with it you know and the more
casual players might come across it a week later and they might play with it for a week and so it's almost like this wave that is very steep you know the
initial hardcore targeted group and then gets wider as it disperses further and further out um viral marketing very much
follows this kind of example too you really want to kind of target the group that's going to have the highest amplitude of that wave to give the wave
you know the longest eventual distance grouping is something that we use a lot
generally we think of grouping and games a lot of time as it's driven by competition you know a group of things comes together to then out compete a
larger group um or other individuals uh usually there are economies of scales involved the reason you're grouping is
because you know two of them are more than twice as strong as one this could be like a military unit where you bring together military guys or it could be an
economic thing where you're bringing together factories um it involves some amount of communication and control between the components now i
realize i'm kind of talking through all of this in very abstract terms but i'll get a little more specific later but um
think about these things as parts that you can recombine for different purposes
one thing that grouping tends to do is it tends to drive specialization when you have a group coming together or maybe it's just a tribe coming to form a
city at that point once you get a critical mass you can have people start to specialize and become craftsmen or warriors hunters
farmers when that happens a lot of times there's what we call jumping of levels a higher
level of abstraction the coordination between a group when
you have members of a group coming together there's an inefficiency that they have
going alone and when the coordination when the communication is high enough they can
out-compete the individuals as a group in other words a group is more efficient than the individuals competing on their own this drives specialization um
in fact the communication enables specialization in a lot of networks a lot of systems for instance uh
the um when multicellular creatures started evolving on earth the development of the neuron was a communications technology that then
enabled these different types of neurons to then communicate and kind of coordinate and specialize and it was
that specialization that allowed multicellular creatures to start out competing some of the single solid creatures around them
um in some sense specialization breeds networks there are network structures that are built on top of specialization
that basically further it you know they tend to push specialization further out a lot of games in this i'm trying a little more
specific here we try to take things like tech trees or relationships between components
and they can be basically specialized networks that are slowly growing over time where you have a few base units
that eventually can start making more and more specialized units this is a view through time of a typical typical
game like civilization at any point in time you can draw a slice through this and say okay the units i can now build i can now build 10
units instead of two which is a much more specialized more efficient kind of grouping
we see this a lot in our fan communities we see special roles that people take up
this is kind of one view of our sims fan community where we have certain people building tools um that our content
artists use to build like new skins and objects for the game that feed websites that are now you know putting up sites
for other casual players to download where they might just be collecting objects or even telling stories
each one of these has kind of a critical mass and a dependency in this network
um there are allocation decisions that are going on in these networks and these you know specialized groups you're making
decisions on you know where to spend your time where to move materials um in a lot of games this is the primary
player model uh you have a certain number of things that you can allocate you have a certain amount of money to spend building your buildings in simcity
and each building is a specialized component of this group effort competing with other cities and so a lot of games
are kind of built around many of these components put together mapping is another one where these are
temporary associations between units usually to improve the functional performance of something you know a very
simple example is maybe connecting the road networks in simcity what am i going to connect to what else a more elaborate game might be something like the sims
online with who am i going to make a friend maybe you know and it's a very kind of group competition thing there was a
thing in the sims online actually where we had a mafia up here and it was these players that were grouped together very tightly and
coordinating basically grief playing the other players and uh if they decided somebody was doing something in the game
they didn't like they would actually kind of send people over to make them enemies and just generally kind of bother them and harass them in the game
and these things were reforming all the time in fact we were kind of attacking these groups and you know very quickly they would kind of dissolve and reform
then you know after the mafia was dissolved it became the sim shadow government and so these things are very uh you know the mapping that the players
can do between each other and even within a game is pretty amazing um there's also a mapping that you do um
in a game sometimes in more of an early setup phase a lot of fighting games this is one of my favorite games it's
godzilla destroy all monsters it's kind of a godzilla fighting game like mortal kombat with you know super monsters
but um every monster has kind of certain superpowers and it's kind of a paper rock scissors thing where if he's
picking mechagodzilla oh i know godzilla can kick his butt and so you're kind of mapping almost like that example i gave
with some more you know every player is making a different mapping trying to guess what the other player is going to do and you're mapping to abilities also mapping
your skill i'm very good at playing this guy but i'm very bad at playing that guy there's behavioral mapping that happens
in our game you know a lot of our the behavior in our game is very simple we call state machine behavior so given you
know a given environmental situation out of a range of different actions that an agent can perform you know it picks
the appropriate one for that situation and that's the behavioral response and so that's basically as complica complex
as a lot of game behavior gets is a simple mapping exercise um in online games one thing that we're
finding is that the primary experience that people have in playing an online game really is the other players that they're
playing with um you know the game is very important kind of what they're doing in the game and what their you know the environment but really it's the
other players they meet and spend their time with that long term become either the biggest kind of attraction
or um you know problem with the game and so it's generally when people come to these
games they kind of meet each other haphazardly and randomly and that's kind of one of the things that we're trying to look into now is how can we measure a
player's profile how can we decide what type of stuff they like to do what type of environments they like to play in and
figure out how to match make them with the right other player almost like kind of a dating service an online match making thing
if we can do that in online games automatically to where you're automatically somehow routed or connected with other players that match
your interests i think the retention will be much much higher now basically what's interesting i've
kind of gone through these things very haphazardly but what's interesting is kind of the way these things all kind of then work
together and nest and the emergence and really in games when i say emergency this is kind of back to what i was
talking about with go where you have a very simple game very simple rules that come together and somehow magically emerge into a much
larger possibility space than you might imagine giving the small set and that's kind of you know for me that's the
aesthetic of games that you know for me that is a very uh elegant game compared to a very clunky
game is a game that has a high ratio there so um again kind of back into abstract
land we have little units here competing you know whatever it is these could be little cells competing in a you know petri dish this could be people
competing in a market um at some point uh some of the little
units decided to cooperate for whatever reason they realize that when they cooperate they can now compete the other individuals they're competing with
so they form in essence a unit once they form that unit they can actually start to specialize their function
and you know even further out-compete the individuals and so at some point the only things that can compete with this
unit now this grouping are other groupings and then basically that same process
keeps happening so now that once we have these little groups competing you know at some point you know some of them
start cooperating and you get kind of a larger union and this is kind of a very uh
almost abstract view of what i consider immersions is how these little components can come together and become
kind of a larger unit in a larger scheme you can look at a game like um we have levels here uh we have of course
agents we know which of these things competing and we have networks which is kind of the hierarchy here
this is kind of one way of understanding just kind of typical science you know physics kind of leads to chemistry leads to biology et cetera
um but also with games you know i think at the lowest level a game like the sims has interactions you know the kind of rough object interactions that are the
basis of the sims the you know the lowest possible verb on top of that we can build more elaborate behaviors which are stringing
together these actions these verbs then we can start building goals and situations scenarios on top of that and
even eventually with certain games have a story arc or the whole game you know goal so in some sense we want to be building
games like this rather than having to build the entire thing at the bottom level so we're having to program every possible possibility
basically you want a larger possibility space at each level so every time you jump a level like this and the solution space as well you want the players
experience to feel like it's gone up in order of magnitude when you manage to do this so to kind of recap
and i realize this is getting a little kind of spaghetti-like but uh in a lot of systems we have a situation where
there's competition occurring at some level that drives growth um because of the growth of the
competition there's grouping you know to a local advantage that involves some control structures
where you know they're having to communicate and cooperate to form the group they're probably boundaries involved
around that group saying that we know we're in the group you're outside the group um specialization starts happening
inside the group um for different reasons there's propagation of information and material between these members of the group there
are also networks that are being mapped out between the members of the group um which kind of feed back into the control
there's also allocation decisions being made about what's being propagated and mapping on the networks um and then
at some point there's a jumping up to the next level and then it starts the whole cycle over
again and so this is kind of one cycle of what i call emergence um now the last thing i want to talk about
here fairly briefly is uh the paradigms and this is more kind of a historical view
of the way we've looked at using computers primarily to model reality you know the different kind of grids that
we've tried to apply um you know we build models in science that's kind of what science does you
know we've got different models of the world some of them work very well relativity theory
you know does a great job of explaining the way the universe works at very large scales
quantum mechanic does a great job of explaining the way the universe works at very small scales i mean they're both kind of remarkable in how accurate they
are you know within their domain what's interesting is that these two theories are totally incompatible they just they
don't talk they don't plug into each other um they're both very good at explaining you know these extreme ends from the very
small to the very large but neither one of these can explain a duck at all i mean and this is
and this kind of drives home to the point i think that these models are not reality you know they are models you
know reality is something different you know and so these models you have to be careful not to confuse them with the way reality actually is
um way back in the day we had um well one thing let me say this
first that a lot of times the kind of primary modeling metaphor
that's been in vogue has always been based upon our current understanding of the world and the way the world was
changing you know in the most recent history really influenced the way we attempted the model of the rest of the
world so you know after world war ii nuclear power was around and we started making kind of of course these wild
extrapolations about where nuclear power would go nuclear-powered airplanes this was actually a ford design at the bottom
the nucleon this is going to be a nuclear-powered passenger car and thoughtfully they put the reactor
way back the back trunk there um
yeah they've got that with the pinto later um
you know around the uh the space race the space age you know we saw 2001 and of course our view of the future
then was oh of course we'll have moon colonies and giant you know space stations by 2001. we always kind of
overestimate the short-term technical progress um the uh
back around world war ii this field started called cybernetics which is based on a very simple idea
that you have a system with an input and an output and with a little bit of feedback loop between the two you can actually build a control system
you can either have negative feedback or positive feedback you know depending on the system you're building this is basically you know modeled on
biology they were trying to figure out and this is originally done for things like autopilots on planes you know at
that point they had machines that were complicated enough to require a very simple nervous system um and so you get behavior that's very
similar to you know a thermostat you know it's very you know kind of good at hunting behavior but uh it does you know
you can use it for certain automatic mechanisms um so this idea of cybernetics kind of uh
got extrapolated a little bit more elaborately in analog electronics and you know kind of the basis of a lot of analog electronics is the op amp which
is very much you know pretty much the same thing except in electronics where you have an input signal and output in a little way to kind of adjust the
feedback between the two um so this actually this kind of paradigm got uh became the
almost the starting point for what's called system dynamics which was started by a guy named jay forrester back in the
50s he's a guy that actually invented the magnetic core memory and in system dynamics basically you've got everything
is either a stock or a flow and so a stock might be like population a flow might be death rate or birth rate and
you basically can model almost anything using those two uh little devices um
so in this case we've got stocks flows this is the way it's actually drawn they actually have kind of uh very fixed ways that they draw this
stuff and another way it was almost kind of based on the idea of a refinery model you know
you end up with these models that look like little refineries with flows of values of stocks from place to place
they can get very elaborate like this um also you can model almost anything and you know when people first uh came upon
this there was almost this kind of trendy oh let's do a system dynamics model of everything and in fact there
was a very influential book written back then in the early 60s called limits to growth in which they took the world and made a
model of it it was called the world dynamic model and they modeled things like the agricultural production the population explosion technology economy
and they predicted the world out to like 1990 and um they were really worried because
that model predicted the world was going to collapse the whole world economy was going to collapse in like 1981. um
and this is before we really understood anything about chaos theory it turned out they were off on just a
few values by a few percent and it was amplified over time and they thought the world was going to starve they didn't foresee the green revolution and a few
other things but so system dynamics um for a while it was people just kind of going hog wild with it this in fact was
a model that i found this was somebody's system dynamics model of how they achieved enlightenment if you actually look at the little nodes
here you know it's got like their tension trueness of mind prayer intensity and these are actually graphs from his runs
and you can see how his fear of death is kind of oscillating up and down but his trueness of mind is slowly increasing so
i guess that's good but um so you can you can model anything you know with these systems um
this is the world dynamics model that they uh you know some graphs from it
um something that was actually a little bit older but it didn't really come into its own until digital computers came around
is the idea of cellular autonoma how many of you have heard this you've with the wolfram's talk you've probably heard a lot about this um because he you
know has pretty much been the pioneer of the field in this and this is the idea that once we have you know very fast cheap computers
we can model a lot of things from a more emergent level and basically what you've got here is a grid with little cells on
it and you have a very simple rule that determines when a cell is going to appear or disappear there's a very
famous game called the game of life that was invented by john conway and he's got like three simple little rules you know
which have to do like if a cell has um four neighbors there's a new one created if it has less than three or more than
four it dies and actually that's about it but when you turn it on you get these amazingly elaborate patterns going and
whole little ecosystems evolving in this and you get true emergence out of this system
von neumann was actually the guy who came up with this idea way back and he in fact designed a lot of cellular
automata before he had the ability to even run them and after his death you know once we had computers i started
running some of these things he had designed on paper and was running in his mind and they worked flawlessly i mean it was just like one of the most amazing
things in science including ones that would self-replicate you know he designed some ca's where a pattern could actually reproduce itself
totally through emergent rules we use this a lot in our game simcity very much is kind of a three-dimensional
ca of layers you know some object-based stuff on top so when you put down a building it has it's actually injecting
into the ca layers traffic and pollution and land value and then those layers can actually interact with each other
um on top of that we actually have a more traditional system dynamics model where we have like large valves on the
system where we're turning up the residential or commercial those sorts of things so simcity really is a hybrid
model kind of a hybrid between system dynamics and cellular autonomous
and then i'm wondering are you able to combine multiple models to apply to the same situation and if so how do you
decide when to apply this model that's very much like the black oh she's asking how do you apply which model to a
given situation and that really at this point is more of an intuitive process if you've worked with these different
models and you get a sense that um you know certain things kind of want to you know it's more going with the
grain to make let's say you know dispersion of an airborne you know pollutant in a ca than it is as
an object-based system in fact you could simulate anything in any one of these systems but um certain ones are just
much more elegant much more with the grain and usually it's fairly obvious you know if you want to simulate you know crowd behavior or swarming you know
an object model is obviously kind of more appropriate than a ca model um but there are also efficiency concerns
you know a lot of times you can do it you know using the wrong system and it's vastly inefficient compared to doing a much more simpler underlying model and a
lot of times we'll cheat a lot of times we'll do it let's say something in a ca here that in fact we then go and
visualize as objects but it's only statistical so when you go there all of a sudden we look at the ca and say what's the average density oh it's five
people per square meter let's you know also instantiate them and bring them into existence until you turn the camera
away a game like grand theft auto actually uses that trick quite a bit if you're in that game and you're turning and then
also look back you'll notice the cars and people are like totally different just because you turned away it's very much a world it only exists where you're
looking and partially you know what they're doing is they're jumping back and forth between agent-based techniques and you
know more distributed uh statistical techniques like that um chaos theory you probably all are sick
of this stuff by now by chaos theory right um i'll just run through this really quick but chaos theory um was a
more recent thing that kind of got more popular in the 80s and the really interesting thing about chaos theory is it put a real firm limit
to um how far we could go both with prediction and modeling what it says basically is that there are
some systems that are chaotic that if you change the starting position so in this case i drop a ball on this little
dome and it rolls off in some direction if i move that ball over just a little tiny bit in that one region it can roll
off in a totally different direction so what it's saying is that by changing the initial conditions just by trivial amounts you might end up with wildly
different states and unfortunately it turns out that most of the world is chaotic what's the interesting parts of the world you know
social systems weather a lot of things that we would love to be able to predict you know deep in advance
um this puts a very firm cap on kind of how far we can predict things with these systems
um this is kind of you know the the opposite would be a stable system where it doesn't matter you know where i drop the ball it always ends up in the same
spot you can actually characterize systems as combinations of these two things you know they have regions of chaos regions
of stability they have attraction basins i won't go into that too much but what's
kind of interesting here is the fact that in a broad sense looking at how ordered a system is you know you
might have systems that are like totally structured and frozen more like a crystal and other ones that are more
random like static and there's a region in between the two where you actually get the greatest complexity when you're studying real
systems um this is kind of the old saying life you know is living on the edge of chaos and what it means is kind of there's
this region here where um there's actually kind of a mixture the system needs to be fluid
enough for things to change and evolve and emergence to happen in essence um so that was kind of there was at the
time they were trying to go for a general theory of complexity which pretty much failed um but there were some very useful things that came out of
it one of the things that in complex systems there's a balance that's achieved in most complex systems between
ordered and disordered behavior between local and global control which i didn't really go into too much and cooperation
and competition so even the emergent thing i was showing you before we had a situation where you had these individual
units cooperating to compete in a larger space and there was a balance there within the system between cooperation
and competition that seems to be essential for complex systems more recently as people started applying
lessons from biology into computer science they started looking at other ways to model there's this kind of whole area that was
primarily founded by the santa fe research institute back in the late 80s early 90s called
complex adaptive systems this includes things like you know biology economics um
a lot of systems that we consider interesting would like to predict um there you know the general kind of
idea behind complex adaptive system modeling is it's very similar to cybernetic modeling with the chief
addition the fact that we're increasing the complexity of the rule system inside of it and the feedback
and also allowing multiple inputs and outputs and this is basically a model of let's say an economy where
the rule structure inside of here and i won't go into detail about this but a lot of the more adaptive um modeling
techniques like genetic programming classifier systems neural networks um are examples of these adaptive of these
complex adaptive systems and the real important word here is adaptive these are systems that can learn based upon
the feedback you give them rather than me having to define the rule set that's inside this box they've come up with different
techniques for the rule set to be discovered through feedback you know in other words you give this thing input
here's the city data i'm seeing today and it gives you the output of this is what i predict the traffic will be tomorrow and then you go and say bad dog
bad dog that was incorrect and you try to give it some you know steerage and then it goes and reformulates the tool
system and as you give it more and more feedback and it starts to learn based upon you know its successes and
failures what the rule system is internal to it um another thing that's come from biology
that i actually i found really fascinating and useful is the idea of adaptive landscapes um i probably will
just skip over this stuff we've kind of talked about this a bit um the last thing and this is kind of the
more recent is network theory have any of you read any recent books on network theory there have been several recently
okay this stuff is actually pretty interesting it's kind of the soup of the day in terms of modeling
it's about graph theory and a graph is anything we have nodes connected sometimes they can be directional connections like this
that's a directed graph or it could be an undirected graph they've been studying these systems and finding a lot of very useful stuff
one of the experiments they did is what they call random graphs where they start with a set of nodes and these might be people
these could be companies these could be animals you know any type of agent-based modeling
and they start building links between them randomly and just assume that we're randomly drawing links here now one of
the first things that they found is that very quickly this thing becomes a fully connected system
once they have an average connection of one per node once every node has one connection to another node by that time
usually the entire system it doesn't matter if we have 10 nodes up here or a million nodes
you get a fully connected graph very very rapidly there's a distance you can kind of
characterize any graph just for the difference between two nodes what is the shortest path
of connections between these two in this case this is one two three four you know it's a graph distance of four graph with
what they call the graph width of four um this is very important when you're looking at things like the net or even
user interface you know how many clicks is a person away from any other place in your software how many you know clicks
is a person away from your webpage from any other web page it turns out that the average width of the internet the graph width is about 21 clicks which is to say
you can get from any page on the internet to any other page in an average of about 20 clicks um then we can see
how since the internet is it's pretty remarkable the the networks that are very interesting
though all share one property if we look at a network like this this is what we call um
a scale-free network what that means is that we have most of the nodes in this
network have very few connections all these nodes have one or two connections a small number
have a lot of connections and in fact they call this a power law distribution
this is a graph of the internet of 100 000 random web pages and the number of
inbound links actually it's imagine this inverted no that's right this is the number of
sites at the bottom that have that many links pointing to them so what you see
is that there are very very small number of sites that have a tremendous number of connections coming into them and these are like google yahoo
most of the websites have almost no connections coming into them so most of the web are these little out water you
know kind of dangling nodes um but it goes up with what they call a power law distribution and this distribution turns
out to be both very important for the behavior of these networks and also um representative of all the really
interesting networks um this is kind of a map of the internet and it very much has that property because you just saw that the same thing is true of like food
webs you can view those as networks and look at how many creatures each creature is connected to through a food web and
you see that it's a scale-free thing with power law distribution metabolic networks the same thing
social networks the same thing there's usually like one person a few people that are hubs you know that are very
connected to everybody else and um it turns out that actually in social situations that these are what we call
weak links and so the people down the bottom here might be close friends of each other um and they might know esther just you
know in passing but in terms of like getting a new job or finding the right vc or doing whatever it turns out it's the weak
links that will get you the furthest distance through a graph and so most of the interesting kind of social possibilities that come to somebody come
through the weak links not the strong small group of friends that they hang out with all the time this is the graph of the terrorist
network the people that they kind of reconstructed from 9 11 and they discovered that you know there were like three or four people that had those
nodes been removed this thing would have collapsed and this is actually what the interesting thing about scale-free networks is that they're very resistant
to random node failure you can go onto the internet and take down just random web pages all day long and you're not
going to break the internet because you're going for random pages and as you saw from that graph most pages are very unconnected on the other
hand skill-free networks are very sensitive to targeted attacks if you
were to go and take out yahoo and google and msnbc and about 10 other sites then you're talking about a major problem