======Pogamut 3 Pilsen Workshop 2021====== 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 2021. 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/file/d/1evGR4-GHYd-cxH-fY33fAkiQSCvxqSUy/view?usp=sharing|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 (1.3.2021)===== **DISCORD** * Workshop happens online on **Gamedev Discord > Lecture Hall > AUDITORIUM** * MFFUK Gamedev Discord invite https://discord.gg/wwpZNwBJCW * We start **13:15 sharp**! **Slides 1 - Pogamut Gentle Introduction** [[https://drive.google.com/open?id=1i0AOB3s5F-hQ60XxDwRSGhAB1cjigPFk|(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=1fXftQHFeSOqACozh9FRcOloAYy__2quR|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=1p7wkxRHXEv-0JVFUZD7KKilKgcpuzkPF|ResponsiveBot project template]] * Learn how to setup event handlers **Slides 2 - Pogamut Low-level API ** [[https://drive.google.com/open?id=1V6Rtxk22MuOajEgShbWwkQxJFZwg0kwc|(PDF)]] \\ * Running around UT2004 environment * Sensors - self, players * Effectors - move, jump, dodge * **BOT 03** - Rocket Dodger Bot * [[https://drive.google.com/open?id=1Zo1HK1cMAUnXmXRICKpHRiPaOepWjVek|RocketDodger project template]] * Implement reaction to IncomingProjectile! * Find TODO within the code... =====Workshop 2 (15.3.2021)===== **ZOOM.US** * Workshop happens online on Google Meet * We start **13:15 sharp**! **Slides 3 - Navigation & Communication** [[https://drive.google.com/open?id=1Zh_aoFIzPGmp8NsA7Avs97aCNLZwYVKs|(PDF)]] \\ * How to navigate within UT2004 environment * What items can we pickup and use? * How to communicate between bots? * **BOT 04** - ItemPickerSquad * [[https://drive.google.com/open?id=1xwxklDV47neVBFGOjHWr6J1eMl86V0P2|ItemPickerSquad project template]] * See the slides for assignment * Implement squad that picks all interesting items in the map as fast as possible =====Workshop 3 (22.4.2020)===== **GOOGLE MEET** * We start **13:15 sharp**! **Slides 4 - Weapons, Shooting, Behavior Oriented Design** ([[https://drive.google.com/open?id=1fz-1x1bj263FcN-np5zhx7etiN9_Mjmt|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 * [[https://drive.google.com/open?id=11J9aq_VKDroPmTQmf2B_mPrZgfWM6-pX|SmartShootBot project]] * A bot that is switching between Lightning gun and other weapons effectively **Slide 5 - Spatial Awareness, CTF** ([[https://drive.google.com/open?id=1jMokWQhwOoB-pmUXTAYNxu3IIqUooBme|PDF]]) * **Spatial awareness and cover paths** * **BOT 06.1 + 06.2** - Cover-path Item Picking * [[https://drive.google.com/open?id=1cUWnaPWyjxLgVDZVD0mfE7NDafQp8GdX|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 07** - Flag stealer * [[https://drive.google.com/open?id=1m-U1lEJFiW1HsiMemUd2lwBumza4XHqm|FlagStealerBot project]] * 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 * [[https://drive.google.com/open?id=1XZNJs6XndJU-7dxF2gFkkh3XsyR0zkUP|DifferentPathsBot project]] * A path-reasoning routine that is able to find different paths between bases * **Automating execution of CTF matches** * **PROJECT 09** - Auto-CTF Match * [[https://drive.google.com/open?id=1w2v6IWwsEYbMTUpxzkHvFjWUEBltAplv|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 10** - CTF Bot Stub * [[https://drive.google.com/open?id=1jRp8tMD6vGuiNE7u-S5l6KQJhyVU0DmQ|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 ======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.