6162009 - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

6162009

Description:

Most game developers are interested in cheats, not true intelligence ... AI for Game Developers, David M. Bourg & Glenn Seemann, O'Reilly, July 2004 ... – PowerPoint PPT presentation

Number of Views:97
Avg rating:3.0/5.0
Slides: 26
Provided by: role
Category:
Tags: cheats | game

less

Transcript and Presenter's Notes

Title: 6162009


1
SOAR and Video Games
  • By 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

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

4
Traditional Game Logic
  • Patterned Tile Movement
  • Zelda
  • Flocking
  • Potential Functions
  • Basic Probablity

5
AI techniques become involved
  • Fuzzy Logic
  • Threat Assessment
  • Neural Networks
  • Finite State Machines

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

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

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

9
(No Transcript)
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

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

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

13
SGIO Framework
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 WMEs
    to SOAR
  • SOAR decides the command/s to issue

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

16
  • //For API Soar (i.e. integrated kernel)
  • sgioSoar soar new sgioAPISoar()
  • //For SIO Soar (i.e. TSI debug windows)
  • sgioSoar soar new sgioSIOSoar("127.0.0.1",6
    969,true) //IP,port,lockstep
  • sgioAgent agent soar-CreateAgent("my-agent")
    //agent name
  • agent-LoadProductions("my-agent.soar") //file
    name
  • sgioWorkingMemory mem new sgioWorkingMemory
    (agent)

17
  • //Args for IDs parent, ID name
  • sgioSoarId radarId mem-CreateIdWME(mem-GetI
    Link(),"radar") //parent,name
  • sgioSoarId tankId mem-CreateIdWME(radarId,"t
    ank") //parent,name

18
  • //Args for Elements parent, attribute name,
    attribute value
  • sgioIntElement distance mem-CreateIntWME(tan
    kId,"distance",5)
  • sgioStringElement position
    mem-CreateStringWME(tankId,"position","left")

19
  • Modifying Existing WMEs on Input-Link
  • mem-Update(distance,4) //element, new attribute
    value
  • Removing WMEs on Input-Link
  • mem-DestroyWME(tank) //element to remove
    children automatically removed
  • Sending Changes to Soar
  • mem-Commit()

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()

21
  • Reading Commands from the Output-Link
  • stdauto_ptrcmd
    agent-GetCommand()
  • stdstring name cmd-GetCommandName() //name
    "move"
  • stdstring value cmd-GetParameterValue("direct
    ion") //value "right"

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

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 AIs

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

25
References
  • U.S. video game industry sales dip in 2004,
    http//yahoo.reuters.com/financeQuoteCompanyNewsAr
    ticle.jhtml?duidmtfh70002_2005-01-18_20-45-13_n18
    697880_newsml, Tue Jan 18, 2005 0345 PM ET
  • AI for Game Developers, David M. Bourg Glenn
    Seemann, OReilly, 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 Youre 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_0
    1.htm
  • Stokes-SoarToUnreal-S22
  • SGIO tutorial
  • SGIO quick reference
Write a Comment
User Comments (0)
About PowerShow.com