Showing posts with label phd. Show all posts
Showing posts with label phd. Show all posts

Thursday, November 15, 2012

Examination of the SimZombie system and the sample scenarios

http://www2.docm.mmu.ac.uk/STAFF/M.Crossley/sims/

http://www2.docm.mmu.ac.uk/STAFF/M.Amos/Docs/simzombie.pdf

http://code.google.com/p/simzombie/

This is a straight forward 2d sandbox model world with interacting agents.  There is no physical collision between models so there is visual overlap and no deflection of paths.   There are no obvious "edge" effects around the walls of the sandbox, so make of that what you will. The walls are simply movement constraints.
The number of agents seems fixed and the state transitions are pretty obvious.  Its just a complex way to do deterministic modelling with a basic visualisation engine.  The scenarios seem to be straight forward SIR models (although one has four states just for variety. It's a short transition state so doesn't fundamentally change the model except cosmetically.)

The environment is Java, so while its all cross platform and stuff, it carries the curse of installing Java and suffering all the security side effects that come with it.  Yuck.

Zombie Scenario (Successful Defensive)

http://code.google.com/p/simzombie/downloads/detail?name=zombieretract.gif&can=2&q=

Zombie (Successful Defensive) Scenario Description

A sample zombie simulation where the susceptibles are capable of fighting back the zombies once awareness is raised.

Thoughts on the Zombie (Successful Defensive) Scenario

This scenario uses  Suceptable (S) as green, Infected (I) as red and something else as light blue.  I guess this is "dead" as a Zombie or a green can transform into a blue. We will call this the (R) state.

Movement - The I seem to move at a slower rate than the S.  The blue seem to not move at all.

Lifetime -  The green are infinite again, the blue are infinite and the red are probably infinite except for the attrition from getting killed.

Infection Rate -  Seems to be about medium.  An I can easily infect an S but at the same time the S can easily kill the I... so its probably fairly balanced simply because of the equilibirum between these two variables.
 

Zombie Scenario (Apocalyse)

http://code.google.com/p/simzombie/downloads/detail?name=zombiewin.gif&can=2&q=

Zombie Apocalyse) Scenario Description

A sample simulation where the zombies successfully eradicate all life.

Thoughts on the Zombie (Apocalyse ) Scenario

Similar to the above this uses green for the Succeptable(S), red for the Infected (I) and grey for the dead or (R) state.

Movement - The movement of the red and the green seem fairly similar.  About "medium" when compared to all the other scenarios.  One of the big issues is "Jumping" where the infection seems to spontaniously jump like a spot-fire ahead of the interface between the two groups. This causes a much faster spread as its not restricted to the infection "front".

Lifetime -The green is infinite until transformed. The Red appears to be fairly infinite and the grey is permanent.  The I seem to "kill" about 25-30% of the S that they encounter, while there does not appear to be much "killing" by the S of the I.

Infection rate - This seems pretty virulent.  The infection rate is pretty high and the speed of infection is also high.  This creates the "contageon" style apocalypse.


Vampires Scenario

http://code.google.com/p/simzombie/downloads/detail?name=vampires.gif&can=2&q=

Vampire Scenario Description

These vampires are more selective than the zombies; They only kill what they need - and turn fewer victims into vampires. This gives us a simulation in which a large proportion of the population end up deceased, rather than converted into vampires.

Thoughts on the Vampire Scenario

Watching the scenario, its hard to see many of the rules. If this is based on the SIR model again then we only have Succeptable(S), Infected(I) and Recovered(R).  What is a recovered Vampire?   In the Gif movie of the model run it looks like the infected are red, the succeptable are green and the R are grey. There seems to be an intermediate state of yellow, which I guess is a temporary transitional state between uninfected and infectious.

Movement - S are slow.  I are fast, and R are stationary.  Yellow move at the same pace as S.
They all seem to use a similar movement(mixing) algorithm of moving in a straight line for a random amount of time before randomly turning 90 degrees.

