Labs for Human-like Artificial Agents (Summer 2022/23)

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 three tracks Pogamut 3 (Unreal Tournament 2004; single agent scenarios), Unity, and NOTA (always many agent scenarios).

History: 2022, 2021202020192018<= 2017


Follow the appropriate channel at Gamedev Discord!


Pogamut Track (1st half of the 1st half of labs)

  • Runs 15.2.-8.3.2023
  • IRL in SW2

Unity Track (2nd half of the 1st half of labs)

  • Runs 22.3.-29.3.2023
  • IRL in SW2

NOTA Track (2nd hald of labs)

  • Runs 5.4.2023-May 2023
  • Format: [TBD]
    • 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 4 Pogamut 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 labs

You need to do all the homeworks for both Pogamut 3 and NOTA.


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)
Materials Tournament
1. 15.2.2023 (Wed) First Pogamut 3 Steps SearchBot PDF
Bot Lab
Bot HW
Old recording (contains some irrelevant org. info)
2. 22.2.2023 (Wed) Movement WolfBots 10 6.3.2023 (Mon)
23:59 (CET)
Recording (2021)
6.3.2023 (Mon)
23:59 (CET)
3. 1.3.2022 (Wed) Item picking ItemPickerSquad 10 13.3.2023 (Mon)
23:59 (CET)
Recording (2021)
4. 8.3.2022 (Tue)
10.3.2022 (Thu)
Combat DuelistBot 20 20.3.2023 (Mon)
23:59 (CET)
Recording (2020)
27.3.2022 (Mon)
23:59 (CET)

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
  • Results: CSV

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
  • Results: XLS
    • There are multiple people on 2-6th place!
    • Total points to distribute is 18, so I give 4 extra points to all of you

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_MACHINESOFTWAREWow6432NodeUnreal TechnologyInstalled AppsUT2004

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


Unity Track

Follows the list of Unity Track labs including their details.

Date Topic Materials
5. 15.3.2023 (Wed) Cancelled
6. 22.3.2023 (Wed) Steerings in Unity Unity Steerings Project
7. 29.3.2023 (Wed) FSM-based AI in Unity Unity-Behaviours-Project


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). I’m ready to schedule multiple extra consultation sessions if needed.

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.
Lab No.      Date (weekday) time
     Topic Video Assignment Assignment
1 04. 04. 2023 (Tue) 17:30 P1: NOTA Intro (Discord: #msc-nail068-hlaa-labs) recording intro  –
06. 04. 2023 (Thu) 18:00 P2: NOTA Intro + On-line consultation time (Discord: #msc-nail068-hlaa-labs) intro  –
2 11. 04. 2023 (Tue) 17:30 Basics of development (Discord: #msc-nail068-hlaa-labs) recording sandsail 5
11. 04. 2023 (Tue) 19:00 On-line consultation time (Discord: #msc-nail068-hlaa-labs)
spec. 12. 04. 2023 (Wed) 19:00 Lua Language Intro Petr Mácha + Martin Sochor (BISimulations) (Discord: #msc-nail068-hlaa-labs) recording  Lua practice optional
3 02. 05. 2023 (Tue) 17:20 Making own primitives I – Sensors (Discord: #msc-nail068-hlaa-labs) recording
03. 05. 2023 (Wed) 19:00 On-line consultation time (Discord: #msc-nail068-hlaa-labs)
4 10. 05. 2023 (Wed) 20:00 Control nodes, Debugging (Discord: #msc-nail068-hlaa-labs) recording ctp2 5
12. 05. 2023 (Fri) 19:00 On-line consultation time (Discord: #msc-nail068-hlaa-labs)
17. 05. 2023 (Wed) 19:00 On-line consultation time (Discord: #msc-nail068-hlaa-labs)
5 18. 05. 2023 (Thu) 18:00 Making own primitives II – Leaf Nodes & Trees (Discord: #msc-nail068-hlaa-labs) recording ttdr 20
spec. 23. 05. 2023 (Tue) 17:30 Subtrees + Aggregation (Discord: #msc-nail068-hlaa-labs) recording reclamation optional
spec. 24. 05. 2023 (Wed) 19:00 On-line/In person consultation time (Discord: #msc-nail068-hlaa-labs)
MM. DD. 2023 () 14:00 Exam (Discord: #msc-nail068-hlaa-labs) swampdota 100
MM. DD. 2023 () 14:00 Exam (Discord: #msc-nail068-hlaa-labs) swampdota 100