Pogamut 3 Pilsen Workshop 2020
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 online for Pilsen ZČU university in 2020. The workshop are/were (mainly) backed up by Ondřej Rohlík and Jakub Gemrot.
Contacts
Ondřej Rohlík
Jakub Gemrot: gemrot@gamedev.cuni.cz
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
Workshops
Workshop 1 (20.4.2020)
ZOOM.US
- Workshop happens online on zoom.us: https://matfyz.zoom.us/j/97513381212
- We start 14:30 sharp!
Slides 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
Slides 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…
-
Workshop 2 (21.4.2020)
ZOOM.US
- Workshop happens online on zoom.us: https://matfyz.zoom.us/j/96322852610
- We start 14:00 sharp!
Slides 3 - Navigation & Communication (PDF)
- How to navigate within UT2004 environment
- What items can we pickup and use?
- How to communicate between bots?
- BOT 04 - ItemPickerSquad
-
- See the slides for assignment
- Implement squad that picks all interesting items in the map as fast as possible
-
Workshop 3 (22.4.2020)
ZOOM.US
- Workshop happens online on zoom.us: https://matfyz.zoom.us/j/95309613278
- We start 14:30 sharp!
Slides 4 - Weapons, Shooting, Behavior Oriented Design (PDF)
- BOD
- Some crucial parts of theory behind behavior design
- Two examples: Scripting (plain old Java), OOP (using classes as respective behaviors)
- Handling your weapons effectively
- BOT 05 - Smart shooting
- A bot that is switching between Lightning gun and other weapons effectively
Slide 5 - Spatial Awareness, CTF (PDF)
- Spatial awareness and cover paths
- BOT 06.1 + 06.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 07 - Flag stealer
- Update to the CoverPathBot, now we're running between bases instead of items
- Reasoning about different paths between flag bases
- BOT 08 - Finding different paths
- A path-reasoning routine that is able to find different paths between bases
- Automating execution of CTF matches
- PROJECT 09 - 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 10 - 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
FAQ
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.