======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 [[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=1ltHCquHPjWoYbA2vyOM4PAw9iu-DULnR|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====== =====BOTS FROM WORKSHOPS===== * [[https://drive.google.com/open?id=1Mw6uLtVoouH7p1PqN9iVWoip0nb_ZM3l|Workshop 1 bots]], updated versions * [[https://drive.google.com/open?id=1uAd3E2RoWWDWxQSw1F3CglWl9RZq21tW|Workshop 2 bots]], updated versions * **WARNING** There is new [[https://drive.google.com/open?id=1ltHCquHPjWoYbA2vyOM4PAw9iu-DULnR|GameBots2004 version]] fixinig LevelGeomrty issues, download it now! =====Workshop 2 (22.3.2019)===== **Lesson 2.1 - Behavior Oriented Design** ([[https://drive.google.com/open?id=1IEMMWHH8gsbWkzIFsNos6c3iUNHzLe_z|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** ([[https://drive.google.com/open?id=1d83uq9xwq-XzXBDJKkc1pyitA83wdzxG|PDF]]) * **Handling your weapons effectively** * **BOT 07** - Smart shooting * [[https://drive.google.com/open?id=1LMHnIxYaz_oyTbxoKTNlcPqPKRqQO72d|SmartShootBot project]] * 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 * [[https://drive.google.com/open?id=1DcWhJEJD4qmrcw303f3xcosPzz-vq0ai|EnviroAwareBot projects]] * 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 * [[https://drive.google.com/open?id=1d-6H8Vaa4A92KrzwHh3A5cCBTDH_oWDG|FlagStealerBot project]] * 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 * [[https://drive.google.com/open?id=1KHfgfKkELe0JjT-qDD80Kfxoz22pHunP|DifferentPathsBot project]] * 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 matches** * **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=1Izdgwnshe8y-1spjSyp9_i5WzRjGK2TF|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 (15.3.2019)===== **Lesson 1.1 - Pogamut Gentle Introduction** [[https://drive.google.com/open?id=1W7IQThxcFSgp01K0pINoFnUXQ0WGSh2g|(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=1VAf9FMo1c8AfnRFLvyQLygBWhaiARevX|(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=1Hq1WmoFzGnReIR2mQt3_j0nZWVPUIz0Y|(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|NavBot project template]] * 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.