Lifetime - The I seem to have a finite lifespan. Either this is because they are modelled to die or they turn into the grey "Recovered"? The green state seems to have an infinite lifespan.  The yellow state seems to be fairly short.. maybe about 5 time steps.

Infection Rate - This seems to be quite high as the red agents really plow through the greens once they get going with an infection/kill rate of about 1red -> 15 grey. However the reds are only reproducing very slowly.


Werewolves Scenario

http://code.google.com/p/simzombie/downloads/detail?name=werewolves.gif&can=2&q=

Werewolf Scenario Description

Werewolves obviously only get the chance to strike for a short period of time each month - and in many cases, when infected, go about their normal life for the rest of the month. 
This gives us an interesting scenario in which the werewolves are able to spread, unhindered, throughout the population. When the phase of the moon is right, each werewolf has an ample collection of nearby individuals to attack - creating many 'pocket' locations from which the infection speads.
 

Thoughts on the Werewolf Scenario

In comparison, this has a slower start-up period and a higher kill rate.  Again S are Green. I are Red and the R are grey.  Again there is a transitional yellow state.

Movement - The reds move very quickly and do not change direction as frequently. Green and yellow are slow and grey are stationary.

Lifetime - The green and grey are infinite.  The reds are much more resiliant in this scenario. They seem to last almost indefinitly.  The yellow state is again quite brief.

Infection rate - This seems slower than the vampire scenario but has a very obvious tipping point.  However, there are some very long lived greens that seem to have multiple contacts with reds and remain un-infected.  So it seems that the infection rate is lower than the Vampire scenario, but is similarly effective as the agents move more quickly and have more "chances" to infect resulting in a similar infection rate over the whole population but a lower infection rate for individuals.

Final Thoughts

These scenarios seem to be fairly simple models with only a couple of variables which results in fairly simple outcome results.  It's not far from Conways game of life.  So whats the value of this system?  Hmm... nothing much comes to mind. Its a fun way to visualise simple 2 dimensional models with limited variables. That being said, I have not dug into the capacity for extension.  But then again, if I have to extend it...it's just me making it do things that it doesn't currently do, so it could be turned into anything with enough resources.  The point is that its currently just a basic system.

You can use it to model some complex systems and play around with some numerical models, but anything more complex with hidden states, environment effects, communication layers or resource models are probably way beyond what it is intended to do.


Emergent Results - Perfect for exploring the results of  deterministic models.
Emergent Behaviour - Zero.  This sucker seems to be deterministic and uses generic agent classes.


Monday, September 10, 2012

Computational Social Science

http://www.nature.com/news/computational-social-science-making-the-links-1.11243

This is an interesting article that touches on a couple of fun items.  Good general background piece. Couple of names to chase up on Academia.edu


Thursday, December 22, 2011

Doomed Game AI Research

The problem with doing research on Game AI is that its all secret sauce.  The AI systems are still considered as a competative advantage so "officially" the source is protected.  The other reality is that they are a "work in progress"... so like most software, they are undocumented and constantly evolving...

This makes studying them at best observational research and at worst like trying to dent water.

Id are about the only company releasing their old game source... although without the assets, so it should be possible to reverse their AI system.  This results in a 10yr old system that has been cloned by eveyone... kind of like game development DNA. And they used scripted AI anyway... so nothing to see there.

The next source is articles and books written by developers and designers.  These are often short, conceptual and neat.  The describe intention and mechanism... and we assume they reveal the "secret sauce"... but in reality the implemtations are going to have their own kinks and twists which don't make it into the article.  Probably not significant but sitll there's a gap between reality and the description which may contain something interesting.

The other side of this is that no matter what the designers intended, emergent systems are by their very nature, a bit unpredictable.  So after all that... observation and experimental testing may be the only way to really document them.  Having the source would make it a lot faster....

