<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Greenail</id>
	<title>Spring - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://springrts-wiki.p2004a.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Greenail"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Greenail"/>
	<updated>2026-11-08T20:45:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17062</id>
		<title>SpringEngineTODO</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=SpringEngineTODO&amp;diff=17062"/>
		<updated>2006-02-09T14:21:35Z</updated>

		<summary type="html">&lt;p&gt;Greenail: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a TODO list for anyone interested in developing the spring code. If you are not involved in the development, please contact one of the developers first, or mail to the mailing list before you add things here.&lt;br /&gt;
&lt;br /&gt;
* Implement saving/loading. There are a lot of direct LoadSave() functions in the game code, but the easier way would probably to finish the serialization in the class registration type interfaces (rts/System/creg), so everything can be serialized automatically. &lt;br /&gt;
&lt;br /&gt;
* Implement re-sync. After a sync problem is detected, and a re-sync of the random seed does not fix it the game would pause and use the rsync to adjust game state (current plan if for float3 data) to resync, as suggested by Jesse Schoch in [http://lolut.utbm.info/pipermail/taspring-linux/2006-February/000810.html]. After using rsync on it should be able to continue normaly until the next sync error is detected.&lt;br /&gt;
&lt;br /&gt;
* Abstract and improve unit rendering:&lt;br /&gt;
** Improve the S3O rendering: It doesn&#039;t generate nice explosion particles like the 3DO system, and it has other issues with drawing as well (refer to the s3o related threads on the forum for this, or test it and see for yourself).&lt;br /&gt;
** 3DO/S3O support is not abstracted, many parts of unit rendering are spread throughout spring and assume 3DO, and the rendering is a messy mixture of 3DO and S3O stuff. Abstracting the model rendering with a sort of IModel and IModelInstance interfaces would allow adding other model formats as well (Such as a skeletal animation format).&lt;br /&gt;
&lt;br /&gt;
* Improve weapon collision detection with more complex shapes for the bigger units. Giving every model a set of convex collision meshes, saved in the S3O file, could be a solution. This will need a change in the s3o format and upspring editor, so you will need some cooperate with me on that part(jcnossen).&lt;br /&gt;
&lt;br /&gt;
* Bind a scripting language to Spring. Fnordia already started on this with lua and luabind, but since luabind does not compile on GCC (so I&#039;ve heard), it&#039;s not an option. &lt;br /&gt;
**Binding LUA could be done in other ways too ofcourse. &lt;br /&gt;
**A lightweight and fast language that can call C/C++ directly is AngelScript ([[www.angelcode.com/angelscript]]), class support with inheritance is however not yet supported (WIP), but is already a good choice because it doesn&#039;t require wrapper functions.&lt;br /&gt;
&lt;br /&gt;
* Make more elements of spring data-driven. Explosion bitmaps, trees, etc... A lot of graphics are hardcoded and should be changeable with scripts or config files (FBI/TDF).&lt;br /&gt;
&lt;br /&gt;
* Add a dynamic-lighting system: Allow units to have dynamic lights on them that affect lighting of other units and landscape, with sort of &amp;quot;approximating lights&amp;quot; for cases where a lot of units get close together. This is a big thing, but it would improve spring graphics a lot if done well.&lt;br /&gt;
&lt;br /&gt;
* Get a mac version working. Contact the developers on the mailing list for this, as there are people looking into this already.&lt;/div&gt;</summary>
		<author><name>Greenail</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=AI:Links&amp;diff=840</id>
		<title>AI:Links</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=AI:Links&amp;diff=840"/>
		<updated>2006-01-22T23:39:48Z</updated>

		<summary type="html">&lt;p&gt;Greenail: /* Current AI&amp;#039;s */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;AI&#039;&#039;&#039;, or &#039;&#039;&#039;Artificial Intelligence&#039;&#039;&#039;, is what the Computer Opponents in games are called. Developing a good AI is a major undertaking, and requires quite a bit of know how. As the SY&#039;s have more important things to do than develop an AI, they have left this job up to the community. The community has risen to the challenge remarkably well, releasing quite a few AI&#039;s, most of which are in working condition.&lt;br /&gt;
&lt;br /&gt;
There are currently a few AI&#039;s in development. The more notable of these include JCAI, which is shipped with Spring, and NTAI, which is not stable enough for release yet.&lt;br /&gt;
&lt;br /&gt;
== Current AI&#039;s ==&lt;br /&gt;
=== [[AI:AAI|AAI]] ===&lt;br /&gt;
[[AI:AAI|AAI]] is an AI currently being developed by [[User:Submarine|Submarine]]. The newest version is 0.4. AAI is stable and works with all popular mods but it doesn&#039;t support naval units yet.&lt;br /&gt;
&lt;br /&gt;
=== [[AI:JCAI|JCAI]] ===&lt;br /&gt;
[[AI:JCAI|JCAI]] is an AI that was being developed by [[User:Zaphod|Zaphod]]. As Zaphod has now taken over the job as head programmer, development on JCAI has come to a halt. Despite this, it is still good, and is currently being shipped with Spring, and is a good starting point for new players to train against. It is very stable.&lt;br /&gt;
&lt;br /&gt;
=== [[AI:NTAI|NTAI]] ===&lt;br /&gt;
[[AI:NTAI|NTAI]] is an AI currently being developed by [http://taspring.clan-sy.com/phpbb/profile.php?mode=viewprofile&amp;amp;u=73 Alantai Firestar]. It performs better than [[User:Zaphod|Zaphod&#039;s]] [[AI:JCAI|JCAI]], but is not quite as stable. Also being shipped with current Spring releases, it is a good alternative for people to practice against.&lt;br /&gt;
&lt;br /&gt;
=== OTAI ===&lt;br /&gt;
OTAI is an AI being developed by [[User:Veylon|Veylon]]. It builds randomly using OTA-style profiles. More erratic than either JCAI or NTAI.&lt;br /&gt;
&lt;br /&gt;
=== ZcAIn ===&lt;br /&gt;
[[AI:ZcAIn|ZcAIn]] is an AI currently being developed by [[User:Cain|Cain]]. It is probably the least developed of the lot, but is coming along nicley. It is a new addition to the AI scene.&lt;br /&gt;
&lt;br /&gt;
=== [[Random enemies]] ===&lt;br /&gt;
There is a also the [[Random enemies]] script, which can be used for some basic testing. It is not an AI as such, but a spawn script that can be either used to test an AI, or to train against.&lt;br /&gt;
&lt;br /&gt;
=== Group AIs ===&lt;br /&gt;
&lt;br /&gt;
These AIs are designed for use by a human player, to be assigned to a group of units and give that group orders to reduce micromanaging.&lt;br /&gt;
&lt;br /&gt;
==== Metal Maker AI ====&lt;br /&gt;
&lt;br /&gt;
The [[Metal Maker AI]] turns member metal makers off when energy reserves get low and turns them back on again when energy reserves are nearly full.&lt;br /&gt;
&lt;br /&gt;
==== Simple Formation AI ====&lt;br /&gt;
&lt;br /&gt;
[[Simple Formation]].&lt;br /&gt;
&lt;br /&gt;
==== Central Build AI ====&lt;br /&gt;
&lt;br /&gt;
The [[Central Build AI]] organizes the build tasks given to construction units so that units build whatever tasks are nearest to them, or guards other construction units to help them if there aren&#039;t any tasks it can build on its own.&lt;br /&gt;
&lt;br /&gt;
==== greenai ====&lt;br /&gt;
&lt;br /&gt;
The [[greenai]] is currently for Nanoblobs.  It produces units exponentially using the groupAI interface.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
=== Global AI Interface ===&lt;br /&gt;
Jouninkomiko has a topic on the [http://taspring.clan-sy.com/phpbb/viewtopic.php?t=923 Global AI Interface] running here.&lt;br /&gt;
&lt;br /&gt;
=== Metal Handler Class ===&lt;br /&gt;
Cain has developed and released a Metal Handler Class that succesfully finds metal spots on maps, which can be a major stumbling block for many AI developers. Information about it can be found in [http://taspring.clan-sy.com/phpbb/viewtopic.php?t=2408 this thread]&lt;br /&gt;
&lt;br /&gt;
=== Theory ===&lt;br /&gt;
Useful existing documentation on the Spring unit AI can be found in&lt;br /&gt;
[http://taspring.clan-sy.com/SAI/ K-man&#039;s Spring AI documentation], however this is not related to the Global AI.&lt;br /&gt;
&lt;br /&gt;
Alantai Firestar has a lot of theory on the topic on [http://www.darkstars.co.uk his site], including details on his NTAI project.&lt;br /&gt;
&lt;br /&gt;
Triaxx had a topic about the &#039;[http://taspring.clan-sy.com/phpbb/viewtopic.php?t=539 5 Matrix AI 1,2,3]&#039;, and also some information at Alantai Firestar&#039;s site.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Wikipedia:Artificial intelligence]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:AI]]&lt;/div&gt;</summary>
		<author><name>Greenail</name></author>
	</entry>
</feed>