Labs for Human-like Artificial Agents (Summer 2021/22)

This page contains materials for labs of the Human-like Artificial Agents (NAIL068) course (lectures webpage here) that is taught during summer semester of 2019/20 at Charles University in Prague, Czech Republic. The course is lead mainly by Cyril Brom and Jakub Gemrot. Labs are backed up by Jakub Gemrot ( and Petr Mácha (Bohemia Interactive Simulations,

Labs are containing two tracks Pogamut 3 (Unreal Tournament 2004; up-to a few agent scenarios) and NOTA (always many agent scenarios).

History: 2021202020192018<= 2017


Follow the appropriate channel at Gamedev Discord!


Pogamut Track (1st half of labs)

  • Runs 15.2.-24.3.2022
  • It will have slides/video format only
  • Plus, Jakub Gemrot will be available for consultations every Wednesday 21-23:00 at Discord, feel free to ping him

NOTA Track

UPDATED: 2022-03-28
  • Runs 29.3.2022-May 2022 (2nd half of labs)
  • Format:
    • Discord call sessions with slides 1-2x a week (based on number of people attending, Tuesday/Thursday)
      • All sessions will be recorded (with permision of people present on the call)
      • All sessions are interactive similarly to in-person labs (= Petr Mácha speaking/listening, students speaking/listening)
    • Consulatation
      • Sessions via Discord or live in person (based on students preference) in regular time (Friday’s afternoons)
      • Add hoc consulation hours can be individually set up anytime via Discord – just write personal message to Petr Mácha)

How to pass the labs – Homeworks

There will be two tracks of homeworks: Pogamut 3 (Unreal Tournament 2004) and NOTA. You have to do the BASE variants of ALL homeworks in BOTH tracks.

There will be 6 Pogamut 3 homeworks and 4 NOTA homeworks.

Moreover, there will be ADVANCED parts of homeworks. Successfully delivering advanced parts of homeworks will ease the final exam for you. In each track, you can score up-to 40 points. Those points contribute to the overall track score.

How to pass the course – The Final Exam

There will be two tracks of the final exams: Pogamut 3 (Unreal Tournament 2004) and NOTA. You have to successfully pass at least ONE of them to finish the course.

The final exam will be about creating one complex behavior or solve one complex scenario using techniques and tools you will learn throughout the labs.

In each track, you can receive 0-90 points for solving the final exam.

The final score of the track is then made of the sum of “final exam points” and “homework points”, so in theory, you can ean up-to 130 points in a given track.

You will receive the grade according to the higher of track scores, which forms your final score.

Final_score = MAX{Pogamut_3_track_score, NOTA_track_score} translates to the grades as follows.

Final Scoring   Final Grade
[0-55) Fail
[55-70) C
[70-85) B
[85-130] A


Pogamut 3 Track

Follows the list of Pogamut 3 Track labs including their details and points you can gather by doing advanced part of homeworks.

Date Topic Homework
(project stubs)
Slides / Video / Resources Tournament
1. 15.2.2022 (Tue)
17.2.2022 (Thu)
First Pogamut 3 Steps SearchBot PDF, YT,
2. 22.2.2022 (Tue)
24.2.2022 (Thu)
Movement WolfBots 5 6.3.2021 (Sun)
23:59 (CET)
PDF, YT 6.3.2022 (Sun)
23:59 (CET)
3. 1.3.2022 (Tue)
3.3.2022 (Thu)
Item picking ItemPickerSquad 5 13.3.2022 (Sun)
23:59 (CET)
PDF, YT (2021)  –
4. 8.3.2022 (Tue)
10.3.2022 (Thu)
Combat DuelistBot 5 20.3.2022 (Sun)
23:59 (CET)
PDF, YT (2020)  –
5. 15.3.2022 (Tue)
17.3.2022 (Thu)
Spatial Awareness AdvDuelistBot 10 27.3.2022 (Sun)
23:59 (CET)
PDF, YT (2020) 27.3.2022 (Sun)
23:59 (CET)
6. 22.3.2022 (Tue)
24.3.2022 (Thu)
Team Deathmatch Deathmatch Team 15 3.5.2022 (Sun)
23:59 (CET)
PDF, YT (2020) 3.5.2022 (Sun)
23:59 (CET)

GameBots 2004

  • WARNING: There is new GameBots2004 version, that is fixing LevelGeometry stuff, download it now!
    • Do not forget also to update Pogamut Java libraries!

Tournament 3 – Team Deathmatch

  • Table-tournament, all teams fight all other teams
  • 4v4
  • Three maps: DM-Rankin-FE, DM-Roughinery-FPS, DM-DE-Ironic-FE
  • Advanced points: 16/12/8/4 awarded to the 1st / 2nd / 3rd / 4th place

Tournament 2 – Deathmatch

  • Table-tournament, all bots fight all other bots
  • One map: DM-Roughinery-FPS
  • Advanced points: 12/9/6/3 awarded to the 1st / 2nd / 3rd / 4th place

Tournament 1 – Wolves & Sheep

  • The best wolves duo (the most sheeps / the fastest) wins!
  • One map: DM-TagMap
  • Advanced points: 8/6/4/2 awarded to the 1st / 2nd / 3rd / 4th place

Tips & Tricks

UT2004 on Windows 10 – Broken CD-Key

If UT2004 gives you an error that your CD Key appears to be invalid, then try to follow this advice.

Basically, it sometimes happen that registry entry containing CD Key that is required by UT2004 to be present in order to run, is misplaced. Personally, I had to find mine (look for UT2004 registry key, it should have an entry "CDKey"="xxxxx-xxxxx-xxxxx-xxxx") and move it to correct place, which on Windows 10 is  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Unreal Technology\Installed Apps\UT2004

Once moved, game runs as usual.

UT2004 won’t run my GB2004

Sometimes it help to delete UT2004\System\UT2004.ini file. Check it out. UT is able to regenerate it.

Pogamut Bot is not starting, some Guice (initialization) related error

You need to use old Java 1.8 JDK, you can obtain one here from the Oracle Archives. Once installed, you need to added into the Eclipse via Menu -> Window -> Preferences -> Java -> Installed JREs -> Add button.

Full HD of Java apps on Windows 10

If you have problems with >FullHD resolutions on Windows 10, read this tip. You have to create a .manifest file for javaw.exe within your JDK or JRE folder.

Adding native bots into UT2004

By Marius Anagnoste

I found an easy way to add bots to the servers so students can test their bots against the UT2004 bots.

  • To do so, in the server .bat file, add parameters like: ?difficulty=7?numbots=1?adminname=user?adminpassword=pass?minplayers=2
  • Difficulty is between 1 and 7, with 7 being the Godlike bot. Adminname and adminpassword are for players to login as admins. Change them as desired.
  • Start up the server and the game, and while spectacting, bring up your game console with ~ or whatever other key (depending on keyboard) and login with: adminlogin user pass
  • And then, to use server commands, prefix them with admin: admin addbots 1
  • To remove bots: admin killbots

Nota Track

Information sources
Seminar schedule and consultation hours & places this page
Latest news/updates & streamed lessons Gamedev Matfyz on Discord, room #msc-nail082-hlaa
Registration for e-mail announcements & personal consultation scheduling
Course knowledge sources
How to get help? Fast hints

1) Trello (for technical issues)
2) Discord (for hints, personal or course issues)
3) Personal consultation (call via Discord/Skype or meeting in person)