But to make the whole observation problem slightly managable we just need more eyeballs... lucky someone invented internet forums to bitch about bad AI... whooot.

E.g Artificial Stupidity at tvtropes. This is a great collection of anecdotes about flawed AI.

Reading this suggests that the "game" is to figure out weaknesses in the enemy strategy... which, when you think about it is the point of any game, even those against a human player.  So are these AI really "flawed" or are they imperfect enough to be satisfying? Do players want an unbeatable opponent? I would think not.  So that only leaves "flawed" opponents... in other words "human", limited, imperfect.... this gets to the question of the type of flaw... will it be a "human" flaw? A Character "flaw"?  So sort of tactical flaw based on not understanding the resources/economy/vehicles/environment?

Do we want the AI to display "human" flaws when they are simulating "things" that are not human?   (How much role-playing do we want encoded in the AI?)

All this gets back to presenting a challenge to a player... which leads to the conclusion that no matter what the AI "should" be doing as far as actually manipulating game elements, it needs to be able to adapt to the players capacity in some fashion.  I shall state it thusly...

Rule 1 of Game AI - Play the player not the game. 

(Reminds me of a line from the movie "Searching for Bobby Fisher")  The player defines the challenge, thus the AI needs to know the player. This gets me back to my on-going rant about modelling the player as the basis of a game AI system.

It's obvious that the vast majority of game developers (99%+ would be my conservative estimate) spend no resources on modelling the player, they simply try to react to the current state of the players avatar or their units and leave it at that.  Pour on a couple of reactive heuristics and some tuning constants and cross their fingers. Or simply have a "Novice", "Middle"and "Hard" settings.  This presents a simple target for the game tuners to work with but also allows the player to exercise some choice about the type of game they want to play "Now".  Sometimes, I just want to blat around in a game without being "Challenged". So I think its important to allow the player to choose their difficulty level in some fashion.  

Reading more of the comments leads to the conclusion that the second rule must be...


Rule 2 of Game AI - Play all the game elements. 

By this I mean that the AI should have heuristics governing all the play elements. In the case where there are dozens or hundreds of different "bits" in the game, the developers have just made a stick to beat themselves with.  Permutation is the enemy.. until they figure out a way to build an AI to write the rule sets for them... Duh!  Computers are there to do the repetative work...

Obviously this starts to bite when the AI is computationally limited and the rulesets exceed the resources allocated.  But even in those situations it should be a case of creating an AI that can decide what to spend that limited CPU resource on... one ruleset to rule them all... lol.

It's easy to see how developers dig themselves into these holes by trying to hand tune games with insane numbers of relationships between game elements. 

Finally, we get to....

Rule 3 of Game AI - Match your players expectations.   

The common thread though the forums is that players expectations are being violated.  It's not that the AI is smarter or dumber or creates wildly un-desirable behaviour (although that's often the end result) but that player "Notice" when the AI does something they think is uncharacteristic.  If they are expecting a smart AI and it acts stupid... tada... forums catch fire.   

So, the big issue is to manage the players expectations.  Tell them before, during and after what they should expect.  Currently, the situation is more that players learn by observation (nothing bad about that) except their learning starts long before they get to most games.  If the game is a strategy game, they have probably seen a couple of movies or read a book or two that have shaped their expectations.  These feed into their expectations of the game behaviour... which is quite reasonable as the game is drawing on those genre's for art and marketing... so its reasonable for the player to carry their expectations into the game.

Am I suggesting that developers should not be ambitious and create games using genre material that the AI is not yet capable of simulating?  That seems a bit limiting... but it would be nice to see the time and energy put into the AI and simulation that matched the quality of the art work, for instance.

I think there is a sense of acheivement when a player figures out (or reads on a forum) an exploitable flaw in a games AI.  Spending the time learning about your enemy, testing them and finally beating them is the essence of competition.  Because of the re-playability of games, they turn into a puzzle that can be beaten if you are persisent. In this case having flaws in the AI behaviour is kind of essential. 

