Download presentation
Presentation is loading. Please wait.
Published byDarrell Page Modified over 9 years ago
1
10/24/2015Rex Oleson II SOAR and Video Games By Rex Oleson II
2
Rex Oleson II 10/24/2015 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
3
Rex Oleson II 10/24/2015 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
4
Rex Oleson II 10/24/2015 Traditional Game Logic Patterned Tile Movement Zelda Flocking Potential Functions Basic Probablity
5
Rex Oleson II 10/24/2015 AI techniques become involved Fuzzy Logic Threat Assessment Neural Networks Finite State Machines
6
Rex Oleson II 10/24/2015 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
7
Rex Oleson II 10/24/2015 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
8
Rex Oleson II 10/24/2015 Research Fields Environment for testing concepts Development of new research ideas Visual environment to see the implications of the AI ideas
9
Rex Oleson II 10/24/2015
10
Rex Oleson II 10/24/2015 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
11
Rex Oleson II 10/24/2015 SGIO Classes Soar Object representing the connection to SOAR Agent Represents an individual agent in SOAR Working Memory Handles the bookkeeping of the agents memory
12
Rex Oleson II 10/24/2015 SGIO connection types There are 2 connection types to use API SOAR Compiled directly into the application SIO SOAR Communicates remotely via sockets
13
Rex Oleson II 10/24/2015 SGIO Framework
14
Rex Oleson II 10/24/2015 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
15
Rex Oleson II 10/24/2015 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
16
Rex Oleson II 10/24/2015 //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);
17
Rex Oleson II 10/24/2015 //Args for ID’s: parent, ID name sgio::SoarId* radarId = mem- >CreateIdWME(mem- >GetILink(),"radar"); //parent,name sgio::SoarId* tankId = mem- >CreateIdWME(radarId,"ta nk"); //parent,name
18
Rex Oleson II 10/24/2015 //Args for Elements: parent, attribute name, attribute value sgio::IntElement* distance = mem- >CreateIntWME(tankId,"di stance",5); sgio::StringElement* position = mem- >CreateStringWME(tankId,"position","left");
19
Rex Oleson II 10/24/2015 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();
20
Rex Oleson II 10/24/2015 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();
21
Rex Oleson II 10/24/2015 Reading Commands from the Output-Link std::auto_ptr cmd = agent- >GetCommand(); std::string name = cmd- >GetCommandName(); //name = "move" std::string value = cmd- >GetParameterValue("directio n"); //value = "right"
22
Rex Oleson II 10/24/2015 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
23
Rex Oleson II 10/24/2015 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
24
Rex Oleson II 10/24/2015 Future Work SGIO is being abandoned for a new technique Details where not given
25
Rex Oleson II 10/24/2015 References U.S. video game industry sales dip in 2004, http://yahoo.reuters.com/financeQuoteCompanyNewsArticle.jhtml?duid=mtf h70002_2005-01-18_20-45-13_n18697880_newsml, Tue Jan 18, 2005 03:45 PM ET http://yahoo.reuters.com/financeQuoteCompanyNewsArticle.jhtml?duid=mtf h70002_2005-01-18_20-45-13_n18697880_newsml 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 http://ai.eecs.umich.edu/people/laird/papers/AAAIDemo.pdf 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 http://www.gamasutra.com/features/20001108/laird_01.htm Stokes-SoarToUnreal-S22 SGIO tutorial SGIO quick reference
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.