Pogamut is a Java middleware that enables controlling virtual agents in multiple environments provided by game engines. Currently Unreal Tournament 2004 (UT2004), UnrealEngine2RuntimeDemo (UE2), Unreal Development Kit (UDK) and DEFCON game are supported. Pogamut provides a Java API for spawning and controlling virtual agents and GUI (NetBeans plugin) that simplifies debugging of the agents.
The main objective was to simplify the "physical" part of agent creation. Most actions in the environment (even the complicated ones, like pathfinding and gathering information in agent's memory) can be performed by one or two commands. This enables user to concentrate his efforts on the interesting parts.
Gemrot, J., Kadlec, R., Bida, M., Burkert, O., Pibil, R., Havlicek, J., Zemcak, L., Simlovic, J., Vansa, R., Stolba, M., Plch, T., Brom C.: Pogamut 3 Can Assist Developers in Building AI (Not Only) for Their Videogame Agents. In: Agents for Games and Simulations, LNCS 5920, Springer, 2009, pp. 1-15. (PDF)
If you are using only GameBots part of our project, you can cite this paper in your references:
Bida, M., Cerny, M., Gemrot, J., Brom, C.: Evolution of GameBots project. In: Herrlich, M., Malaka, R., Masuch, M. (eds.) ICEC 2012. LNCS, vol. 7522, pp. 397--400. Springer, Heidelberg, 2012. (PDF)
- Java library for coding bots in Unreal Tournament 2004, Unreal Engine 2 Runtime, Unreal Development Kit and DEFCON game
- Integration with reactive planner POSH
- Step by step tutorials and example bots
- City map for Unreal Engine 2 Runtime and Unreal Development Kit
- an integrated development environment (IDE) with debugging support (plugin for NetBeans) featuring:
- automatic match execution for UT2004 games (Deathmatch and Capture-the-flag)
- two custom game modes for UT2004: Tag!, Hide&Seek
- battle-proven Pogamut university AI course (PPTXs, PDFs, code templates for free!)
These pages serve as a community portal for Pogamut 3 platform. Information about recent releases and other relevant events can be found in News. Latest version of Pogamut 3 can be downloaded in Download section. More information about the platform as well as a number of tutorials can be found in Documentation section. Community section holds links to related projects and projects based on the Pogamut platform as well as a link to community forum (register here) and Pogamut development wiki page. Publications section contains all published papers about Pogamut platform. Links section provides a number of interesting links. And Screenshots page shows screenshots of Pogamut 3 platform and Unreal Tournament content. You may also report bugs through Pogamut Mantis.
Pogamut 3 developer wiki page contains many useful information for developers interested in Pogamut 3 platform or users that want to develop a project on top of Pogamut platform. Page holds list of all projects developed on Pogamut platform as well as proposals of new projects and development guidelines.
The intended use of Pogamut platform is twofold. Firstly, Pogamut can be used to teach the students about the problematics of virtual agent development. Secondly, researchers or enthusiasts can use Pogamut for research or evaluation purposes. Pogamut allows user to fast code his virtual character in a virtual world and solves a number of low level problems such as a) connecting to the environment, b) exporting information about the virtual world or c) providing a basic path finding. Perhaps the best idea about Pogamut use cases can be provided by a list of projects that exploited Pogamut in some way. The list can be found below with a brief overview of the projects.
- BotPrize competition - international competition BotPrize recommended Pogamut for development of virtual agents in this competition. Summary about our participation in 2008 here.
- Pogamut Games - Games that is internally using Pogamut API
- Genetic Bots - Genetic bots project aimed on evolution of behaviour of bot embodied in the game Unreal Tournament 2004 using genetic algorithms.
- StorySpeak - StorySpeak is a language for the specification of agents programs. This language is especially designed for the authoring of short virtual stories.
- Episodic memory for virtual agent - Episodic memory for virtual agent project designed and implemented a prototype of the episodic memory for virtual humans. The memory was inspired by up to date research on function of human memory for personal events (episodes) and human time perception.
- PojACT-R - PojACT-R is composition of Pogamut, Java and ACT-R. It means that it is plugin which connects Pogamut with cognitive architecture ACT-R, specifically with Java implementation of ACT-R called jACT-R.
To get a basic feel about how does the Pogamut platform look like refer to the images below.
Pogamut architecture. The information from the environment UT2004 are exported through TCP/IP by GameBots2004 text protocol. These text messages are processed by Java library - Gavialib, so the Pogamut agent can work with Java objects. Pogamut agent can be debugged remotely through JMX protocol through Pogamut NetBeans plugin.
Pogamut 3 NetBeans plugin. On the left side you can see a server with a list of connected bots. On the right side you can see a visualization of navigation grid of the actual map.
Below are some videos of simple working bots created with Pogamut 3 platform in UnrealEngine2RuntimeDemo:
- Simple navigation bot (DivX, 5 MB) - a simple navigation bot is following navigation point grid
- Simple follow bot (DivX, 5 MB) - a simple following bot is following us
- Simple ray tracing bot (DivX, 9 MB) - a simple ray tracing bot is running around the town
- Ray tracing bot running around the sphere (DivX, 2 MB) - a simple ray tracing bot is running around the sphere (collisions are visualized).
- Ray tracing bot running around the tree (DivX, 2 MB) - a simple ray tracing bot is running around the tree (collisions are visualized).
- Model of the bot (DivX, 5 MB) - how does the model of the bot look in UnrealEd.
- Boy doing animations (DivX, 6 MB) - boy doing some silly animation sequence.
- Emohawk doing animations (DivX, 7 MB) - emohawk doing some silly animation sequence.
The Pogamut (PogamutCore and Netbeans Plugin) is distributed under GNU GPL v3 license.
Note that the GameBots2004 goes under the different license as it is written in UnrealScript.
Note that providing a Pogamut under a different license can be discussed especially in cases where you need to couple Pogamut jar files with another open-source project that has incompatible license with GPLv3.
Also please note that if you want to contribute to the Pogamut code than we retain the rights to relicense the Pogamut if needed.
Vývoj několika rozšíření potřebných pro kurz Umělé bytosti vyučovaném na MFF-UK (middleware pro potřeby kurzu) byl podpořen ve školním roce 2011/12 a 2012/13 projektem číslo CZ.2.17/3.1.00/33274 financovaným Evropským sociálním fondem a rozpočtem hlavního města Prahy. Klíčová rozšíření jsou: nový navigační modul, výpočet matice viditelnosti a modul pro hru typu Capture-the-Flag. Všechna tato rozšíření jsou součástí Pogamutu v. 3.5.0.
Evropský sociální fond
Praha & EU: Investujeme do vaší budoucnosti
Extensions to Pogamut that allowed us development of educational high-schools projects, and innovations concerning education of undergraduate students were financially supported by the project CZ.2.17/3.1.00/ 31162 financed by the European Social Fund and the municipality of Prague (2009 - 2011).
European Social Fund
Prague and EU: we invest into your future!
Research on action selection and planning using Pogamut is supported by P103/10/1287 (GACR, 2010 - 2014) and by a student grants GA UK No. 655012/2012/A-INF/MFF, 559813/2013/A-INF/MFF
(2012 - 2013), 0449/2010/A-INF/MFF (2010 - 2012).
In past, this work was supported by GA UK 1053/2007/A-INF/MFF (2007-8), GA UK 351/2006/A-INF/MFF (2006-8), the Ministry of Education of the Czech Republic (grant MSM0021620838) (2008-11) and by the Program "Information Society" under project 1ET100300517 (2006-9).