Loading...
 

PogamutUDK


GameBot not reacting in Custom Level

Hi All
I’ve been using this forum to help in developing a tool for my thesis. And I keep on coming back and you guys always provide me great information to solve my issues. So I must give a big thanks to the development team of Pogamut!

I’ve come in contact with another problem.

I installed Pogamut Gamebots in UDK (Dec 2010 Edition) and preformed the following steps to create my level and a custom pickup:
STEP 1:
Inside C:\UDK\UDK-2010-12\Development\Src\UTGame\Classes, I created the following UC files:
class MyCustomItem extends UTItemPickupFactory
class MyCustomItem _Item01 extends MyCustomItem
With these I am able to create my own custom pickups which are shown in UDK Editor. I understand this is not directly related to Bots, but eventually I will need the Pogamut Gamebots to pick my custom items.

STEP 2:
I created a basic DM level by setting World Properties -> World_Info -> Game Type for PIE to BotDeatchmatch. Then I created several path_nodes and PlayerStarts in the level. Also create UTWeapon_Pickup_Factory for each weapon for the player and Bots to pick up.

Step 3
I named the level I created to DM-Deck for the reason that this is the name of the default map. Once done I COOK and MAKE everything with UDK Front-End tool.

Step 4:
Open Netbeans and create a new project. For this test I created a Hunter bot type from UDK Sample file.

Step 5:
Switch on server by going into Command Promptand got the following.
Server Output:
C:\UDK\UDK-2010-12\Binaries>udk server DM-Deck?game=GameBotsUDK.BotDeathMatch
Init: Version: 7637
Init: Epic Internal: 0
Init: Compiled (32-bit): Dec 11 2010 09:15:54
Init: Command line: DM-Deck?game=GameBotsUDK.BotDeathMatch
Init: Base directory: C:\UDK\UDK-2010-12\Binaries\Win32\
Init: Character set: Unicode
Log: Executing Class Engine.ServerCommandlet
Log: Initializing Game Engine...
Init: UEngine initialized
Log: Steamworks is unavailable
Log: LoadMap: DM-Deck?Name=Player?Team=255?game=GameBotsUDK.BotDeathMatch
DevMemory: Virtual memory allocation size: 88.31 MByte (92598272 Bytes)
Log: Game class is 'BotDeathMatch'
Init: WinSock: Socket queue 131072 / 131072
Log: NetMode is now 1
Log: Primary PhysX scene will be in software.
Log: Creating Primary PhysX Scene.
Log: Bringing World DM-Deck.TheWorld up for play (30) at 2011.02.04-15.45.34
ScriptWarning: Failed to register game with online service. Registering as a LAN match
BotDeathMatch DM-Deck.TheWorld:PersistentLevel.BotDeathMatch_0
Function Engine.GameInfo:OnServerCreateComplete:00F9
Error: Can't create a new online session when one is in progress: Transient.UTGameSettingsDM_1
ScriptWarning: Failed to register game with online service. Game won't be advertised
BotDeathMatch DM-Deck.TheWorld:PersistentLevel.BotDeathMatch_0
Function Engine.GameInfo:OnServerCreateComplete:0201
ScriptLog: BotServer bound to port 3000
ScriptLog: ControlServer bound to port 3001
ScriptWarning: Accessed array 'BotDeathMatch_0.GameSpecificMapCycles' out of bounds (-1/1)
BotDeathMatch DM-Deck.TheWorld:PersistentLevel.BotDeathMatch_0
Function GameBotsUDK.BotDeathMatch:PreBeginPlay:024A
ScriptLog: GB server on.
ScriptLog: BotServerPort:3000 ControlServerPort:3001
Log: Bringing up level for play took: 0.078683
Log: ########### Finished loading level: 0.432846 seconds
Init: Game engine initialized
Log: Initializing Game Engine Completed
ScriptLog: START MATCH

Step 5:
I go back to Netbeans and RUN the Hunter file.
Netbeans Output:
(Platform) WARNING 15:46:17.965 Creating registry at 51936 ...
(Platform) WARNING 15:46:17.988 Starting MBean server.
(RaycastingBot) WARNING 15:46:18.158 There is no weapon descriptor for current bot's weapon of id: 'UTWeap_LinkGun_0'
(RaycastingBot) WARNING 15:46:18.388 There is no weapon descriptor for current bot's weapon of id: 'UTWeap_LinkGun_0'
(RaycastingBot) WARNING 15:46:18.622 There is no weapon descriptor for current bot's weapon of id: 'UTWeap_LinkGun_0'
(RaycastingBot) WARNING 15:46:18.854 There is no weapon descriptor for current bot's weapon of id: 'UTWeap_LinkGun_0'
(RaycastingBot) WARNING 15:46:19.088 There is no weapon descriptor for current bot's weapon of id: 'UTWeap_LinkGun_0'
(RaycastingBot) WARNING 15:46:19.321 There is no weapon descriptor for current bot's weapon of id: 'UTWeap_LinkGun_0'

