<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=AI%3ACSAI</id>
	<title>AI:CSAI - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=AI%3ACSAI"/>
	<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=AI:CSAI&amp;action=history"/>
	<updated>2026-04-21T07:39:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=AI:CSAI&amp;diff=1512&amp;oldid=prev</id>
		<title>Qrow: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=AI:CSAI&amp;diff=1512&amp;oldid=prev"/>
		<updated>2026-02-24T06:03:06Z</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 23:03, 23 February 2026&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>Qrow</name></author>
	</entry>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=AI:CSAI&amp;diff=1511&amp;oldid=prev</id>
		<title>intercegai&gt;Hughperkins: redirect manageddreams.com to hughperkins.com, and add github repo link</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=AI:CSAI&amp;diff=1511&amp;oldid=prev"/>
		<updated>2015-08-09T10:31:30Z</updated>

		<summary type="html">&lt;p&gt;redirect manageddreams.com to hughperkins.com, and add github repo link&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== CSAI ==&lt;br /&gt;
&lt;br /&gt;
CSAI works ok as ARM on land maps, using the AA2.23 or XTA7 mod.&lt;br /&gt;
&lt;br /&gt;
CSAI is written in C#, by Hugh Perkins&lt;br /&gt;
&lt;br /&gt;
== Supported Mods ==&lt;br /&gt;
&lt;br /&gt;
*AA2.23&lt;br /&gt;
*XTA7&lt;br /&gt;
&lt;br /&gt;
== Supported Platforms ==&lt;br /&gt;
&lt;br /&gt;
*Windows&lt;br /&gt;
&lt;br /&gt;
== Supported Maps ==&lt;br /&gt;
&lt;br /&gt;
CSAI works best with maps with one large contiguous land segment.&lt;br /&gt;
&lt;br /&gt;
The following maps have been tested and work ok:&lt;br /&gt;
*SmallDivide&lt;br /&gt;
*CometCatcher Remake v02&lt;br /&gt;
*SpeedMetal&lt;br /&gt;
*Small Supreme Battlefield&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
CSAI scout sets off, SSB, XTA7:&lt;br /&gt;
&lt;br /&gt;
[[File:csaivsaai_xta7_ssb_4zippysetsoffsmall.JPG]]&lt;br /&gt;
&lt;br /&gt;
CSAI tanks leave trail of destruction through AAI base, SSB, XTA7:&lt;br /&gt;
&lt;br /&gt;
[[File:csaivsaai_xta7_ssb_23trailofdestructionthroughaaibasesmall.JPG]]&lt;br /&gt;
&lt;br /&gt;
CSAI tanks kill AAI commander on SSB, XTA7:&lt;br /&gt;
&lt;br /&gt;
[[File:csaivsaai_xta7_ssb_25byebyeaaicommandersmall.JPG]]&lt;br /&gt;
&lt;br /&gt;
CSAI (in red) approaches TSI base, SpeedMetal, AA2.23.  That plasma beam could cause some pain.&lt;br /&gt;
&lt;br /&gt;
[[File:csaivstsispeedmetal_arriveatbase.JPG]]&lt;br /&gt;
&lt;br /&gt;
Plasma beam down, CSAI overruns TSI base, SpeedMetal, AA2.23.&lt;br /&gt;
&lt;br /&gt;
[[File:csaivstsispeedmetal_2plasmagoneoverrun.JPG]]&lt;br /&gt;
&lt;br /&gt;
CSAI (in red) attacks AAI, SpeedMetal, AA2.23&lt;br /&gt;
&lt;br /&gt;
[[File:speedmetalzergsmall.JPG]]&lt;br /&gt;
&lt;br /&gt;
CSAI units approach TSI base, SmallDivide, AA2.23&lt;br /&gt;
&lt;br /&gt;
[[File:vstsismalldivide_1_attackgroupapproachingbase.JPG]]&lt;br /&gt;
&lt;br /&gt;
CSAI units kill TSI commander, SmallDivide, AA2.23&lt;br /&gt;
&lt;br /&gt;
[[File:vstsismalldivide_6tsicommanderdies.JPG]]&lt;br /&gt;
&lt;br /&gt;
== Replays ==&lt;br /&gt;
&lt;br /&gt;
Here are some replays to give you an impression of how CSAI fights.&lt;br /&gt;
&lt;br /&gt;
CSAI vs AAI 0.75, XTA7:&lt;br /&gt;
&lt;br /&gt;
Small Supreme Battlefield&lt;br /&gt;
&lt;br /&gt;
*[http://hughperkins.com/csai/061026-SmallSupremeBattlefield-0.73b1-0-csai-vs-aai-xta7.sdf http://hughperkins.com/csai/061026-SmallSupremeBattlefield-0.73b1-0-csai-vs-aai-xta7.sdf] &lt;br /&gt;
&lt;br /&gt;
CSAI vs AAI 0.75, AA2.23:&lt;br /&gt;
&lt;br /&gt;
*[http://hughperkins.com/csai/061023-SmallDivide-0.73b1-20.sdf http://hughperkins.com/csai/061023-SmallDivide-0.73b1-20.sdf]&lt;br /&gt;
*[http://hughperkins.com/csai/061023-CometCatcherRemake-v02-0.73b1-0.sdf http://hughperkins.com/csai/061023-CometCatcherRemake-v02-0.73b1-0.sdf]&lt;br /&gt;
*[http://hughperkins.com/csai/061025-SpeedMetal-0.73b1-2.sdf http://hughperkins.com/csai/061025-SpeedMetal-0.73b1-2.sdf]&lt;br /&gt;
&lt;br /&gt;
CSAI vs TSI 0.12, AA2.23:&lt;br /&gt;
&lt;br /&gt;
*[http://hughperkins.com/csai/061025-CometCatcherRemake-v02-0.73b1-3.sdf http://hughperkins.com/csai/061025-CometCatcherRemake-v02-0.73b1-3.sdf]&lt;br /&gt;
*[http://hughperkins.com/csai/061025-SpeedMetal-0.73b1-0-csai-vs-tsi-aa223.sdf http://hughperkins.com/csai/061025-SpeedMetal-0.73b1-0-csai-vs-tsi-aa223.sdf]&lt;br /&gt;
*[http://hughperkins.com/csai/061025-SmallDivide-0.73b1-0-csai-vs-tsi-aa223.sdf http://hughperkins.com/csai/061025-SmallDivide-0.73b1-0-csai-vs-tsi-aa223.sdf]&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
Latest release:&lt;br /&gt;
*[http://hughperkins.com/csai/CSharpAI-20061028.zip http://hughperkins.com/csai/CSharpAI-20061028.zip]&lt;br /&gt;
&lt;br /&gt;
Previous releases:&lt;br /&gt;
*[http://hughperkins.com/csai/CSharpAI_20061026b.zip http://hughperkins.com/csai/CSharpAI_20061026b.zip]&lt;br /&gt;
*[http://hughperkins.com/csai/CSharpAI_20061026.zip http://hughperkins.com/csai/CSharpAI_20061026.zip]&lt;br /&gt;
*[http://hughperkins.com/csai/CSharpAI_20061025.zip http://hughperkins.com/csai/CSharpAI_20061025.zip]&lt;br /&gt;
*[http://hughperkins.com/csai/CSharpAI_20061024.zip http://hughperkins.com/csai/CSharpAI_20061024.zip]&lt;br /&gt;
&lt;br /&gt;
== To Install ==&lt;br /&gt;
&lt;br /&gt;
*Ensure that you have the Microsoft Framework .Net 1.1 runtime installed.  You can download this from Microsoft, for free.&lt;br /&gt;
*Ensure that you have the latest version of Spring installed, 0.73b.&lt;br /&gt;
*Download the latest CSharpAI zipfile from the Downloads section and unzip it.&lt;br /&gt;
*Run setup.exe&lt;br /&gt;
*Confirm the Spring installation directory&lt;br /&gt;
*The CSAI dlls should be automatically installed into the Spring directory&lt;br /&gt;
&lt;br /&gt;
== To use ==&lt;br /&gt;
&lt;br /&gt;
To run the bot:&lt;br /&gt;
*create a multiplayer game, using Absolute Annihilation 2.23&lt;br /&gt;
*specify start positions as &amp;quot;random&amp;quot; or &amp;quot;fixed&amp;quot;&lt;br /&gt;
*click &amp;quot;add bot&amp;quot;&lt;br /&gt;
*specify the ai as &amp;quot;csailoader.dll&amp;quot;&lt;br /&gt;
*&amp;lt;b&amp;gt;Important: ensure bot plays as ARM&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find a logfile in the Spring/AI/CSAI directory, called csharpai_team0.log  , where 0 is the name of the team&lt;br /&gt;
&lt;br /&gt;
== Commands available ==&lt;br /&gt;
&lt;br /&gt;
You can talk to your AI whilst it plays.&lt;br /&gt;
&lt;br /&gt;
Commands to the ai always start with &amp;quot;.csai &amp;quot;, then the command.&lt;br /&gt;
&lt;br /&gt;
Type &amp;quot;.csai help&amp;quot; for a list of available commands.  Here are some of them:&lt;br /&gt;
&lt;br /&gt;
*.csai commanderbuildpower  Commander builds a solar cell near him&lt;br /&gt;
*.csai commanderbuildextractor Commander builds a metal extractor on nearest available metal spot&lt;br /&gt;
*.csai commandermove 0 1000 1500   Move team 0 commander to position (1000,1500)&lt;br /&gt;
*.csai commandergetpos   Ask for commander&amp;#039;s current position&lt;br /&gt;
*.csai commanderbuild armvp   Ask commander to build a vehicle plant next to him.  Use any valid unit name here (see logfile for list) (must be buildable by arm commander)&lt;br /&gt;
&lt;br /&gt;
*.csai killallfriendly    Kills all units belonging to AI, except for commander  This is sometimes useful during AI testing&lt;br /&gt;
*.csai unitcount (countunits?)   Shows number of units currently&lt;br /&gt;
&lt;br /&gt;
*.csai showmetalspots   Show detected optimal metal extractor positions.  Also shows metalspots that have been marked used&lt;br /&gt;
&lt;br /&gt;
*.csai tankscount   Find out how many tanks are available&lt;br /&gt;
*.csai tanksmoveto 0 500 1000    Move all team 0 tanks to position 500, 1000&lt;br /&gt;
&lt;br /&gt;
*.csai autoshowenemieson  Shows detected mobile enemies (samson icon) and static enemies (antinuke icon)&lt;br /&gt;
&lt;br /&gt;
== How to beat CSAI ==&lt;br /&gt;
&lt;br /&gt;
Here are some strategies that will kill the current release of CSAI.&lt;br /&gt;
&lt;br /&gt;
Massive concentration of defense near AI&amp;#039;s base:&lt;br /&gt;
&lt;br /&gt;
http://hughperkins.com/csai/screenshots/silpkillcsai-3.JPG&lt;br /&gt;
&lt;br /&gt;
Replay:&lt;br /&gt;
[http://hughperkins.com/csai/silp3-061031-Core_Faf-0.73b1-2.sdf http://hughperkins.com/csai/silp3-061031-Core_Faf-0.73b1-2.sdf]&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
*All current released versions: on computers where the regional settings specifies the decimal separator as something other than &amp;quot;.&amp;quot;, the metal cache will fail to load correctly.  This means the commander will put extractors along the top of the screen and lose.  This affects computers in France and Germany.&lt;br /&gt;
&lt;br /&gt;
== Release notes ==&lt;br /&gt;
&lt;br /&gt;
=== Release 28 October ===&lt;br /&gt;
&lt;br /&gt;
C  /C# Interface&lt;br /&gt;
&lt;br /&gt;
*corrected critical bug in AICallbackProxy::GetMetalMap()&lt;br /&gt;
*augmented number of allowed units to 10000 in AICallbackProxy&lt;br /&gt;
&lt;br /&gt;
CSAI&lt;br /&gt;
&lt;br /&gt;
*(experimental) created setup.exe to facilitate installation&lt;br /&gt;
&lt;br /&gt;
=== Release 26 October 2006 b ===&lt;br /&gt;
&lt;br /&gt;
C  /C# Interface&lt;br /&gt;
*No changes&lt;br /&gt;
&lt;br /&gt;
CSAI&lt;br /&gt;
*created PackCoordinator architecture&lt;br /&gt;
*fixed bug that caused infantry factories to shutdown occasionally when playing XTA&lt;br /&gt;
*spreadsearch initiated more aggressively&lt;br /&gt;
&lt;br /&gt;
=== Release 26 October 2006 ===&lt;br /&gt;
&lt;br /&gt;
C  /C# Interface&lt;br /&gt;
*No changes&lt;br /&gt;
&lt;br /&gt;
CSAI&lt;br /&gt;
*supports XTA 7&lt;br /&gt;
*modified Metal algo to prefer spots which are over actual metal, rather than offset to one side&lt;br /&gt;
*(experimental) clearance around metal extractors reduced to improve location precision.  NOTE: this may increase unit blocking, to be verified&lt;br /&gt;
*you can turn debug on by creating an empty file called &amp;quot;debug.flg&amp;quot; in the ai/csai directory&lt;br /&gt;
*(experimental) added search algo for tanks if they havent seen an enemy for about a minute and there&amp;#039;s at least 100 of them&lt;br /&gt;
*improved radar deployment&lt;br /&gt;
&lt;br /&gt;
=== Release 25 October 2006 ===&lt;br /&gt;
&lt;br /&gt;
C  /C# Interface&lt;br /&gt;
*No changes&lt;br /&gt;
&lt;br /&gt;
CSAI&lt;br /&gt;
*added support for metal maps&lt;br /&gt;
*fixed bug with metalspots being marked used even if not&lt;br /&gt;
*added constructor controller, to ensure always at least one constructor&lt;br /&gt;
*added anti-sticking patch for constructors&lt;br /&gt;
*added memory for buildings to enemycontroller (since buildings cant move)&lt;br /&gt;
*corrected bugs in enemy selection algorithm&lt;br /&gt;
*trimmed cpu resource drain for stuck constructors&lt;br /&gt;
*removed default drawing of detected enemies; you can say &amp;quot;.csai autoshowenemieson&amp;quot; to reactivate this&lt;br /&gt;
*removed default drawing of planned construction site; you can say &amp;quot;.csai constructorshownextbuildsiteon&amp;quot; to reactivate this&lt;br /&gt;
*experimenting with kbot factory&lt;br /&gt;
*experimenting with replacing samsons by jethros&lt;br /&gt;
*factories no longer announce their creation&lt;br /&gt;
*added AttackPackCoordinator to improve pack grouping&lt;br /&gt;
&lt;br /&gt;
=== Release 24 October 2006 ===&lt;br /&gt;
&lt;br /&gt;
C  /C# Interface&lt;br /&gt;
*CSAI.dll moved to AI/CSAI (only CSAIInterfaces.dll remains in Spring root)&lt;br /&gt;
*&amp;lt;csailoaderfilename&amp;gt;.xml config file added, to configure which C# AI dll to load&lt;br /&gt;
*batchfile building no longer supported (please use nant)&lt;br /&gt;
*added IMoveData&lt;br /&gt;
*added IUnitDef.movedata&lt;br /&gt;
*added all command constants, eg MOVE, SELFD, to Command.cs&lt;br /&gt;
*added operators to Float3&lt;br /&gt;
*added UnitIsBusy to AICallback (checks GetCurrentUnitCommands returns empty deque)&lt;br /&gt;
*documentation moved to wiki at http://springrts.com/wiki/AI:CSAIInterface&lt;br /&gt;
&lt;br /&gt;
CSAI&lt;br /&gt;
*added commands to move commander, and get commander to build things&lt;br /&gt;
*logfiles moved to AI/CSAI , in line with AI standards&lt;br /&gt;
*batchfile building no longer supported (please use nant)&lt;br /&gt;
*UnitController added, to register player-owned units&lt;br /&gt;
*FactoryController added, to register player-owned factories&lt;br /&gt;
*added port of AF&amp;#039;s UnitDefHelp&lt;br /&gt;
*added architecture for strategies&lt;br /&gt;
*event architecture added to CSAI for unitcreated, unitfinished, unitdamaged, etc&lt;br /&gt;
*added PowerController to control energy&lt;br /&gt;
*added MetalController to control metal&lt;br /&gt;
*added TankController to manage tanks (bootstrapping class only)&lt;br /&gt;
*added EnemyController to monitor enemies&lt;br /&gt;
*added RadarController to manage radars&lt;br /&gt;
*added simple heuristic to prevent commander blocking himself in or factories&lt;br /&gt;
*added ScoutController&lt;br /&gt;
*added Request system to factories, to decide what to build&lt;br /&gt;
*documentation moved to wiki at http://springrts.com/wiki/AI:CSAI&lt;br /&gt;
&lt;br /&gt;
== Developer resources ==&lt;br /&gt;
&lt;br /&gt;
You may wish to extend or modify CSAI.  If so, the following pages may be useful:&lt;br /&gt;
&lt;br /&gt;
* github repo: https://github.com/hughperkins/SpringRTS-CSharpAI&lt;br /&gt;
*[[CSAI Build Instructions]]  How to build CSAI&lt;br /&gt;
*[[AI:CSAIInterface]]   Information on the C  /C# interface&lt;br /&gt;
[[Category:AI]]&lt;/div&gt;</summary>
		<author><name>intercegai&gt;Hughperkins</name></author>
	</entry>
</feed>