Pogamut 3 Pilsen Workshop 2019
We welcome you our student/s or anybody who has ventured up to this point while gathering info about the Pogamut 3 platform, welcome!
This page contains materials for the practice lessons of the Pogamut workshop performed at Pilsen ZČU university in 2019. The workshop are/were (mainly) backed up by Ondřej Rohlík and Jakub Gemrot.
Jakub Gemrot: email@example.com
Pogamut 3 Installation
We will be using Pogamut 3 platform during the workshop to control bots in Unreal Tournament 2004. In order to be able to use Pogamut 3 bots, follow the steps:
- Make sure you have UT2004 in latest version 3369 by downloading and installing the Patch + Megaupdate
- Note that if you have installed Unreal Anthology, you have both Patch 3369 and the MagePack
- Patch your installation of UT2004 with Gamebots2004, download Gamebots2004 and blend the contents of the zip with your UT2004 installation
- That's all! Pogamut 3 libraries will be automatically downloaded by Maven once you try to build any of bot templates for the first time
BOTS FROM WORKSHOPS
- WARNING There is new GameBots2004 version fixinig LevelGeomrty issues, download it now!
Workshop 2 (22.3.2019)
Lesson 2.1 - Behavior Oriented Design (PDF)
- Some crucial parts of theory behind behavior design
- Two examples: Scripting (plain old Java), OOP (using classes as respective behaviors)
Lesson 2.2 - Tricks, Spatial Awareness, CTF (PDF)
- Handling your weapons effectively
- BOT 07 - Smart shooting
- A bot that is switching between Lightning gun and other weapons effectively
- Spatial awareness and cover paths
- BOT 08.1 + 08.2 - Cover-path Item Picking
- EnviroAwareBot - a bot that you can manually control, otherwise is hiding you
- CoverPathBot - a bot that will try to run for items in cover; example of custom view of the environment
- CTF rules and Pogamut support
- BOT 09 - Flag stealer
- Update to the CoverPathBot, now we're running between bases instead of items
- Reasoning about different paths between flag bases
- BOT 10 - Finding different paths
- A path-reasoning routine that is able to find different paths between bases
- Team Communication and its support in Pogamut 3
- BOT 11 - TeamComm Example Bot
- Referential implementation of communication between Pogamut 3 bots via TeamComm server
- Automating execution of CTF matches
- PROJECT 12 - Auto-CTF Match
- Referential implementation that runs CTF match from Java including starting UT2004 dedicated server on concrete CTF maps and running bots as external processes via execution of their one-jars
- CTF Bot Advanced Stub
- BOT 13 - CTF Bot Stub
- Your CTF bot starting point, includes a lot of features and example code
- Shares info about items, players and flags within the team
- Event listeners
- Various reasoning routines including raycasting routines
- NavMesh / Path drawing
Workshop 1 (15.3.2019)
Lesson 1.1 - Pogamut Gentle Introduction (PDF)
- Pogamut gentle introduction
- Virtual worlds, virtual agents
- Basics of Pogamut - interface, API
- How to run your first bot
- BOT 01 - EmptyBot
- You might want to read through EmptyBot tutorial
- Fool around with your first Pogamut bot
- BOT 02 - ResponsiveBot
- Learn how to setup event handlers
Lesson 1.2 - Pogamut Low-level API (PDF)
- Running around UT2004 environment
- Sensors - self, players
- Effectors - move, jump, dodge
- BOT 03 - Rocket Dodger Bot
- Implement reaction to IncomingProjectile!
- Find TODO within the code…
Lesson 1.3 - Navigation & Combat (PDF)
- How to navigate within UT2004 environment
- What items can we pickup and use?
- What weapons are there to shoot with?
- BOT 04 - Navigation Bot
- Navigate between random navpoints
- BOT 05 - Collector bot
- Extend Navigation bot to be able to collect items according to their distance/value ratio
- BOT 06 - Hunter bot
- Extend collector bot with combat sub-behavior!
Q: Which version of Pogamut are we using?
A: 3.8.1-SNAPSHOT, always check your pom.xml after you download bot templates.
Q: I am missing help on all methods, attributes and classes (Javadoc is not working).
A: In NetBeans open your project and right click the Dependencies folder, click Download Javadoc, NetBeans should now download Javadoc and the help should be working. If it is not, click also Download Sources and after it is done (watch lower right progress bar) restart NetBeans. Sometimes NetBeans refuse to show help - it can be usually resolved by trying to Download Javadoc several times.
Q: How to disable master server authentication in UT2004?
A: In UT2004/System/UT2004.ini find [IpDrv.MasterServerUplink] and set the following:
[IpDrv.MasterServerUplink] DoUplink=False UplinkToGamespy=False SendStats=False
Q: How can I tell what version of Unreal Tournament 2004 I am running (v. 3369 required)?
A: Just start Unreal Tournament 2004 GUI, open the Join Game tab and the news page will have the number in the upper right corner.