======Pogamut 3 Pilsen Workshop 2018====== 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 2018. The workshop are/were (mainly) backed up by Ondřej Rohlík and [[http://pogamut.cuni.cz/main/tiki-index.php?page=About+authors|Jakub Gemrot]]. ======Contacts====== Ondřej Rohlík Jakub Gemrot: [[mailto:gemrot@gamedev.cuni.cz|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 [[https://www.utzone.de/forum/downloads.php?do=file&id=1195_UT2004-MegaPack-+-Windows-Patch-3369|the Patch + Megaupdate]] * Note that if you have installed [[https://www.amazon.com/Unreal-Anthology-PC/dp/B000GPVUUS|Unreal Anthology]], you have both Patch 3369 and the MagePack - Patch your installation of UT2004 with Gamebots2004, download [[https://drive.google.com/open?id=1vr-My2lcZNIZt3Mi2f6hlsDtwQFDeUL7|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 ======Workshop History====== =====Workshop 2 (23.4.2018)===== During the workshop, I have been coding various behaviors, the updated bots can be found [[https://drive.google.com/open?id=1d49G1EoQjWSX4VEH6G0c3gnu9j3002iT|Workshop 2 Bots]]. **Lesson 2 - Tricks, Spatial Awareness, CTF** ([[https://drive.google.com/open?id=1Fx8yCeTSy4bwkwmUlsqK3N4EWhPjm7I-|PDF]]) * Handling your weapons effectively * **BOT 07** - Smart shooting * [[https://drive.google.com/open?id=1eEoSU19LU5xHaN766oBBc4zz7nuNIVX9|SmartShootBot project template]] * Implement the bot that is switching between Lightning gun and other weapons effectively * Spatial awareness and cover paths * **BOT 08** - Cover-path Item Picking * [[https://drive.google.com/open?id=19tTBiIAeXwUjpTsBDsL330b6rUk2yGnI|CoverPathBot project template]] * Implement a bot that will try to run for items in cover; formulate custom view of the environment * CTF rules and Pogamut support * **BOT 09** - Flag stealer * [[https://drive.google.com/open?id=18Z19TqyB_9LcFmGoH8Diejj6gBcUGe8S|FlagStealerBot project template]] * The link above contains files that you should patch BOT 08 with (navmeshes/visibility matrices for CTF maps) * Implement basic CTF bot that is able to steal enemy flag * Reasoning about different paths between flag bases * **BOT 10** - Finding different paths * [[https://drive.google.com/open?id=1ZW79hKjXspi-EzKVHNGWOjo7cmnL1dUh|DifferentPathsBot project template]] * Implement 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 * [[https://drive.google.com/open?id=1opRSvfhUMyk1FBDVcRGIYOcIAW8CLQPU|TeamCommBot project]] * Referential implementation of communication between Pogamut 3 bots via TeamComm server * Automating execution of CTF matchex * **PROJECT 12** - Auto-CTF Match * [[https://drive.google.com/open?id=1cycBgCXEJ1zli_7unb_g5T2pow0msYYT|CTFMatch project]] * 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 * [[https://drive.google.com/open?id=1VznDZyXazrByFSDBWbkEiXcgI_wru3vo|CTFBot project template]] * 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 (9.4.2018)===== During the workshop, I have been coding various behaviors, the updated bots can be found [[https://drive.google.com/open?id=1eezNHyyJ6b0zSx0cblbl4AQUTgX25wxb|Workshop 1 Bots]]. **Lesson 1.1 - Pogamut Gentle Introduction** [[https://drive.google.com/open?id=1tTzCSJTVQ7STrPCsehONH9gp3at-lxPn|(PDF)]] \\ * Pogamut gentle introduction * Virtual worlds, virtual agents * Basics of Pogamut - interface, API * How to run your first bot * **BOT 01** - EmptyBot * [[https://drive.google.com/open?id=1La5FC7_9YAK8SjrrMPl8VSrzGJEICaWw|EmptyBot project template]] * You might want to read through [[http://pogamut.cuni.cz/pogamut_files/latest/doc/tutorials/00-EmptyBot.html|EmptyBot tutorial]] * Fool around with your first Pogamut bot * **BOT 02** - ResponsiveBot * [[https://drive.google.com/open?id=1gsITkDVjF5xXZxr8QKoUi8yKCCQ-xMVI|ResponsiveBot project template]] * Learn how to setup event handlers **Lesson 1.2 - Pogamut Low-level API ** [[https://drive.google.com/open?id=1ZkfD8oDZPYTeyaJqzH38wBubnad70NWV|(PDF)]] \\ * Running around UT2004 environment * Sensors - self, players * Effectors - move, jump, dodge * **BOT 03** - Rocket Dodger Bot * [[https://drive.google.com/open?id=1Pf1ZwxC9umXj1peEmRqCdeWe-7NN9mQu|RocketDodger project template]] * Implement reaction to IncomingProjectile! * Find TODO within the code... **Lesson 1.3 - Navigation & Combat** [[https://drive.google.com/open?id=18J5rUVGz7FNzodZ124bRn-N_E6Job4lv|(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 * [[https://drive.google.com/open?id=1wHeU6u18yKV6sELTRiWuRn9lMthcVSoD]] * 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! ======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.