Pogamut 3 Lectures 2013/2014

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 Human-like Artificial Agents (NAIL068) course that is/has been taught during summer semester 2013/2014 at Charles University in Prague, Czech Republic. The course is/was lead by Cyril Brom. The practice lessons are/were (mainly) backed up by Jakub Gemrot, Michal Bída and Martin Černý.


Monday's lectures, 14:00, SW1, Michal Bída: michal /tecka/ bida /zavinac/ gmail /tecka/ com

Tuesday's lectures, 9:00, SW1, Jakub Gemrot: jakub.gemrot@gmail.com

How to pass the practice

First, you should see hours-dotation (XLSX) for the whole course.

Then you should study scoring-system (XLSX) for the practice that gives you hints how you can obtain points and how many you need them to pass the practice (+strategy guidelines). You know, life is a game :-)

Long story short, you have to get at least 155 points to be admitted to Practice Final Test. If you obtain 185 points or more you automatically pass the practice (you don't have to go to Practice Final Test). You can get points for the attendance (2 for class), short tests (done during the lesson, 8 max, if you fill them later, you will get -3 points penalization), doing your homework assignments (typically 10 points) or by having high-quality tournament bots (up to 28 points per tournament).
If you obtain at least 135 points and want to pass, we will give you an extra assignment and based on your performance we will then admit you to Practice Final Test.

Test scoring details: you get 3 points if you will fill the test at the beginning of the class (in class ~ just by attending, this means you get 5 points for free only by attending classes!), you can get extra 5 points by answering questions correctly.

In order to get to the Final Exam of the Course you have to:

  • pass the Practice (by getting enough points and/or passing Practice Final Test)
  • do whatever Cyril says you have to do (participating in experiments, etc.)


  • Final exam will be on 23.5.2014 from 9:00 up to 17:20 (worst case)
    • Let us know if the term does not suit you
  • To be admitted to final exam you need to
    • Either have more than 185 points from the practice
    • Or have at least 155 points and pass practice final test
  • Practice Final Test will be on 19. & 20.5.2014 instead of the practice lecture.


Always send your bots to jakub.gemrot@gmail.com !

Capture the Flag

  • deadline 17.5.2014 23:59

DeathMatch 1v1



  • TOURNAMENT IS OVER! 23.3.2014
  • Tag! Tournament Presentation [8 MB] debriefing presentation, scoring, results
  • Tag! Tournament FULL Package [282 MB] including videos, tournament setup details, results, comments and hints for future work
    • Use rK DemoWatcher to run the replays and do not forget to use GameBots2004 from folder UT2004!

Lectures History

Lecture 10 - (PPTX), (PDF) (12.5.2014/13.5.2014) Test links included

  • Today's lesson concludes our lectures
    • We will go through last tournament - DeathMatch
    • We will look at UT2004TeamComm in yaPOSH
    • We will go through everything we have done
    • We present a checklist of things you should know before practice final test and exam
  • Bonus Assigment for those with less than 135 points - Create CTF Bot Team in yaPOSH!
    • The bot arms himself, looks for his flag if stolen, captures enemy flag and
    • Cooperates with other bots in the team, details on slides

Lecture 9 - (PPTX) (PDF) (5.5.2014/6.5.2014) Test links included

  • Today's topic is Capture-the-Flag
    • Learn CTF Rules
    • Use yaPOSH to code own senses and actions
    • Try it yourself, implementing a DeathMatch bot, remember:
  • Assigment 9-10
    • Create CTF bot in yaPOSH!
      • Collects weapons, ammo and armor on the map
      • Fight other players
      • Steal enemy flags, Defend own flag
      • Does not stuck (its ok, if he occasionally freezes somewhere for a few seconds, but not forever!)
      • Use DM-1on1-Joust map

Lecture 8 - (PPTX), (PDF) (28.4.2014/29.4.2014) Test links included

  • Today's topic is Behavior Oriented Design (BOD), POSH and DeathMatch Bot
    • Learn about BOD - methodology how to code intelligent behavior
    • Learn about POSH - reactive planner built on top of this methodology
    • Try it yourself, implementing a DeathMatch bot, remember:
      • UT2004ItemType, UT2004ItemType.Category and WeaponPreferences - how to use weapons effectively
      • Modules: items, weaponry, weaponPrefs and shoot
  • Assigment 8
    • Create DeathMatchBot in yaPOSH!
      • Collects weapons, ammo and armor on the map
      • Fight other players
      • Does not stuck (its ok, if he occasionally freezes somewhere for a few seconds, but not forever!)
      • Use DM-1on1-Albatross map
    • All your DM bots will automatically take part in DM bot tournament - deadline for bots on 10.5.2014!
      • Send your bot to Jakub Gemrot as well (even if you attend monday lectures)

Lecture 7 - (PPTX), (PDF) (14.4.2014/15.4.2014) Test links included

  • Today's topic is Weapons and Items!
    • Learn about UT2004ItemType, ItemType.Category, Items and Weapons descriptors
    • Know your weapons to use them well
    • WeaponPreferences - how to use weapons effectively
    • Modules: items, weaponry, weaponPrefs and shoot
  • We will start from: EmptyBot 3.6.1-SNAPSHOT
  • Assigment 7
    • Create CollectorBot
      • Collects weapons, ammo and armor on the map
        • Try to be really clever about this, prioritize items in best-you-can do order
          • I.e., don't make obvious mistakes like “rocket ammo better than 50 armor”
      • Does not stuck (its ok, if he occasionally freezes somewhere for a few seconds, but not forever!)
      • If he sees the item he wants is not there (e.g. you run three collector bots and the other one got it first), he re-plans and goes for a different item
      • Use DM-1on1-Albatross map
      • !!! Deadline for this assigment is on 26.4.2014 (there will be no lessons during Easter holidays on 21. and 22.4.2014)

Lecture 6 - (PPTX), (PDF) (7.4.2014/8.4.2014) Test links included

  • Static visbility information
    • Visibility Matrix
  • A-Star implementation within Pogamut 3
    • UT2004AStar
    • IPFMapView
  • Hide&Seek Game
  • Hide&Seek Tournament announcement
    • It contains specific DM-HideAndSeekMap.ut2 file, put that into UT2004/Maps directory in order to be able to run it
    • Then you have to alter UT2004/System/startGamebotsDMServer.bat to start DM-HideAndSeekMap instead of DM-TrainingDay
  • Assigment 6
    • Implement HideAndSeek Bot, both roles
      • Tournament will be held on a different map, so we do not recommend using static information, e.g. run to [1000,500,0] … :-)
      • Submit your bots before 20.4.2014 23:59 (and always send a copy to jakub.gemrot@gmail.com)
      • 10 points + up to 16 from tournament !

