<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mygamingtalk.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Debug_Window</id>
	<title>Debug Window - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mygamingtalk.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Debug_Window"/>
	<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Debug_Window&amp;action=history"/>
	<updated>2026-04-21T15:05:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Debug_Window&amp;diff=1718&amp;oldid=prev</id>
		<title>Palota: /* State Tree */</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Debug_Window&amp;diff=1718&amp;oldid=prev"/>
		<updated>2024-05-14T17:45:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;State Tree&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:45, 14 May 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l74&quot;&gt;Line 74:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 74:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this case, the weapon system tracks a list of the bots current weapons, and information about it. The SensoryMemory is the bots eyes and ears, and will show the current perception information about all known game entities. The Aimer state is responsible for prioritizing a list of aim requests from other states and preventing multiple states from fighting over control of the bots aim.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this case, the weapon system tracks a list of the bots current weapons, and information about it. The SensoryMemory is the bots eyes and ears, and will show the current perception information about all known game entities. The Aimer state is responsible for prioritizing a list of aim requests from other states and preventing multiple states from fighting over control of the bots aim.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The content of these windows will likely change alot. Obviously there&#039;s nothing useful being shown in the SensoryMemory window at the moment, and the WeaponSystem window could use some more information shown. These windows are early versions, so they will evolve over time.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Palota</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Debug_Window&amp;diff=1717&amp;oldid=prev</id>
		<title>Palota: /* Installation */</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Debug_Window&amp;diff=1717&amp;oldid=prev"/>
		<updated>2024-05-14T06:15:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Installation&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:15, 14 May 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l18&quot;&gt;Line 18:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note: Linux is not supported.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note: Linux is not supported.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note for developers: If you compile Omni-Bot from C++ source code, you must uncomment line #define ENABLE_DEBUG_WINDOW in file common.h.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Note for developers: If you compile Omni-Bot from C++ source code, you must uncomment line #define ENABLE_DEBUG_WINDOW in file common.h&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. You must also enable build of 3rdParty dependencies detours, guichan, iprofs&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Windows ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Windows ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Palota</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Debug_Window&amp;diff=1391&amp;oldid=prev</id>
		<title>Palota: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Debug_Window&amp;diff=1391&amp;oldid=prev"/>
		<updated>2023-02-13T07:02:31Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:02, 13 February 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Palota</name></author>
	</entry>
	<entry>
		<id>https://mygamingtalk.com/wiki/index.php?title=Debug_Window&amp;diff=1390&amp;oldid=prev</id>
		<title>Palota: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://mygamingtalk.com/wiki/index.php?title=Debug_Window&amp;diff=1390&amp;oldid=prev"/>
		<updated>2021-07-13T19:05:44Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Omni-bot Debug Window ==&lt;br /&gt;
