1 / 25

SOAR and Video Games

SOAR and Video Games. By Rex Oleson II. 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. Games to Application Crossover. Video Game to Simulation

erika
Download Presentation

SOAR and Video Games

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOAR and Video Games By Rex Oleson II Rex Oleson II

  2. 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 Rex Oleson II

  3. 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 Rex Oleson II

  4. Traditional Game Logic • Patterned Tile Movement • Zelda • Flocking • Potential Functions • Basic Probablity Rex Oleson II

  5. AI techniques become involved • Fuzzy Logic • Threat Assessment • Neural Networks • Finite State Machines Rex Oleson II

  6. 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 Rex Oleson II

  7. 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 Rex Oleson II

  8. Research Fields • Environment for testing concepts • Development of new research ideas • Visual environment to see the implications of the AI ideas Rex Oleson II

  9. Rex Oleson II

  10. 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 Rex Oleson II

  11. 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 Rex Oleson II

  12. SGIO connection types • There are 2 connection types to use • API SOAR • Compiled directly into the application • SIO SOAR • Communicates remotely via sockets Rex Oleson II

  13. SGIO Framework Rex Oleson II

  14. 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 Rex Oleson II

  15. 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 Rex Oleson II

  16. //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); Rex Oleson II

  17. //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 Rex Oleson II

  18. //Args for Elements: parent, attribute name, attribute value • sgio::IntElement* distance = mem->CreateIntWME(tankId,"distance",5); • sgio::StringElement* position = mem->CreateStringWME(tankId,"position","left"); Rex Oleson II

  19. 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(); Rex Oleson II

  20. 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(); Rex Oleson II

  21. 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" Rex Oleson II

  22. 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 Rex Oleson II

  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 Rex Oleson II

  24. Future Work • SGIO is being abandoned for a new technique • Details where not given Rex Oleson II

  25. 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 Rex Oleson II

More Related