======Welcome======
our student/s :-) and everybody else who is interested in these lectures.
======Contact======
Friday's lectures, Jakub Gemrot: [[mailto:jakub.gemrot@gmail.com|jakub.gemrot@gmail.com]]
Thuesday's lectures, Michal Bída: michal /tecka/ bida /zavinac/ gmail /tecka/ com
======Exam days======
* 20.4.2012 12:20-14:00 - test
* 24.4.2012 15:40-17:10 - test
* 4.5.2012 12:20-14:00 - test
* 18.5.2012 14:00-18:00 - final exam
* 22.5.2012 8:20-12:20 / 28.5.2012 9:00-13:00 - possible dates for a GOAL experiment
======Terms======
To get the credit you have to:
* collect 80 points from homeworks (if you have max 1 absence - see last lecture slides for details)
* pass the test (you will be admitted to the test only if you fulfill previous conditions), terms are in SIS
To get the exam you have to:
* pass the final exam (you need the credit first)
* Do whatever Cyril said you need to do (participation on experiments?, etc).
======Pogamut library versions======
**New installers released:**
* Pogamut UT2004 3.3.0 and Pogamut Emohawk Installer 3.3.0. Get them at [[http://pogamut.cuni.cz/main/tiki-index.php?page=Download|Pogamut download page]]
* date: 11.3.2012
* 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 [[http://www.netbeans.org/|NetBeans 7.1.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 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).
* 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.
**Alternatively**
* If you have UT2004 installed, you can follow guidelines of tutorial Pogamut 3 quickstart tutorial found at [[http://pogamut.cuni.cz/main/tiki-index.php?page=Documentation|Pogamut Documentation page]]. However, we recommend to use installers above.
======Lectures history======
**Note:** When sending a homework through email use this subject: **Pogamut homework 2012**.
**Lecture 1** [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Pogamut_3-2012-Lecture_01-Slides.pdf|(PDF)]]
* Pogamut installation notes
* Explore [[http://diana.ms.mff.cuni.cz/pogamut_files/latest/doc/tutorials/EmptyBotTutorial.html|EmptyBot]]
* Try to implement FollowBot
* Do your homework (Make Pogamut work at home - with UT2004 or UE2 environment + solve the assignment, see slides)
**Lecture 2** [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Pogamut_3-2012-Lecture_02-Slides.pdf|(PDF)]]
* Pogamut installation notes
* Explore [[http://pogamut.cuni.cz/pogamut_files/lectures/2011-2012/Lecture02-ResponsiveBotArchetype.zip|ResponsiveBot]] and [[http://pogamut.cuni.cz/pogamut_files/latest/doc/tutorials/ResponsiveBotTutorial.html|ResponsiveBot Tutorial]]
* Extend responsive bot to shoot at players who is shooting you, but try not to cause more damage than received.
* Do your homework (extend ResponsiveBot into RetaliatorBot, see slides)
**Lecture 3** [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Pogamut_3-2012-Lecture_03-Slides.pdf|(PDF)]]
* Navigation inside UT2004 / UE2
* Explore how UT2004PathPlanner and UT2004PathExecutor is used [[http://pogamut.cuni.cz/pogamut_files/lectures/2011-2012/NavigationBot-PathExecutor.zip|NavigationBot-PathExecutor]], you can consult [[http://pogamut.cuni.cz/pogamut_files/latest/doc/tutorials/02-navigationBot.html|NavigationBot Tutorial]]
* Then compare it with new all-in-one approach using UT2004Navigation [[http://pogamut.cuni.cz/pogamut_files/lectures/2011-2012/NavigationBot-Navigation.zip|NavigationBot-Navigation]]
* Do your homework (extend NavigationBot-PathExecutor to CollectorBot-PathExecutor, see slides)
**Lecture 4** [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Pogamut_3-2012-Lecture_04-Slides.pdf|(PDF)]]
* POSH reactive planner - gentle introduction
* Explore [[http://pogamut.cuni.cz/pogamut_files/lectures/2011-2012/Lecture04-ModularPOSHBot.zip|Modular POSH Bot]], you can consult [[http://pogamut.cuni.cz/pogamut_files/latest/doc/tutorials/00-POSH-PreyBot.html|POSH PreyBot Tutorial]]
* Do your homework (extend POSH Prey bot to POSH Hunter Bot, see slides)
**Lecture 5** [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Pogamut_3-2012-Lecture_05-Slides.pdf|(PDF)]]
* CTF game mode + ctf rules
* [[http://www.cs.bath.ac.uk/~jjb/web/bod.html|Behavior Oriented Design]] principles explained
* Do your homework (create CTF POSH bot, see slides)
* You can use [[http://pogamut.cuni.cz/pogamut_files/lectures/2011-2012/Lecture05-CTF-POSHBot.zip|CTF-Bot-POSH-Example]] we have done on the lecture
* Check WeaponPreferences initialization in PreyContext constructor
**Lecture 6** [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Pogamut_3-2012-Lecture_06-Slides.pdf|(PDF)]]
* SteeringGame, steering behaviors, UE2-Runtime and Emohawmk introduction
* Download SteeringGame installer from [[http://diana.ms.mff.cuni.cz/pogamut-games/doku.php?id=project:SteeringGame|Steering Game Homepage]]
* Additional files for the lesson (from Slide 4) can be downloaded from [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/SteeringGame-PracticeMissions.zip|here]]
* Unpack the [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/SteeringGame-PracticeMissions.zip|zip file]] into SteeringGame home directory (you can open these missions from within SteeringGame)
* For coding EmohawkBot in NetBeans, download [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Lecture06-EmohawkEmptyBot.zip|Emohawk Empty Bot Example]]
* Do your homework (play steering game to get-in-touch with steerings, fill up questionnaire, create steering bot), as usual see slides ;)
* Bonus homework is to solve first 4 CAMPAIGN (!) levels (not Training, Easy or others ;)). Deadline of bonus homework is 13.4.2012.
**Lecture 7** [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Pogamut_3-2012-Lecture_07-Slides.pdf|(PDF)]]
* Debugging in Unreal and NetBeans, Pogamut Plugin and Introspection, UnrealEngine2RuntimeDemo and Pogamut Bots
* Download [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Lecture07-EmohawkEmptyBot.zip|L7 Emohawk Empty Bot Example]] - runs two bots with different names at once!
* Do your homework (see slides), start coding from the example bot above!
* Note: There is a bug in steering.clearAllSteerings() method! PathFollowingSteering seems to be buggy as well (time to time null pointer exception there)
**Lecture 8** [[http://diana.ms.mff.cuni.cz/pogamut_files/lectures/2011-2012/Pogamut_3-2012-Lecture_08-Slides.pdf|(PDF)]]
* Recapitulation, POSH in UE2
* Download [[http://pogamut.cuni.cz/pogamut_files/lectures/2011-2012/Lecture08-EmohawkModularSPOSHMoodBot.zip
|L8 Emohawk SPOSH Mood Bot Example]]
======Attendance/Homeworks=====
* Will be updated
* Moved to secured Google Doc.
======FAQ======
**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?** \\
**A:** \\
* **a)** Print and fill up this form: http://www.ms.mff.cuni.cz/students/externisti.html.cs
* **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 :
* **Group Id:** cz.cuni.amis.pogamut.ut2004.examples
* **Artifact Id:** 00-empty-bot-archetype
* **Version:** 3.3.0
* **Repository:** http://diana.ms.mff.cuni.cz:8081/artifactory/repo
Full list of available archetypes can be found [[http://diana.ms.mff.cuni.cz:8081/artifactory/libs-snapshot-local/archetype-catalog.xml|here]]. (always use repository above)
Also be sure that NetBeans is using Maven 3.0.4! Obtain Maven from here: [[http://maven.apache.org|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:
[IpDrv.MasterServerUplink]
DoUplink=False
UplinkToGamespy=False
SendStats=False
----
**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.
======Acknowledgement======
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.
{{:lectures:loga.png|}}
**Evropský sociální fond** \\
**Praha & EU: Investujeme do vaší budoucnosti**