&lt;br /&gt;
The Debug Window is primarily a debugging and informational aid for Omni-bot. When enabled, it spawns an OpenGL powered window along side the game, and is primarily used when you are running the game in windowed mode. It provides an interface to look at the bots state tree, a script console, a map, log, profiler, and eventually it will be exposed to scripts so that scripted tools or utility information can be displayed to it as well.&lt;br /&gt;
&lt;br /&gt;
The previous debug window was powered by [http://www.fltk.org/ FLTK], and while it is a good toolkit for GUI applications, it isn&amp;#039;t meant to be refreshed and redrawn  as much as I needed it to be, and as a result incurred a high cost of updating each frame. Now, by being OpenGL powered, it can take advantage of the inherent speed of hardware acceleration and eventually some 3d elements if needed, all while staying cheap to process and render.&lt;br /&gt;
&lt;br /&gt;
The debug window is now powered by [http://www.opengl.org/ OpenGL], [http://guichan.sourceforge.net/wiki/index.php/Main_Page guichan], and [http://sfml.sourceforge.net/ SFML]&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
First of all rename or backup file omnibot_et.dll in the omni-bot folder. &lt;br /&gt;
&lt;br /&gt;
Download files &amp;#039;&amp;#039;&amp;#039;dw_enabled/omnibot_et.dll&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;gui/default_font.bmp&amp;#039;&amp;#039;&amp;#039; from [[Assembla|Assembla SVN repository]]. Then copy omnibot_et.dll from dw_enabled folder and overwrite file in parent folder.&lt;br /&gt;
&lt;br /&gt;
Start game in window mode (fullscreen will not work), load any map and then use console command &amp;#039;&amp;#039;&amp;#039;/bot dwon&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Note: If you use ET:Legacy and have problem with mouse clicks, try to change cvar in_mouse.&lt;br /&gt;
&lt;br /&gt;
Note: Linux is not supported.&lt;br /&gt;
&lt;br /&gt;
Note for developers: If you compile Omni-Bot from C++ source code, you must uncomment line #define ENABLE_DEBUG_WINDOW in file common.h.&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
&lt;br /&gt;
=== Console ===&lt;br /&gt;
&lt;br /&gt;
For the scripting users among us, the console window provides an interface directly into the scripting system, and allows you to execute script commands from a simple input window and see outputs such as print or error messages in the large box above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Console1_dw.jpg|Console]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Map ===&lt;br /&gt;
&lt;br /&gt;
The map shows a number of useful things about the bots navigation, goals, pathing, etc.&lt;br /&gt;
&lt;br /&gt;
* Waypoints(and their radius) and links &lt;br /&gt;
* Goal bounding boxes&lt;br /&gt;
* Current bot paths&lt;br /&gt;
* All entities&lt;br /&gt;
* Mouse wheel to zoom in/out&lt;br /&gt;
* Click drag to scroll&lt;br /&gt;
* Also planning to be able to mouse over entities to get additional information&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Map1_dw.jpg|Map]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Profiler ===&lt;br /&gt;
&lt;br /&gt;
The profiler is also of course making a return. For anyone that has used it before, it allows you to peek around in the bot to examine the performance characteristics&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Profiler1_dw.jpg|Profiler]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows the profiler information at the state machine updating level.&lt;br /&gt;
&lt;br /&gt;
=== State Tree ===&lt;br /&gt;
&lt;br /&gt;
One of the most useful tools available is the state tree. The state tree gives you a complete view of what is going on in the bots &amp;#039;head&amp;#039;. You can see from the state tree all the behaviors that are running on the bot at any given time, and also can access additional information for specific states here as well. Scripted goals will also show up in this state tree as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Statetree1_dw.jpg|Default State Tree]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nothing special about this. This is what you&amp;#039;ll see before you actually click on a bot name in the client list to the upper right.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Statetree2_dw.jpg|ET State Tree]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This shows the state tree for an ET bot. Some things to note about the state tree.&lt;br /&gt;
&lt;br /&gt;
* Indentation shows hierarchy.&lt;br /&gt;
* Green lines are states that are currently running.&lt;br /&gt;
* Red lines are states that can&amp;#039;t run because they don&amp;#039;t meet a state requirement.&lt;br /&gt;
* Left click to show the states extra info, as shown below.&lt;br /&gt;
* Middle mouse click on state lines to enable their debug rendering if available.&lt;br /&gt;
* Right click on states to expand/collapse their children states.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Statetree3_dw.jpg|ET State Tree]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Many states will have additional information they can display specific to the state. This screen shows the windows for 3 states open, to give you an idea of what information the states are responsible for looking at.&lt;br /&gt;
&lt;br /&gt;
In this case, the weapon system tracks a list of the bots current weapons, and information about it. The SensoryMemory is the bots eyes and ears, and will show the current perception information about all known game entities. The Aimer state is responsible for prioritizing a list of aim requests from other states and preventing multiple states from fighting over control of the bots aim.&lt;br /&gt;
&lt;br /&gt;
The content of these windows will likely change alot. Obviously there&amp;#039;s nothing useful being shown in the SensoryMemory window at the moment, and the WeaponSystem window could use some more information shown. These windows are early versions, so they will evolve over time.&lt;/div&gt;</summary>
		<author><name>Palota</name></author>
	</entry>
</feed>