Unreal Tournament Setting and Sample Code - Commercial game used as a virtual world with Java

farrightSoftware and s/w Development

Aug 15, 2012 (5 years and 3 months ago)

253 views

Unreal Tournament Setting

and Sample Code



Architecture


Unreal Tournament


Commercial game used as a virtual world


Parser


Translates text message from the GB04 to java objects


Agent


Here goes the user logic


IDE


Plug
-
in
Netbeans

development environment

2

/57

Installation


NetBeans

Installation
Step 1/9


http://www.netbeans.org/downloads/index.html






3

/57

Installation


NetBeans

Installation
Step 2/9





4

/57

Installation


NetBeans

Installation
Step 3/9






5

/57

Installation


NetBeans

Installation
Step 4/9






6

/57

Installation


NetBeans

Installation
Step 5/9






7

/57

Installation


NetBeans

Installation
Step 6/9






8

/57

Installation


NetBeans

Installation
Step 7/9






9

/57

Installation


NetBeans

Installation
Step 8/9






10

/57

Installation


NetBeans

Installation
Step 9/9






11

/57

Installation


Pogamut2 Installation
Step 1/7




12

/57

Installation


Pogamut2 Installation
Step 2/7




13

/57

Installation


Pogamut2 Installation
Step 3/7




14

/57

Installation


Pogamut2 Installation
Step 4/7




15

/57

Installation


Pogamut2 Installation
Step 5/7




16

/57

Installation


Pogamut2 Installation
Step 6/7




17

/57

Installation


Pogamut2 Installation
Step 7/7




18

/57

Installation


Create Pogamut2 Project
Step 1/2




19

/57

Installation


Create Pogamut2 Project
Step 2/2




20

/57

Installation


Pogamut2 Trouble Shooting


Pogamut2
프로젝트를

생성할



없는

경우




21

/57

Installation


Pogamut2 Trouble Shooting


NetBeans

> Tools >
Plugins




22

/57

Installation


Pogamut2 Trouble Shooting




23

/57

Installation


Pogamut2 Trouble Shooting




24

/57

Installation


Pogamut2 Trouble Shooting




25

/57

Installation


Pogamut2 Trouble Shooting




26

/57

서버실행


Pogamut2

27

/57

서버세팅


MapName


Name of the map you want to run. It's the same as name of the ma
p file, without the .ut2 suffix. You can see all the map files in UT20
04/Maps/ directory


Game Type


BotDeathMatch

BotTeamGame

BotCTFGame

BotDoubleDomGame

BotBombingRunGame


28

/57

프로젝트

?ß?ú


29

/57

프로젝트

?ß?ú


30

/57

프로젝트

?ß?ú


31

/57

서버

?¸??


32

/57

서버접속


33

/57



?m?“

?V?†


34

/57



?m?“

?V?†


35

/57



?m?“

?V?†


36

/57



?m?“

?V?†


37

/57

Class Architecture


38

/57

Main Class


Body


Bridge between client itself and Unreal Tournament 2004


Method for agent control


Memory


Contain History, which is the storage of all sensory data coming
from Body


Implement interface
WorldView
,
RecentMemory
, Knowledge and
Invertory


Inventory


Basically an array of weapon


Game map


Module for navigation


Built
-
in A* algorithm


Provide method for obtaining path to desired location


39

/57

Body


MoveTo
(Location)


simple RUNTO command, input anything that implements
ILocated

or is location.


Stop() <SC>


stops the
bot

immediately


TurnHorizontal
(amount)


roll is not used for bots.


TurnVertical
(amount)


TurnTo
(Location)


target can be again object or location...


Jump() <SC>


Run()



disables walking


Walk()


enables walking


40

/57

Navigation


safeRunToLocation
()


GetPath
(Target)
-

target can be location or
Ilocated
.


RunAlongPath
(Id of path)


RunAlongList
(list of
Ilocated

objects)


will request paths and do everything
automaticaly



ReachCheck
(Target)
-

anything
Ilocated
.


GetPath
()


RunAlongListOfILocated
(List)


nearestWeapon
(type)


nearestXY
()

41

/57


Shoot()


StopShoot
()


ChangeWeapon
()


StopShoot
()<SC>


stops shooting


Shoot(Target, Mode, Time)


how long we should be shooting


ShootCharged
(
Target,Mode
)


for charging weapons


ChangeWeapon
(Weapon)<SC>


Weapon in inventory with correct
inventoryId



ChangeWeaponToBest
()<SC>



issues
UnrealScript

command


42

/57

Memory


WorldView


Information about what agent currently sees


Internal status


Current health, weapon, ammo, visible navigation point, enemies


RecentMemory


A bit older information


Knowledge


Persistent knowledge about the map

43

/57

Code Flow


44

/24

prePrepareAgent
()


postPrepareAgent
()



doLogic
()



shutdownAgent
()

Sample Code

Better…

… but what to do if the
bot

is facing the wall from the beginning ?


45

/57

Sample Code

Better…

… what if the
bot

lose the player?


46

/57

1
인칭

?a?∙


47

/57

3
인칭

?a?∙


48

/57

노드와

?} 7



49

/57

IDE Interface


50

/57

Sample Code 2


51

/57

Sample Code 2


52

/57

Sample Code 2


53

/57


54

/57

Quiz


http://www.botprize.org/quiz.html

55

/57

2008
BotPrize

contest


The Judging Panel


David
Fogel

-

President of IEEE Computational Intelligence Society


Robert (RJ) Spencer
-

COO of
Interzone

Entertainment


Penny
Sweetser

-

senior game designer at 2K Australia and an AI e
xpert


Cam Atkinson
-

a l33t game player


John Wiese
-

senior project manager in Special Operations Comma
nd Support Systems at Thales Australia


Human


Andrew Smith


Roderick Baker


Byron
Pogson



Keith Johnson


Seb

Davidson


56

/57

2008
BotPrize

contest


57

/57

Question