10/24/2015rex oleson ii soar and video games by rex oleson ii

25
06/18/22 Rex Oleson II SOAR and Video Games By Rex Oleson II

Upload: darrell-page

Post on 03-Jan-2016

227 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

04/20/23 Rex Oleson II

SOAR and Video Games

By Rex Oleson II

Page 2: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Video Game Industry

Video games industry reached $9.9 billion in sales for 2004

Grand Theft Auto: San Andreas sold more then 5.1 Million units

Halo 2 sold more then 4.2 Million units

Page 3: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Games to Application Crossover

Video Game to Simulation SOCOM Navy Seals

Developed along side of a military training app

Call Of Duty Considered to be a realistic

simulation of military conflict

Page 4: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Traditional Game Logic

Patterned Tile MovementZelda

Flocking Potential Functions Basic Probablity

Page 5: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

AI techniques become involved

Fuzzy LogicThreat Assessment

Neural Networks Finite State Machines

Page 6: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Intro to SOAR and Gaming

John Laird and Mike van Lent develop and interface between QuakeII/Decent3 and SOAR

Both of Which are First Person Shooter Style Games(FPS)

John Laird has been presenting papers, and hosting open talks almost every year at the GDC since then

Page 7: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Industry

Create system for developing intelligence for game character

Make the games more fun Refine a reusable knowledge base Develop a common interface for games to

access the knowledge base

Page 8: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Research Fields

Environment for testing concepts Development of new research ideas Visual environment to see the implications

of the AI ideas

Page 9: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Page 10: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

SOAR SGIO

Came out of interfacing SOAR with video games

SGIO – SOAR General Input Output SOAR does not make calls to the

environment, only to the output

Page 11: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

SGIO Classes

SoarObject representing the connection to SOAR

AgentRepresents an individual agent in SOAR

Working MemoryHandles the bookkeeping of the agents

memory

Page 12: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

SGIO connection types

There are 2 connection types to use

API SOAR Compiled directly into the application

SIO SOAR Communicates remotely via sockets

Page 13: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

SGIO Framework

Page 14: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

SOAR Game Cycle Interaction

Unreal Bot notices entities that have changed

Native DLL sends updated info to SGIO When Observing is done, commit all

changed WME’s to SOAR SOAR decides the command/s to issue

Page 15: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

SOAR Game Cycle Interaction

After Decision, the command/s are retrieved by the SGIO

Top Command on the queue is passed to the native code

Native DLL reports the current command to UNREAL

Bot performs action based on command

Page 16: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

//For API Soar (i.e. integrated kernel) sgio::Soar* soar = new sgio::APISoar(); //For SIO Soar (i.e. TSI debug windows) sgio::Soar* soar = new

sgio::SIOSoar("127.0.0.1",6969,true); //IP,port,lockstep

sgio::Agent* agent = soar->CreateAgent("my-agent"); //agent name

agent->LoadProductions("my-agent.soar"); //file name

sgio::WorkingMemory* mem = new sgio::WorkingMemory(agent);

Page 17: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

//Args for ID’s: parent, ID name

sgio::SoarId* radarId = mem->CreateIdWME(mem->GetILink(),"radar"); //parent,name

sgio::SoarId* tankId = mem->CreateIdWME(radarId,"tank"); //parent,name

Page 18: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

//Args for Elements: parent, attribute name, attribute value

sgio::IntElement* distance = mem->CreateIntWME(tankId,"distance",5);

sgio::StringElement* position = mem->CreateStringWME(tankId,"position","left");

Page 19: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Modifying Existing WME’s on Input-Link mem->Update(distance,4); //element, new

attribute value Removing WME’s on Input-Link

mem->DestroyWME(tank); //element to remove; children automatically removed

Sending Changes to Soar mem->Commit();

Page 20: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Running Agents //To run all the agents on a particular

connection for 15 decision cycles soar->RunTilOutput(); //To run a single agent for 15 decision cycles agent->RunTilOutput();

Checking Output-Link for Commands bool waiting = agent->Commands();

Page 21: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Reading Commands from the Output-Link std::auto_ptr<sgio::Command

>cmd = agent->GetCommand();

std::string name = cmd->GetCommandName(); //name = "move"

std::string value = cmd->GetParameterValue("direction"); //value = "right"

Page 22: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Marking Command as Processed //If everything goes well cmd->AddStatusComplete(); //If there is an error (i.e. missing attributes) cmd->AddStatusError(); cmd->AddErrorCode(5); //integer

Page 23: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Divergence of Research and Game Development

Most game developers are interested in cheats, not true intelligence

Researchers have migrated to problems where empirical comparisons are possible

Game developers need real time algorithms Game-Playing Public is pushing for much more

realistic and advanced AI’s

Page 24: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

Future Work

SGIO is being abandoned for a new technique

Details where not given

Page 25: 10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II

Rex Oleson II04/20/23

References U.S. video game industry sales dip in 2004,

http://yahoo.reuters.com/financeQuoteCompanyNewsArticle.jhtml?duid=mtfh70002_2005-01-18_20-45-13_n18697880_newsml, Tue Jan 18, 2005 03:45 PM ET

AI for Game Developers, David M. Bourg & Glenn Seemann, O’Reilly, July 2004

Intelligent Agents in Computer Games, Joe Hartford, John Laird, et al., http://ai.eecs.umich.edu/people/laird/papers/AAAIDemo.pdf, Aug. 1999

It Knows What You’re Going To Do : Adding Anticipation to a Quakebot, John E. Laird, Agents, 2001, pps 385-392

GAME AI: THE STATE OF THE INDUSTRY, PART TWO, David C. Pottinger and John E. Laird, http://www.gamasutra.com/features/20001108/laird_01.htm

Stokes-SoarToUnreal-S22 SGIO tutorial SGIO quick reference