(!) ONLY Personal consultation (call via Discord/Skype or meeting in person)

Assignments solutions sent via e-mail have no response time guaranteed.

Follows the list of NOTA Track labs including their details and points you can gather by doing advanced parts of the track homeworks.

     Date (weekday) time
     Topic Video Assignment Assignment
1 29. 03. 2022 (Tue) 17:30 P1: NOTA Intro (Discord: #msc-nail068-hlaa-labs) recording intro  –
1 31. 03. 2022 (Thu) 17:20 P2: NOTA Intro (Discord: #msc-nail068-hlaa-labs) recording  –
01. 04. 2022 (Fri) 14:00 On-line/In person consultation time (Discord: #msc-nail068-hlaa-labs)  –  –  –
spec. 07. 04. 2022 (Thu) 17:20 Lua Language Intro Petr Mácha + Martin Sochor (BISimulations) recording lua practice
08. 04. 2022 (Fri) 14:00 On-line/In person consultation time (Discord: #msc-nail068-hlaa-labs)  –  –  –
2 12. 04. 2022 (Wed) 17:30 P1: Basics of development (Discord: #msc-nail068-hlaa-labs) recording sandsail 5
2 14. 04. 2022 (Thu) 18:40 P2: Basics of development (Discord: #msc-nail068-hlaa-labs) CANCELLED
18. 04. 2022 (Mon) 18:00 On-line/In person consultation time (Discord: #msc-nail068-hlaa-labs)
3 19. 04. 2022 (Tue) 17:30 P1: Making own primitives I – Sensors (Discord: #msc-nail068-hlaa-labs) recording
3 21. 04. 2022 (Thu) 19:00 P2: Making own primitives I – Sensors (Discord: #msc-nail068-hlaa-labs) recording
22. 04. 2022 (Fri) 16:00 On-line/In person consultation time (Discord: #msc-nail068-hlaa-labs)
4 03. 05. 2022 (Tue) 17:30 Control nodes, Debugging (Discord: #msc-nail068-hlaa-labs) recording ctp2 5
4 05. 05. 2022 (Thu) 17:20 Control nodes, Debugging (Discord: #msc-nail068-hlaa-labs) recording
5 10. 05. 2022 (Tue) 17:30 Making own primitives II – Leaf Nodes & Trees (Discord: #msc-nail068-hlaa-labs) recording ttdr 20
5 12. 05. 2022 (Thu) 17:20 Making own primitives II – Leaf Nodes & Trees (Discord: #msc-nail068-hlaa-labs) recording
6 17. 05. 2022 (Tue) 17:30 Subtrees + Aggregation (Discord: #msc-nail068-hlaa-labs) recording swampdota 100
6 19. 05. 2022 (Thu) 17:20 Subtrees + Aggregation (Discord: #msc-nail068-hlaa-labs) recording
Personal arrangements On-line/In person consultation time (Discord: #msc-nail068-hlaa-labs) reclamation training
16. 06. 2022 (Thu) 14:00 Exam (Discord: #msc-nail068-hlaa-labs)
24. 06. 2022 (Fri) 14:00 Exam (Discord: #msc-nail068-hlaa-labs)