Step 7:
Open UDK Game and enter the game by going into “open 127.0.0.1”.
Server Output:
ScriptLog: We are in gained child 2, it is BotConnection_0
ScriptLog: Alive,BeginState
ScriptWarning: Accessed None 'Pawn'
RemoteBot DM-Deck.TheWorld:PersistentLevel.RemoteBot_0
Function GameBotsUDK.RemoteBot:Alive.BeginState:0029
ScriptLog: Alive,EndState
ScriptLog: State: Dead, fc BeginState()
ScriptLog: In Dead:Begin:
ScriptLog: Spawn hack
ScriptLog: Trying to spawn pawn
ScriptLog: In Roaming STATE! Shouldnt be!
ScriptLog: Alive,BeginState
ScriptLog: Alive,EndState
ScriptLog: Lost Child BotConnection_0
ScriptLog: We are in gained child 2, it is BotConnection_1
ScriptLog: Alive,BeginState
ScriptWarning: Accessed None 'Pawn'
RemoteBot DM-Deck.TheWorld:PersistentLevel.RemoteBot_1
Function GameBotsUDK.RemoteBot:Alive.BeginState:0029
ScriptLog: Alive,EndState
ScriptLog: State: Dead, fc BeginState()
ScriptLog: In Dead:Begin:
ScriptLog: Spawn hack
ScriptLog: Trying to spawn pawn
ScriptLog: In Roaming STATE! Shouldnt be!
ScriptLog: Alive,BeginState
NetComeGo: Open TheWorld 02/04/11 15:47:38 127.0.0.1
Log: Command not recognized
ScriptLog: ServerSetSpectatorLocation UTPlayerController_0 GetStateName():'PlayerWalking' GetViewTarget():'GBPawn_2'

This process loads the game and lets me traverse through the level I created with no problems letting me pick the CustomItems I added in the level. However the Hunter bot is simple standing there doing nothing. It does not react when I go next to it or when I shoot at it. And if I kill it another one will simple be created.

Could someone please help in solving this problem.

Kind Regards,
dirkmalta

P.S. I tried doing this same process for previous versions of UDK with the same result. I also noticed that using earlier version from UDK-07-2010 actually cause the level to crash when initially started.
Hi!
First of all - great that you are using Pogamut with UDK (I guess you are one of the first)! Currently Pogamut UDK support is not thoroughly tested. Few additional questions:
1) Could you try if the navigation bot example does the same thing on your map? (not moving after start)
2) Do you have navigation points grid generated correctly for you map? (press ALT + G when connected on UDK server, colored lines should appear between navigation points - if they appear then it is ok).
3) When trying to run Navigation bot and Hunter bot on default map DM-Deck do they move, or do they do nothing after start as on your new custom map?

It seems to me that the connection to UDK through GB is working (otherwise the hunter would not be created at all). So either there is a problem with navigation (which I think is not the case), or there is problem in Pogamut ItemDescriptor, that does not recognize your new custom items added to the level (although I would presume it would use some defaults) and is causing Pogamut code to "freeze" (if it is really the case we can solve it easily I believe).

Maybe you could try even this:
4) Edit the HunterBot code - erase everything from logic() method and add there only one line
getAct().act(new Jump());
Does this bot jump after connecting him to your custom level?

Best,
Michal
 

News

News RSS RSS feed for News link



Pogamut

Quarterly RSS RSS feed for quarterly reports

Acknowledgement

This work is supported by GA UK 1053/2007/A-INF/MFF (2007-8), GA UK 351/2006/A-INF/MFF (2006-8), the Ministry of Education of the Czech Republic (grant MSM0021620838) (2008-9), by the Program "Information Society" under project 1ET100300517 (2006-9), and the project Integration of IT Tools into Education of Humanities (2006-8) and by the project CZ.2.17/3.1.00/31162, which are financed by the European Social Fund, the state budget of the Czech Republic, and by the budget of Municipal House Prague.