Lecture 5 - (PPTX), (PDF) (31.3.2014/1.4.2014) Test links included

  • Pogamut World Abstraction review
  • Pogamut Navigation Introduction
    • UT2004Navigation
    • FloydWarshallMap
    • StuckDetectors
  • We will start from: EmptyBot 3.6.1-SNAPSHOT
  • Assigment 5
    • Create a navigation bot that will be running around a map
      • And will be able to handle stucks gracefully
      • Log things the bot is doing through global chat
        • Running to new navpoint
        • Stuck and its info
    • 10 points

Lecture 4 (PPTX), (PDF) (24.3.2014/25.3.2014) Test links included

  • Steerings and Steering Game, get Steering Game 2.0
  • Download practical steering examples for the steering game
  • Assigment 4
    • Install Steering Game 2.0, do at least 4 easy missions and 2 intermediate missions and send us proof you did them
      • How to send proof - Save Scene after completing each mission, send us the resulting xml files
      • Easy mission ~ 1 point
      • Intermediate mission ~ 3 points
      • (Optional) Hard mission ~ 5 points (up-to 10 points)
    • 10 points + up to 10 bonus

Lecture 3 (PPTX), (PDF) (17.3.2014/18.3.2014) Test links included

  • Running around UT2004 environment
  • Sensors - self, players
  • Effectors - move, jump, dodge
  • Tag! Game
  • Tag! Tournament announcement
  • Download TagBot project template (67 MB!).
    • It contains specific DM-TagMap.ut2 file, put that into UT2004/Maps directory in order to be able to run it
    • Then you have to alter UT2004/System/startGamebotsDMServer.bat to start DM-TagMap instead of DM-TrainingDay
    • Note that the file also contains:
      • Movies with bots from Tag! 2013, chance to learn a few tricks!
      • Contains files to execute match with bots from Tag! 2013 to check how good your bot is!
    • You will need to use GameBots2004 v3.6.1-SNAPSHOT to run matches with bots from 2013, download the file and patch your UT2004 installation and if you do, do not forget to rewrite pom.xml of your bot to version 3.6.1-SNAPSHOT!
  • Assigment 3
    • TagBot! First real scenario that requires smart AI!
    • Create the best TagBot, win the tournament and score extra points!
      • Don't forget that the TagBot should implement both roles 1) seeker as well as 2) runner
      • GOOD LUCK!
    • 10 points + 8 bonus (ideal seeker)

Lecture 2 (PPTX), (PDF) (10.3.2014/11.3.2014) Test links included

  • Pogamut gentle introduction
  • Virtual worlds, virtual agents
  • Basics of Pogamut - interface, API
  • How to run your first bot
  • Want to know more? Or did you forget something from the lecture? Read EmptyBot tutorial and ResponsiveBot tutorial!
  • Assigment 2
    • Easy and fun! :-)
    • Fool around with your first Pogamut bot
    • Create a follow bot that will listen to your commands! :-)
    • 10 points