When the AI is not simulating an "Enemy" to be beaten but is trying to generate background behaviour, showing flaws is just wrong. The suspension of disbelief  that the player needs to buy into for the narrative to work is essential and fragile.  Break this and the game is fundamentally broken. The great thing is that players are able to selectivly ignore instances and forgive mistakes and regain their flow given enough other material to continue playing. But multiple, repeated or massive violations drag the game down to a point where it becomes a sham and the player feels foolish for "playing along" with it and abandons it.  Because this kind of simulated life buys into some fairly complex expectations that the players will be carrying into the game, its a particularly hard problem to get right.  


Rule 4 of Game AI - Life is infinitly complex, the players perception is not. 

Resource limits are real in most games so procedural generation is the only viable mechanism for behaviour and art assets when you want to produce complexity. But not all games want to end up looking like "Spore".  So there needs to be some more tools in the toolbox.

Scenario Templating, Procedural generation, Scripts, Rulesets, Heuristics, Skeletal animation + Skins, motion libraries, behaviour libraries, better reaction heuristics, player modelling, AI systems to generate AI systems,  cheating, suggestion, borrowing from the players experience.

Good narrative works by allowing the reader to fill in many of the blanks themselves and just sketches the background.  I feel that most games are able to do this convincingly enough but the question is how to identify and fix the weak points.

More thinking to do.

So whats the linear solution to the exponential problem?

Have the AI do what people do, use feedback... predict the result of their activity, do the behaviour and then evaluate that result, modify their ruleset, rinse, repeat... This simple feedback loop should prevent a lot of the repetative stupidity that I see in the forum posts.  It would also help with game tuning.  Building evaluation critieria is much easier than having a blind ruleset that is context insensitive.

There are some more interesting examples here http://tvtropes.org/pmwiki/pmwiki.php/Main/SpitefulAI


Saturday, November 26, 2011

Text vs voice chat

http://www.wired.com/gaming/virtualworlds/commentary/games/2007/06/games_frontiers_0617

Looking at the impact both socially and individually of the change from

Thursday, November 24, 2011

phd in game AI research

PhD opportunities


http://www.nicta.com.au/research/machine_learning/machine_learning_phd_opportunities


http://www.daad.de/deutschland/forschung/german-research-careers/14305.en.html?projektid=54473531&fachgebiet=0&finanzierung=0&stadt=&institution=&sprache=&personenkreis=&promotionsart=


http://www.jason.edu.au/scholarship/5365


http://www.statsci.org/jobs/2011a/110325c.html


http://topstudylinks.com/PhD-Positions-in-Computer-Vision-Machine-Learning-Freiburg,-Germany-2012-2013-s301.aspx


http://www.getscholarship.net/


http://www.utas.edu.au/research/graduate-research/elite/human-interface-technology-laboratory-hitlab-australia


 http://ww2.cs.mu.oz.au/~adrian/

http://www.scholarships-links.com/viewdetail/3011/PhD-Candidates-Gaming-and-HCI-in-cars.html


http://scholarshipdb.com/


http://computervisioncentral.com/jobs/full

http://www.youngbrigades.com/postdoctoral-fellowships/france-two-postdoctoral-positions-in-computer-science-machine-learning.html


People and groups

http://gameai.itu.dk/index.php/About

http://www.unimaas.nl/games/

http://www.ieee-cig.org/

http://aigamedev.com/

http://home.cc.gatech.edu/ccl/2

http://web.media.mit.edu/~jorkin/

 http://www.media.mit.edu/cogmac/

http://webdocs.cs.ualberta.ca/~games/

http://www.rit.edu/gccis/gameeducationjournal/


http://www.computing.dcu.ie/~bgorman/

http://cognitivecomputing.wordpress.com/ccl-team/

http://www.nicta.com.au/about