Lecture 1 (PPTX), (PDF) (3.3.2014/4.3.2014) Test links included

  • Practice scoring details - read them very carefully
  • Java Revisited
  • Which Java version is required (recommended for advanced users), what IDEs you can use
  • How to install SVN and Maven + “how-to-use” links
  • Assignment 1
    • Install Subversion and Maven
    • Finish implementation of Java classes inside the project svn://artemis.ms.mff.cuni.cz/pogamut/trunk/project/Incubator/Lectures/JavaRevisited
    • Confirm that your implementation is correctly working by successfully passing all bundled JUnit tests
    • Implementation of “Listeners class” is for extra points (challenging task) ~ you can let all “Flag” tests in “failing” state
    • 10 points + 5 bonus

Promo (PPTX), (PDF)

  • Slides that gives you an overview what ordeal (translate as 'fun') awaits you during practice lessons :-)
    • Ok, we do not want to scare you - honestly, we think that practice lessons we have prepared for you are lots-of-fun and will inspire you to experiment with AI within the boundaries of UT2004 virtual environment

Score tracking

  • We will continually track your Attendance/Tests/Homeworks/Tournaments
  • Provided as Google Doc, mail us to receive the link (cannot be made public due to the law)

Pogamut 3 platform


  • Pogamut UT2004 3.6.0 and Pogamut Emohawk Installer 3.6.0. Get them at Pogamut download page
  • Date: 24.2.2014
  • For Pogamut UT2004 Installer you have to have UT2004 installed somewhere.
  • Both installers will install: Maven 3.0.4, NetBeans plugins, Pogamut Example archetypes. Note that you need NetBeans 7.3.1, otherwise Pogamut archetypes won't be accessible from NetBeans context menu (New Project → Maven → Project From Archetype → Local Archetypes Catalog).
  • Before you launch the bot, you need to start Unreal server:
    • For UT2004, go to directory Unreal Anthology/UT2004/System and there launch startGamebotsDMServer.bat. To observe the bot in the environment launch startUT2004low.bat from the same directory.
    • For UnrealEngine2Runtime, go to directory UnrealEngine2RuntimeDemo/System/ and there launch startEmohawkServer.bat. To observe the bot in the environment launch startUE2Runtime.bat (after the server is launched).


  • If you have UT2004 installed, you can follow guidelines of tutorial Pogamut 3 quickstart tutorial found at Pogamut Documentation page. However, we recommend to use installers above.


Q: Which version of Pogamut are we using?
A: 3.6.0, always check your pom.xml after you download bot templates or materialize Maven archetypes to check whether you're using correct version.

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 get account in our computer laboratory for non-MFF students?

  • b) Get the network administrator of students school to sign the form above (if you are unable to get the signature, then ask Cyril Brom)
  • c) Go to the SISAL, Mala Strana, fourth floor - in the corridor in the back and there they will create an account for you

Q: How do I create PogamutUT2004 Bot project in NetNeans from archetype?
A: Its easy. Simply click New Project, from categories choose Maven. From projects choose Maven project. Click on Next. Click on Add… button and the NetBeans will ask you about archetype details. That is :

Full list of available archetypes can be found here. (always use repository above)

Also be sure that NetBeans is using Maven 3.0.4! Obtain Maven from here: Maven 3.0.4. After unpacking, go to NetBeans→Tools→Options→Miscellaneous→sheet Maven→set Maven home directory.

Q: I have a problem with imports - the NetBeans help doesn't work. :-/
A: Two solutions, either add PogamutUT2004.jar and PogamutCore.jar to libraries to your project (the help should be working), or add imports to your class manually. Some useful imports:

import cz.cuni.amis.pogamut.base3d.worldview.object.*; //for Location, Velocity..
import cz.cuni.amis.pogamut.ut2004.communication.messages.gbcommands.*; //GB commands
import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.*; //GB messages

Q: I am a student and want to use Pogamut, but I don't have UT2004.
A: Unfortunately school cannot provide you with UT2004 - however you are free to use Pogamut in SW1 laboratory (when it is free) and there is one Pogamut computer in MS lab (far end against the entrance) where we can create an account for you. Second solution is to use UnrealEngine2RuntimeDemo exclusively, which is free for educational purposes and which is installed with Pogamut Emohawk installer.

Q: How to disable master server authentication in UT2004?
A: In UT2004/System/UT2004.ini find [IpDrv.MasterServerUplink] and set the following:


Q: I'm trying to setup @EventListener or @ObjectClassEventListener in POSH actions (or senses) and they are not working, why?
A: These listeners works only in XxxContext classes. You have to declare them there and then access them from actions or senses.

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.


Creation of this course was partially supported by the project Integration of IT Tools into Education of Humanities, which is financed by the European Social Fund, the state budget of the Czech Republic, and by the budget of Municipal House Prague.

Inovace kurzu v letech 2011/2 a 2012/3 byly podpořeny projektem CZ.2.17/3.1.00/33274 financovaným Evropským sociálním fondem a rozpočtem hlavního města Prahy.

Evropský sociální fond
Praha & EU: Investujeme do vaší budoucnosti

human-like_artifical_agents_2013-14_summer_semester.txt · Last modified: 2014/05/26 18:25 by jakub.gemrot