http://www.eecs.umich.edu/ai/faculty.html

http://www-kd.iai.uni-bonn.de/people.php?kristian.kersting


http://www2.cs.uregina.ca/~herbertj/cv.html

http://gambit.mit.edu/credits/

http://www.csml.ucl.ac.uk/courses/msc_ml/

http://goertzel.org/Goertzel_resume.pdf

http://140.118.155.153/~pao/

http://gameai.itu.dk/psm/index.php?title=Members


http://www.cs.rutgers.edu/~kulikows/


Australian Groups and People

http://www.comp.mq.edu.au/research/isg/people.html

http://users.cecs.anu.edu.au/~dkamen/research.htm

http://au.linkedin.com/in/drrobertlayton

http://en.wikipedia.org/wiki/Carnegie_Mellon_School_of_Computer_Science

http://www.une.edu.au/study/computer-science/

http://www.csse.monash.edu.au/~dld/chess.html

http://uob-community.ballarat.edu.au/~pvamplew/index.html

http://web.science.mq.edu.au/~manolya/cv-mk.html

http://ssll.cecs.anu.edu.au/speakers/mlss

http://chai.it.usyd.edu.au/Seminars/2011


http://strategicgames.com.au/index.php?p=1_14

http://www.flinders.edu.au/people/tom.anderson

http://seit.unsw.adfa.edu.au/staff/sites/kshafi/

http://www.uow.edu.au/~koren/

http://goanna.cs.rmit.edu.au/~xiaodong/aciss09/tutorials.html

http://charybdis.mit.csu.edu.au/crics/members.php


http://www.ict.csiro.au/staff/shiping.chen/

http://sydney.edu.au/engineering/it/~visual/kaixu/


http://www.handbook.uts.edu.au/it/area/pg.html

http://cs.anu.edu.au/research/groups/ai

http://people.eng.unimelb.edu.au/liuw/index.html


Conferences

http://gameaiconf.com/

http://geneura.ugr.es/cig2012/

http://gcap.com.au/

http://summit2011.singinst.org.au/bios/ben-goertzel/


http://www.aaai.org/Conferences/AAAI/2011/aaai11tutorials.php


Journals

http://ilk.uvt.nl/icga/journal/

http://www.gdmag.com/homepage.htm

http://gamestudiesbook.net/category/journals/

http://convergence.beds.ac.uk/

http://www.newmediaandsociety.com/

http://journals.sfu.ca/loading/index.php/loading/

http://www.gamejournal.org/

http://eludamos.org/index.php/eludamos

http://www.escapistmagazine.com/

http://gamestudies.org/1102

http://gac.sagepub.com/




Commercial AI groups

http://www.spirops.com/

http://www.ekione.com/

http://www.pathengine.com/

http://www.havok.com/

http://opencog.org/


http://gdaa.com.au/

http://kioloa08.mlss.cc/files/hutter2.pdf

http://www.valvesoftware.com/company/people.html


Mailing Lists

http://blog.gmane.org/gmane.comp.ai.machine-learning


Interesting articles that turned up in the search

http://aigamedev.com/open/interview/racing-games-computational-intelligence/

http://aigamedev.com/open/article/preview-biologically-inspired-ai/

http://research.microsoft.com/en-us/projects/ijcaiigames/

http://www.gametheory.net/lectures/level.pl

http://doras.dcu.ie/view/subjects/CO.html

http://www.igi-global.com/book/machine-learning-human-motion-analysis/701

http://caia.swin.edu.au/cv/garmitage/publist.html

http://www.dtic.ua.es/~jgarcia/IJCNN2012/organizers.html

http://www.reddit.com/r/MachineLearning/comments/mix4c/am_i_planning_it_right_for_a_phd_in_ml/

http://sml.nicta.com.au/isml08/fsml.pdf

http://en.wikipedia.org/wiki/History_of_virtual_learning_environments