<?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=Mrz</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=Mrz"/>
	<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/wiki/Special:Contributions/Mrz"/>
	<updated>2026-11-08T20:55:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7988</id>
		<title>Game and Unit development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7988"/>
		<updated>2010-09-11T15:48:33Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* .s3o */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
=Game development=&lt;br /&gt;
This information is meant to help newcomers learn how to develop their own games for the Spring Engine.&lt;br /&gt;
==General==&lt;br /&gt;
*[[Mod specification|Game specification]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=6015 What do I need to create a game?]&lt;br /&gt;
*[[Simple Mod Tutorial|Simple Game Tutorial]]&lt;br /&gt;
*[[Freely available and reusable content|Freely available and reusable content for maps and games]]&lt;br /&gt;
&lt;br /&gt;
==Unit Development==&lt;br /&gt;
===Units - Modeling===&lt;br /&gt;
Spring supports different 3d representations: &#039;.s3o&#039; and &#039;.3do&#039;. The biggest difference between both formats is the workflow to create a new unit. There are exporter plugins for &#039;blender&#039; and &#039;3ds-max&#039; so that texturing and modeling can be done using these.&lt;br /&gt;
In contrast: when you model an &#039;.3do&#039; you have to use &#039;UpSpring&#039; currently.&lt;br /&gt;
&lt;br /&gt;
The animation with can either be done using &#039;lua&#039; or &#039;COB/BOS&#039; is does not depend on either, see rigging/animation. For new units use &#039;lua&#039; scripting.&lt;br /&gt;
&lt;br /&gt;
====.s3o====&lt;br /&gt;
Extends 3do with various new features (Use this for new units).&lt;br /&gt;
&lt;br /&gt;
====.3do====&lt;br /&gt;
3do (implemented for compatibility to ta based game, old)&lt;br /&gt;
&lt;br /&gt;
====s3o modeling====&lt;br /&gt;
* [[Basic s3o unit making guide]] (using UpSpring)&lt;br /&gt;
* [[s3o using blender]] (not using UpSpring)&lt;br /&gt;
* [[Trouble-shooting s3o units]]&lt;br /&gt;
&lt;br /&gt;
====Models - Modeling, UV Mapping====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10612 Wings UV Mapping Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12354 Saving polygons in Wings3d Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10503 Runecrafter&#039;s 3DS Max UV Mapping Tutorial]&lt;br /&gt;
&lt;br /&gt;
====Models - Textures====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=57&amp;amp;t=22392 DDS Textures:  How To]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10947 Greeble Tutorial 1]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12356 Greeble Tutorial 2]&lt;br /&gt;
&lt;br /&gt;
====Models - 3do Files====&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; 3do is an outdated model format used by OTA models (Balanced Annihilation, NOTA, etc.).&amp;lt;br&amp;gt;&lt;br /&gt;
(Note: UpSpring has some problems with empty objects and groundplates)&lt;br /&gt;
*use [http://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=7208&amp;amp;p=126129&amp;amp;hilit=upspring#p126129 UpSpring] and [http://springfiles.com/1755 3doBuilder] to edit those files&lt;br /&gt;
*[http://user.supradigital.org/jcnossen/UpspringInstaller-1.54-EulerAngles.exe Click here to download UpSpring, our content support tool.]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=15106 Argh&#039;s UpSpring Easy Workflow Guide]&lt;br /&gt;
* [http://lassie.student.utwente.nl/vliet/springtut.pdf Maestro&#039;s tutorial of Upspring and textures- very outdated].&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - LUA Files]===&lt;br /&gt;
To edit .lua files you need a text editor. &lt;br /&gt;
*[[Animation-LuaScripting]]&lt;br /&gt;
**[[Animation-LuaCallins]]&lt;br /&gt;
**[[Animation-LuaCallouts]]&lt;br /&gt;
**[[Animation-CobLuaDifferences]]&lt;br /&gt;
**[[lua-animation-basic-tutorial]] to clean&lt;br /&gt;
**[[lua-animation-synthax-usage]] to develop and clean&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - COB/BOS Files]===&lt;br /&gt;
The binary &#039;.cob&#039; file format is obsolete and some &#039;.cob&#039; files might be copyrighed by cavedog. A &#039;.cob&#039; file can be decompiled to see what it is doing or if you have the source, that is a &#039;.bos&#039; file, you can compile it into a &#039;.cob&#039; file.&lt;br /&gt;
&lt;br /&gt;
To edit .bos files you need a program/compiler. The most famous one is [http://jobjol.nl/1384 Scriptor]&lt;br /&gt;
*[[Animation-CobLuaDifferences]]&lt;br /&gt;
*[[Animation-CobOverview]]&lt;br /&gt;
**[[Animation-CobExamples]]&lt;br /&gt;
**[[Animation-CobAnimation]]&lt;br /&gt;
**[[Animation-CobCallins]]&lt;br /&gt;
**[[Animation-CobConstants]]&lt;br /&gt;
**[[Animation-CobThreads]]&lt;br /&gt;
**[[Animation-CobHitByWeaponID]]&lt;br /&gt;
*[http://www.planetannihilation.com/tadc/tut_unit_01_1.asp PlanetAnnihilation] has a nice tutorial&lt;br /&gt;
*[[Units:LuaCOB]] - how to interface COB with LUA&lt;br /&gt;
*[[CEG_For_Units|Game Development:Calling basic CEGs from COB]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?p=132943#132943 GPL-compliant sourcecode, scripting code examples, and other things.]&lt;br /&gt;
&lt;br /&gt;
===Units - FBI Files===&lt;br /&gt;
*[[Units:FBI]]&lt;br /&gt;
*[[All_FBI-variable_values:_min,_max,_default,_type|Units:FBI (variable datatype list)]]&lt;br /&gt;
*[[Unit_Categories]]&lt;br /&gt;
&lt;br /&gt;
===Units - MoveTypes===&lt;br /&gt;
*[[Units:MoveTypes]]&lt;br /&gt;
&lt;br /&gt;
===Weapons - TDF Files===&lt;br /&gt;
*[[Weapon Variables]] : This is the most up to date&lt;br /&gt;
*[[Units:WeaponMainDir]]&lt;br /&gt;
*[[Units:Weapons]] : Various informations about the weapontypes (uncompleted)&lt;br /&gt;
*[[All_Weapons_variable_values:_min%2C_max%2C_default%2C_type|Weapon datatype list]] : All weapon variables min/max/default values and datatypes listed.&lt;br /&gt;
*[[Weapons:Antinukes]]: All about antinukes.&lt;br /&gt;
&lt;br /&gt;
===Explosions===&lt;br /&gt;
*[[CEG]]&lt;br /&gt;
**[[CEG-Calls]] &lt;br /&gt;
**[[CEG-Format]] &lt;br /&gt;
**[[CEG-Classes]] &lt;br /&gt;
**[[CEG-Operators]] &lt;br /&gt;
**[[CEG-Miscellaneous]] &lt;br /&gt;
**[[CEG-OldInfo]]&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
*[[Units:Design]]&lt;br /&gt;
*[[Units:Textures]]&lt;br /&gt;
*[[Units:Buildpics]]&lt;br /&gt;
*[[Units:SideData TDF]]&lt;br /&gt;
*[[Units:Download TDF]] &lt;br /&gt;
*[[Units:FlankingBonus]]&lt;br /&gt;
*[[Mod Development:Armor|Game Development:Armor]]&lt;br /&gt;
*[[Mod Development:Cursors|Game Development:Cursors]]&lt;br /&gt;
*[[Mod Development:Archives|Game Development:Archives]]&lt;br /&gt;
*[[Mod Development:Sidepics|Game Development:Sidepics]]&lt;br /&gt;
*[[CustomUnitIcons|Game Development:Custom unit icons]]&lt;br /&gt;
&lt;br /&gt;
===Legacy Porting Tools===&lt;br /&gt;
====Automated Game Creation====&lt;br /&gt;
* [[TA2Spring]] - Automatically adds and converts Total Annihilation unit packs (.ufo files, etc..) into Spring games (requires a base game for the game rules, XTA is recommended, it is probably not properly supported by current Spring)&lt;br /&gt;
&lt;br /&gt;
[[Category: Unit_development]]&lt;br /&gt;
[[Category: Mod_development]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7987</id>
		<title>Game and Unit development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7987"/>
		<updated>2010-09-11T11:02:58Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* s3o modeling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
=Game development=&lt;br /&gt;
This information is meant to help newcomers learn how to develop their own games for the Spring Engine.&lt;br /&gt;
==General==&lt;br /&gt;
*[[Mod specification|Game specification]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=6015 What do I need to create a game?]&lt;br /&gt;
*[[Simple Mod Tutorial|Simple Game Tutorial]]&lt;br /&gt;
*[[Freely available and reusable content|Freely available and reusable content for maps and games]]&lt;br /&gt;
&lt;br /&gt;
==Unit Development==&lt;br /&gt;
===Units - Modeling===&lt;br /&gt;
Spring supports different 3d representations: &#039;.s3o&#039; and &#039;.3do&#039;. The biggest difference between both formats is the workflow to create a new unit. There are exporter plugins for &#039;blender&#039; and &#039;3ds-max&#039; so that texturing and modeling can be done using these.&lt;br /&gt;
In contrast: when you model an &#039;.3do&#039; you have to use &#039;UpSpring&#039; currently.&lt;br /&gt;
&lt;br /&gt;
The animation with can either be done using &#039;lua&#039; or &#039;COB/BOS&#039; is does not depend on either, see rigging/animation. For new units use &#039;lua&#039; scripting.&lt;br /&gt;
&lt;br /&gt;
====.s3o====&lt;br /&gt;
Extends 3do with various new features. Use this for new units&lt;br /&gt;
&lt;br /&gt;
====.3do====&lt;br /&gt;
3do (implemented for compatibility to ta based game, old)&lt;br /&gt;
&lt;br /&gt;
====s3o modeling====&lt;br /&gt;
* [[Basic s3o unit making guide]] (using UpSpring)&lt;br /&gt;
* [[s3o using blender]] (not using UpSpring)&lt;br /&gt;
* [[Trouble-shooting s3o units]]&lt;br /&gt;
&lt;br /&gt;
====Models - Modeling, UV Mapping====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10612 Wings UV Mapping Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12354 Saving polygons in Wings3d Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10503 Runecrafter&#039;s 3DS Max UV Mapping Tutorial]&lt;br /&gt;
&lt;br /&gt;
====Models - Textures====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=57&amp;amp;t=22392 DDS Textures:  How To]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10947 Greeble Tutorial 1]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12356 Greeble Tutorial 2]&lt;br /&gt;
&lt;br /&gt;
====Models - 3do Files====&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; 3do is an outdated model format used by OTA models (Balanced Annihilation, NOTA, etc.).&amp;lt;br&amp;gt;&lt;br /&gt;
(Note: UpSpring has some problems with empty objects and groundplates)&lt;br /&gt;
*use [http://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=7208&amp;amp;p=126129&amp;amp;hilit=upspring#p126129 UpSpring] and [http://springfiles.com/1755 3doBuilder] to edit those files&lt;br /&gt;
*[http://user.supradigital.org/jcnossen/UpspringInstaller-1.54-EulerAngles.exe Click here to download UpSpring, our content support tool.]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=15106 Argh&#039;s UpSpring Easy Workflow Guide]&lt;br /&gt;
* [http://lassie.student.utwente.nl/vliet/springtut.pdf Maestro&#039;s tutorial of Upspring and textures- very outdated].&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - LUA Files]===&lt;br /&gt;
To edit .lua files you need a text editor. &lt;br /&gt;
*[[Animation-LuaScripting]]&lt;br /&gt;
**[[Animation-LuaCallins]]&lt;br /&gt;
**[[Animation-LuaCallouts]]&lt;br /&gt;
**[[Animation-CobLuaDifferences]]&lt;br /&gt;
**[[lua-animation-basic-tutorial]] to clean&lt;br /&gt;
**[[lua-animation-synthax-usage]] to develop and clean&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - COB/BOS Files]===&lt;br /&gt;
The binary &#039;.cob&#039; file format is obsolete and some &#039;.cob&#039; files might be copyrighed by cavedog. A &#039;.cob&#039; file can be decompiled to see what it is doing or if you have the source, that is a &#039;.bos&#039; file, you can compile it into a &#039;.cob&#039; file.&lt;br /&gt;
&lt;br /&gt;
To edit .bos files you need a program/compiler. The most famous one is [http://jobjol.nl/1384 Scriptor]&lt;br /&gt;
*[[Animation-CobLuaDifferences]]&lt;br /&gt;
*[[Animation-CobOverview]]&lt;br /&gt;
**[[Animation-CobExamples]]&lt;br /&gt;
**[[Animation-CobAnimation]]&lt;br /&gt;
**[[Animation-CobCallins]]&lt;br /&gt;
**[[Animation-CobConstants]]&lt;br /&gt;
**[[Animation-CobThreads]]&lt;br /&gt;
**[[Animation-CobHitByWeaponID]]&lt;br /&gt;
*[http://www.planetannihilation.com/tadc/tut_unit_01_1.asp PlanetAnnihilation] has a nice tutorial&lt;br /&gt;
*[[Units:LuaCOB]] - how to interface COB with LUA&lt;br /&gt;
*[[CEG_For_Units|Game Development:Calling basic CEGs from COB]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?p=132943#132943 GPL-compliant sourcecode, scripting code examples, and other things.]&lt;br /&gt;
&lt;br /&gt;
===Units - FBI Files===&lt;br /&gt;
*[[Units:FBI]]&lt;br /&gt;
*[[All_FBI-variable_values:_min,_max,_default,_type|Units:FBI (variable datatype list)]]&lt;br /&gt;
*[[Unit_Categories]]&lt;br /&gt;
&lt;br /&gt;
===Units - MoveTypes===&lt;br /&gt;
*[[Units:MoveTypes]]&lt;br /&gt;
&lt;br /&gt;
===Weapons - TDF Files===&lt;br /&gt;
*[[Weapon Variables]] : This is the most up to date&lt;br /&gt;
*[[Units:WeaponMainDir]]&lt;br /&gt;
*[[Units:Weapons]] : Various informations about the weapontypes (uncompleted)&lt;br /&gt;
*[[All_Weapons_variable_values:_min%2C_max%2C_default%2C_type|Weapon datatype list]] : All weapon variables min/max/default values and datatypes listed.&lt;br /&gt;
*[[Weapons:Antinukes]]: All about antinukes.&lt;br /&gt;
&lt;br /&gt;
===Explosions===&lt;br /&gt;
*[[CEG]]&lt;br /&gt;
**[[CEG-Calls]] &lt;br /&gt;
**[[CEG-Format]] &lt;br /&gt;
**[[CEG-Classes]] &lt;br /&gt;
**[[CEG-Operators]] &lt;br /&gt;
**[[CEG-Miscellaneous]] &lt;br /&gt;
**[[CEG-OldInfo]]&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
*[[Units:Design]]&lt;br /&gt;
*[[Units:Textures]]&lt;br /&gt;
*[[Units:Buildpics]]&lt;br /&gt;
*[[Units:SideData TDF]]&lt;br /&gt;
*[[Units:Download TDF]] &lt;br /&gt;
*[[Units:FlankingBonus]]&lt;br /&gt;
*[[Mod Development:Armor|Game Development:Armor]]&lt;br /&gt;
*[[Mod Development:Cursors|Game Development:Cursors]]&lt;br /&gt;
*[[Mod Development:Archives|Game Development:Archives]]&lt;br /&gt;
*[[Mod Development:Sidepics|Game Development:Sidepics]]&lt;br /&gt;
*[[CustomUnitIcons|Game Development:Custom unit icons]]&lt;br /&gt;
&lt;br /&gt;
===Legacy Porting Tools===&lt;br /&gt;
====Automated Game Creation====&lt;br /&gt;
* [[TA2Spring]] - Automatically adds and converts Total Annihilation unit packs (.ufo files, etc..) into Spring games (requires a base game for the game rules, XTA is recommended, it is probably not properly supported by current Spring)&lt;br /&gt;
&lt;br /&gt;
[[Category: Unit_development]]&lt;br /&gt;
[[Category: Mod_development]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16058</id>
		<title>S3o using blender</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16058"/>
		<updated>2010-09-11T10:58:59Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== motivation ==&lt;br /&gt;
This guide helps you to create a &#039;.s3o&#039; unit for spring using:&lt;br /&gt;
* &#039;blender&#039; - for 3d moddeling&lt;br /&gt;
* &#039;gimp&#039; - for texturing (or similar tools for 2d art)&lt;br /&gt;
&lt;br /&gt;
== The Tools ==&lt;br /&gt;
First download/install blender, then install a blender-compatible python version. The command shell window for blender will tell you which version of python it was compiled with, get specifically that version of python. Finally download the exporter for blender, found at [1].&lt;br /&gt;
&lt;br /&gt;
Once all is installed you can either work from scratch or start working based on a template [2]. If you start from scratch, have a look at [1] to meet all requirements for the exporter script, such as naming conventions and necessary empties.&lt;br /&gt;
&lt;br /&gt;
== Editing and Exporting ==&lt;br /&gt;
The parenting system of blender is used to find the chain of children for exporting. Each child must have a unique name which can later be used for rigging.&lt;br /&gt;
&lt;br /&gt;
Important: the model MUST have exactly two textures:&lt;br /&gt;
* 1. texture RGBA32 where: &lt;br /&gt;
**RGB is used for coloring and A is used for team-coloring&lt;br /&gt;
&lt;br /&gt;
* 2. texture RGBA32 where: &lt;br /&gt;
**R for glow&lt;br /&gt;
**G for reflectivity&lt;br /&gt;
**B &#039;unassigned&#039; (mod dependent)&lt;br /&gt;
**A for transparency (standard ARB shader supports only 1 bit that is: either render the pixel, or not)&lt;br /&gt;
&lt;br /&gt;
=== Notes on working with the Template ===&lt;br /&gt;
Everything should be properly configured for export, with necessary empties etc present. If objects are hidden from view for better editing, press ALT+H to unhide all objects.&lt;br /&gt;
&lt;br /&gt;
When you start working on the base mesh, remember not to delete the object itself. Go into Edit Mode, select all vertices and delete them. Then add primitives/vertices/... to your empty mesh of the still-valid base object.&lt;br /&gt;
&lt;br /&gt;
After meshing out your model, remember to check whether you need to move/scale the empties that you see in the node viewer. The cubic empty sets the ground midpoint of the object, the arrow empty is used for height purposes and the spheric empty defines the model&#039;s boundary box.&lt;br /&gt;
&lt;br /&gt;
== Notes on the export step ==&lt;br /&gt;
The active selection does not influence the exporter therefore you don&#039;t need to select any object (still you can) to make a valid export.&lt;br /&gt;
The exporter will loop over all objects in the scene automatically.&lt;br /&gt;
&lt;br /&gt;
Please note that the template you can download from [2] also includes a modified exporter script for blender that allows it to export the objects even while cameras and light setups are present in the scene for preview-rendering.&lt;br /&gt;
&lt;br /&gt;
== Deployment &amp;amp; Testing==&lt;br /&gt;
Copy the &#039;.s3o&#039; in the folder:&lt;br /&gt;
* /mods/modname/objects3d/&lt;br /&gt;
&lt;br /&gt;
While textures go into:&lt;br /&gt;
* /mods/modname/unittextures/&lt;br /&gt;
&lt;br /&gt;
As your first model is a unit replacement, don&#039;t forget to modify the unitname.fbi (in case of the &#039;armsolar&#039; replacement: use armsolar.fbi) and add your model there.&lt;br /&gt;
* /mods/modname/units/armsolar.fbi&lt;br /&gt;
&lt;br /&gt;
WARNING: &#039;&#039;&#039;when using .s3o you have to add a suffix, else spring will crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the &#039;/mods/modname/units/armsolar.fbi&#039; and you will see:&lt;br /&gt;
=== units/armsolar.fbi: Valid for 3do ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
we have to modify this in order to make it s3o aware with:&lt;br /&gt;
&lt;br /&gt;
=== units/armsolar.fbi: Valid for s3o ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  &#039;&#039;&#039;unitname=armsolar.s3o;&#039;&#039;&#039;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [1] http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=17026&lt;br /&gt;
* [2] http://www.lastlog.de/misc/s3o-template.zip&lt;br /&gt;
&lt;br /&gt;
[[Category: Unit_development]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16057</id>
		<title>S3o using blender</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16057"/>
		<updated>2010-09-11T10:57:50Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* units/armsolar.fbi: Valid for s3o */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== motivation ==&lt;br /&gt;
This guide helps you to create a &#039;.s3o&#039; unit for spring using:&lt;br /&gt;
* &#039;blender&#039; - for 3d moddeling&lt;br /&gt;
* &#039;gimp&#039; - for texturing (or similar tools for 2d art)&lt;br /&gt;
&lt;br /&gt;
== The Tools ==&lt;br /&gt;
First download/install blender, then install a blender-compatible python version. The command shell window for blender will tell you which version of python it was compiled with, get specifically that version of python. Finally download the exporter for blender, found at [1].&lt;br /&gt;
&lt;br /&gt;
Once all is installed you can either work from scratch or start working based on a template [2]. If you start from scratch, have a look at [1] to meet all requirements for the exporter script, such as naming conventions and necessary empties.&lt;br /&gt;
&lt;br /&gt;
== Editing and Exporting ==&lt;br /&gt;
The parenting system of blender is used to find the chain of children for exporting. Each child must have a unique name which can later be used for rigging.&lt;br /&gt;
&lt;br /&gt;
Important: the model MUST have exactly two textures:&lt;br /&gt;
* 1. texture RGBA32 where: &lt;br /&gt;
**RGB is used for coloring and A is used for team-coloring&lt;br /&gt;
&lt;br /&gt;
* 2. texture RGBA32 where: &lt;br /&gt;
**R for glow&lt;br /&gt;
**G for reflectivity&lt;br /&gt;
**B &#039;unassigned&#039; (mod dependent)&lt;br /&gt;
**A for transparency (standard ARB shader supports only 1 bit that is: either render the pixel, or not)&lt;br /&gt;
&lt;br /&gt;
=== Notes on working with the Template ===&lt;br /&gt;
Everything should be properly configured for export, with necessary empties etc present. If objects are hidden from view for better editing, press ALT+H to unhide all objects.&lt;br /&gt;
&lt;br /&gt;
When you start working on the base mesh, remember not to delete the object itself. Go into Edit Mode, select all vertices and delete them. Then add primitives/vertices/... to your empty mesh of the still-valid base object.&lt;br /&gt;
&lt;br /&gt;
After meshing out your model, remember to check whether you need to move/scale the empties that you see in the node viewer. The cubic empty sets the ground midpoint of the object, the arrow empty is used for height purposes and the spheric empty defines the model&#039;s boundary box.&lt;br /&gt;
&lt;br /&gt;
== Notes on the export step ==&lt;br /&gt;
The active selection does not influence the exporter therefore you don&#039;t need to select any object (still you can) to make a valid export.&lt;br /&gt;
The exporter will loop over all objects in the scene automatically.&lt;br /&gt;
&lt;br /&gt;
Please note that the template you can download from [2] also includes a modified exporter script for blender that allows it to export the objects even while cameras and light setups are present in the scene for preview-rendering.&lt;br /&gt;
&lt;br /&gt;
== Deployment &amp;amp; Testing==&lt;br /&gt;
Copy the &#039;.s3o&#039; in the folder:&lt;br /&gt;
* /mods/modname/objects3d/&lt;br /&gt;
&lt;br /&gt;
While textures go into:&lt;br /&gt;
* /mods/modname/unittextures/&lt;br /&gt;
&lt;br /&gt;
As your first model is a unit replacement, don&#039;t forget to modify the unitname.fbi (in case of the &#039;armsolar&#039; replacement: use armsolar.fbi) and add your model there.&lt;br /&gt;
* /mods/modname/units/armsolar.fbi&lt;br /&gt;
&lt;br /&gt;
WARNING: &#039;&#039;&#039;when using .s3o you have to add a suffix, else spring will crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the &#039;/mods/modname/units/armsolar.fbi&#039; and you will see:&lt;br /&gt;
=== units/armsolar.fbi: Valid for 3do ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
we have to modify this in order to make it s3o aware with:&lt;br /&gt;
&lt;br /&gt;
=== units/armsolar.fbi: Valid for s3o ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  &#039;&#039;&#039;unitname=armsolar.s3o;&#039;&#039;&#039;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [1] http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=17026&lt;br /&gt;
* [2] http://www.lastlog.de/misc/s3o-template.zip&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16056</id>
		<title>S3o using blender</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16056"/>
		<updated>2010-09-11T10:48:31Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Valid for s3o */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== motivation ==&lt;br /&gt;
This guide helps you to create a &#039;.s3o&#039; unit for spring using:&lt;br /&gt;
* &#039;blender&#039; - for 3d moddeling&lt;br /&gt;
* &#039;gimp&#039; - for texturing (or similar tools for 2d art)&lt;br /&gt;
&lt;br /&gt;
== The Tools ==&lt;br /&gt;
First download/install blender, then install a blender-compatible python version. The command shell window for blender will tell you which version of python it was compiled with, get specifically that version of python. Finally download the exporter for blender, found at [1].&lt;br /&gt;
&lt;br /&gt;
Once all is installed you can either work from scratch or start working based on a template [2]. If you start from scratch, have a look at [1] to meet all requirements for the exporter script, such as naming conventions and necessary empties.&lt;br /&gt;
&lt;br /&gt;
== Editing and Exporting ==&lt;br /&gt;
The parenting system of blender is used to find the chain of children for exporting. Each child must have a unique name which can later be used for rigging.&lt;br /&gt;
&lt;br /&gt;
Important: the model MUST have exactly two textures:&lt;br /&gt;
* 1. texture RGBA32 where: &lt;br /&gt;
**RGB is used for coloring and A is used for team-coloring&lt;br /&gt;
&lt;br /&gt;
* 2. texture RGBA32 where: &lt;br /&gt;
**R for glow&lt;br /&gt;
**G for reflectivity&lt;br /&gt;
**B &#039;unassigned&#039; (mod dependent)&lt;br /&gt;
**A for transparency (standard ARB shader supports only 1 bit that is: either render the pixel, or not)&lt;br /&gt;
&lt;br /&gt;
=== Notes on working with the Template ===&lt;br /&gt;
Everything should be properly configured for export, with necessary empties etc present. If objects are hidden from view for better editing, press ALT+H to unhide all objects.&lt;br /&gt;
&lt;br /&gt;
When you start working on the base mesh, remember not to delete the object itself. Go into Edit Mode, select all vertices and delete them. Then add primitives/vertices/... to your empty mesh of the still-valid base object.&lt;br /&gt;
&lt;br /&gt;
After meshing out your model, remember to check whether you need to move/scale the empties that you see in the node viewer. The cubic empty sets the ground midpoint of the object, the arrow empty is used for height purposes and the spheric empty defines the model&#039;s boundary box.&lt;br /&gt;
&lt;br /&gt;
== Notes on the export step ==&lt;br /&gt;
The active selection does not influence the exporter therefore you don&#039;t need to select any object (still you can) to make a valid export.&lt;br /&gt;
The exporter will loop over all objects in the scene automatically.&lt;br /&gt;
&lt;br /&gt;
Please note that the template you can download from [2] also includes a modified exporter script for blender that allows it to export the objects even while cameras and light setups are present in the scene for preview-rendering.&lt;br /&gt;
&lt;br /&gt;
== Deployment &amp;amp; Testing==&lt;br /&gt;
Copy the &#039;.s3o&#039; in the folder:&lt;br /&gt;
* /mods/modname/objects3d/&lt;br /&gt;
&lt;br /&gt;
While textures go into:&lt;br /&gt;
* /mods/modname/unittextures/&lt;br /&gt;
&lt;br /&gt;
As your first model is a unit replacement, don&#039;t forget to modify the unitname.fbi (in case of the &#039;armsolar&#039; replacement: use armsolar.fbi) and add your model there.&lt;br /&gt;
* /mods/modname/units/armsolar.fbi&lt;br /&gt;
&lt;br /&gt;
WARNING: &#039;&#039;&#039;when using .s3o you have to add a suffix, else spring will crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the &#039;/mods/modname/units/armsolar.fbi&#039; and you will see:&lt;br /&gt;
=== units/armsolar.fbi: Valid for 3do ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
we have to modify this in order to make it s3o aware with:&lt;br /&gt;
&lt;br /&gt;
=== units/armsolar.fbi: Valid for s3o ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar.s3o;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [1] http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=17026&lt;br /&gt;
* [2] http://www.lastlog.de/misc/s3o-template.zip&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16055</id>
		<title>S3o using blender</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16055"/>
		<updated>2010-09-11T10:48:19Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Valid for 3do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== motivation ==&lt;br /&gt;
This guide helps you to create a &#039;.s3o&#039; unit for spring using:&lt;br /&gt;
* &#039;blender&#039; - for 3d moddeling&lt;br /&gt;
* &#039;gimp&#039; - for texturing (or similar tools for 2d art)&lt;br /&gt;
&lt;br /&gt;
== The Tools ==&lt;br /&gt;
First download/install blender, then install a blender-compatible python version. The command shell window for blender will tell you which version of python it was compiled with, get specifically that version of python. Finally download the exporter for blender, found at [1].&lt;br /&gt;
&lt;br /&gt;
Once all is installed you can either work from scratch or start working based on a template [2]. If you start from scratch, have a look at [1] to meet all requirements for the exporter script, such as naming conventions and necessary empties.&lt;br /&gt;
&lt;br /&gt;
== Editing and Exporting ==&lt;br /&gt;
The parenting system of blender is used to find the chain of children for exporting. Each child must have a unique name which can later be used for rigging.&lt;br /&gt;
&lt;br /&gt;
Important: the model MUST have exactly two textures:&lt;br /&gt;
* 1. texture RGBA32 where: &lt;br /&gt;
**RGB is used for coloring and A is used for team-coloring&lt;br /&gt;
&lt;br /&gt;
* 2. texture RGBA32 where: &lt;br /&gt;
**R for glow&lt;br /&gt;
**G for reflectivity&lt;br /&gt;
**B &#039;unassigned&#039; (mod dependent)&lt;br /&gt;
**A for transparency (standard ARB shader supports only 1 bit that is: either render the pixel, or not)&lt;br /&gt;
&lt;br /&gt;
=== Notes on working with the Template ===&lt;br /&gt;
Everything should be properly configured for export, with necessary empties etc present. If objects are hidden from view for better editing, press ALT+H to unhide all objects.&lt;br /&gt;
&lt;br /&gt;
When you start working on the base mesh, remember not to delete the object itself. Go into Edit Mode, select all vertices and delete them. Then add primitives/vertices/... to your empty mesh of the still-valid base object.&lt;br /&gt;
&lt;br /&gt;
After meshing out your model, remember to check whether you need to move/scale the empties that you see in the node viewer. The cubic empty sets the ground midpoint of the object, the arrow empty is used for height purposes and the spheric empty defines the model&#039;s boundary box.&lt;br /&gt;
&lt;br /&gt;
== Notes on the export step ==&lt;br /&gt;
The active selection does not influence the exporter therefore you don&#039;t need to select any object (still you can) to make a valid export.&lt;br /&gt;
The exporter will loop over all objects in the scene automatically.&lt;br /&gt;
&lt;br /&gt;
Please note that the template you can download from [2] also includes a modified exporter script for blender that allows it to export the objects even while cameras and light setups are present in the scene for preview-rendering.&lt;br /&gt;
&lt;br /&gt;
== Deployment &amp;amp; Testing==&lt;br /&gt;
Copy the &#039;.s3o&#039; in the folder:&lt;br /&gt;
* /mods/modname/objects3d/&lt;br /&gt;
&lt;br /&gt;
While textures go into:&lt;br /&gt;
* /mods/modname/unittextures/&lt;br /&gt;
&lt;br /&gt;
As your first model is a unit replacement, don&#039;t forget to modify the unitname.fbi (in case of the &#039;armsolar&#039; replacement: use armsolar.fbi) and add your model there.&lt;br /&gt;
* /mods/modname/units/armsolar.fbi&lt;br /&gt;
&lt;br /&gt;
WARNING: &#039;&#039;&#039;when using .s3o you have to add a suffix, else spring will crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the &#039;/mods/modname/units/armsolar.fbi&#039; and you will see:&lt;br /&gt;
=== units/armsolar.fbi: Valid for 3do ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
we have to modify this in order to make it s3o aware with:&lt;br /&gt;
&lt;br /&gt;
=== Valid for s3o ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar.s3o;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [1] http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=17026&lt;br /&gt;
* [2] http://www.lastlog.de/misc/s3o-template.zip&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16054</id>
		<title>S3o using blender</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16054"/>
		<updated>2010-09-11T10:47:37Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Deployment &amp;amp; Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== motivation ==&lt;br /&gt;
This guide helps you to create a &#039;.s3o&#039; unit for spring using:&lt;br /&gt;
* &#039;blender&#039; - for 3d moddeling&lt;br /&gt;
* &#039;gimp&#039; - for texturing (or similar tools for 2d art)&lt;br /&gt;
&lt;br /&gt;
== The Tools ==&lt;br /&gt;
First download/install blender, then install a blender-compatible python version. The command shell window for blender will tell you which version of python it was compiled with, get specifically that version of python. Finally download the exporter for blender, found at [1].&lt;br /&gt;
&lt;br /&gt;
Once all is installed you can either work from scratch or start working based on a template [2]. If you start from scratch, have a look at [1] to meet all requirements for the exporter script, such as naming conventions and necessary empties.&lt;br /&gt;
&lt;br /&gt;
== Editing and Exporting ==&lt;br /&gt;
The parenting system of blender is used to find the chain of children for exporting. Each child must have a unique name which can later be used for rigging.&lt;br /&gt;
&lt;br /&gt;
Important: the model MUST have exactly two textures:&lt;br /&gt;
* 1. texture RGBA32 where: &lt;br /&gt;
**RGB is used for coloring and A is used for team-coloring&lt;br /&gt;
&lt;br /&gt;
* 2. texture RGBA32 where: &lt;br /&gt;
**R for glow&lt;br /&gt;
**G for reflectivity&lt;br /&gt;
**B &#039;unassigned&#039; (mod dependent)&lt;br /&gt;
**A for transparency (standard ARB shader supports only 1 bit that is: either render the pixel, or not)&lt;br /&gt;
&lt;br /&gt;
=== Notes on working with the Template ===&lt;br /&gt;
Everything should be properly configured for export, with necessary empties etc present. If objects are hidden from view for better editing, press ALT+H to unhide all objects.&lt;br /&gt;
&lt;br /&gt;
When you start working on the base mesh, remember not to delete the object itself. Go into Edit Mode, select all vertices and delete them. Then add primitives/vertices/... to your empty mesh of the still-valid base object.&lt;br /&gt;
&lt;br /&gt;
After meshing out your model, remember to check whether you need to move/scale the empties that you see in the node viewer. The cubic empty sets the ground midpoint of the object, the arrow empty is used for height purposes and the spheric empty defines the model&#039;s boundary box.&lt;br /&gt;
&lt;br /&gt;
== Notes on the export step ==&lt;br /&gt;
The active selection does not influence the exporter therefore you don&#039;t need to select any object (still you can) to make a valid export.&lt;br /&gt;
The exporter will loop over all objects in the scene automatically.&lt;br /&gt;
&lt;br /&gt;
Please note that the template you can download from [2] also includes a modified exporter script for blender that allows it to export the objects even while cameras and light setups are present in the scene for preview-rendering.&lt;br /&gt;
&lt;br /&gt;
== Deployment &amp;amp; Testing==&lt;br /&gt;
Copy the &#039;.s3o&#039; in the folder:&lt;br /&gt;
* /mods/modname/objects3d/&lt;br /&gt;
&lt;br /&gt;
While textures go into:&lt;br /&gt;
* /mods/modname/unittextures/&lt;br /&gt;
&lt;br /&gt;
As your first model is a unit replacement, don&#039;t forget to modify the unitname.fbi (in case of the &#039;armsolar&#039; replacement: use armsolar.fbi) and add your model there.&lt;br /&gt;
* /mods/modname/units/armsolar.fbi&lt;br /&gt;
&lt;br /&gt;
WARNING: &#039;&#039;&#039;when using .s3o you have to add a suffix, else spring will crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the &#039;/mods/modname/units/armsolar.fbi&#039; and you will see:&lt;br /&gt;
=== Valid for 3do ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
we have to modify this in order to make it s3o aware with:&lt;br /&gt;
=== Valid for s3o ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar.s3o;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [1] http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=17026&lt;br /&gt;
* [2] http://www.lastlog.de/misc/s3o-template.zip&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Animation-LuaScripting&amp;diff=2089</id>
		<title>Animation-LuaScripting</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Animation-LuaScripting&amp;diff=2089"/>
		<updated>2010-09-11T10:41:57Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting started ==&lt;br /&gt;
&lt;br /&gt;
=== Setup ===&lt;br /&gt;
&lt;br /&gt;
Lua unit animation is implemented partially in the engine, and partially in a Lua gadget which is shipped with Spring in springcontent.sdz. By default, this gadget is not loaded, so a bit of setup is required to enable Lua unit scripts.&lt;br /&gt;
&lt;br /&gt;
To enable Lua unit scripts, create a file &#039;&#039;LuaRules/Gadgets/unit_script.lua&#039;&#039;, and paste the following into it:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|style=&amp;quot;background: #41545c; border: 1px #aaa solid;&amp;quot;|&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
 -- Enables Lua unit scripts by including the gadget from springcontent.sdz&lt;br /&gt;
 &lt;br /&gt;
 -- Uncomment to override the directory which is scanned for *.lua unit scripts.&lt;br /&gt;
 --UNITSCRIPT_DIR = &amp;quot;scripts/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 return include(&amp;quot;LuaGadgets/Gadgets/unit_script.lua&amp;quot;)&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, do check whether your [http://github.com/spring/spring/blob/master/installer/builddata/springcontent/LuaGadgets/system.lua &#039;&#039;LuaRules/system.lua&#039;&#039;] is up to date, if you copied this verbatim into your game. (Must be from a later date than 5 september 2009)&lt;br /&gt;
&lt;br /&gt;
Now this is done, you can start putting *.lua files in your &#039;&#039;scripts/&#039;&#039; folder.&lt;br /&gt;
&lt;br /&gt;
=== Workflow ===&lt;br /&gt;
&lt;br /&gt;
Lua has the major advantage over BOS/COB that you do not need to compile it, which can reduce the time to develop scripts quite a bit.&lt;br /&gt;
&lt;br /&gt;
To save further time, do not restart Spring for each small change. Simply run Spring in an window so you can easily switch between your editor and Spring, and use &#039;&#039;/luarules reload&#039;&#039; to reload all Lua unit scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
&lt;br /&gt;
* [http://tvo.github.com/spring/2010/04/19/lus-stumpy.html Stumpy tutorial]&lt;br /&gt;
* [http://tvo.github.com/spring/2010/04/26/lus-stumpy-2.html Polishing the stumpy]&lt;br /&gt;
* [[Animation-LuaCallins]]&lt;br /&gt;
* [[Animation-LuaCallouts]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Conversion tool&lt;br /&gt;
* Performance measurements&lt;br /&gt;
* Advantages [[Animation-CobLuaDifferences]]&lt;br /&gt;
* Link to article in piro&#039;s magazine&lt;br /&gt;
* Coordinate system (axis, direction of rotation, picture)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Animation]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16051</id>
		<title>S3o using blender</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16051"/>
		<updated>2010-09-11T10:38:19Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* notes on the export step */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==motivation==&lt;br /&gt;
this guide helps you to create a &#039;.s3o&#039; unit for spring using:&lt;br /&gt;
* &#039;blender&#039; - for 3d moddeling&lt;br /&gt;
* &#039;gimp&#039; - for texturing&lt;br /&gt;
&lt;br /&gt;
==the tools==&lt;br /&gt;
first download/install blender, then install a blender-compatible python version. finally download the exporter for blender, found at [1].&lt;br /&gt;
&lt;br /&gt;
Once all is installed you can either work from scratch or start working based on  a template [2]. if you start from scratch, have a look at [1] to met all requirements for the exporter script.&lt;br /&gt;
&lt;br /&gt;
== editing and exporting ==&lt;br /&gt;
The parenting system of blender is used to find the chain of children for exporting. Each child must have a unique name which can later be used for rigging.&lt;br /&gt;
&lt;br /&gt;
Important: the model MUST have exactly two textures:&lt;br /&gt;
* 1. texture RGBA32 where: &lt;br /&gt;
**RGB is used for coloring and A is used for team-coloring&lt;br /&gt;
&lt;br /&gt;
* 2. texture RGBA32 where: &lt;br /&gt;
**R for glow&lt;br /&gt;
**G for reflectivity&lt;br /&gt;
**B &#039;unassigned&#039; (mod dependent)&lt;br /&gt;
**A for transparency (standard ARB shader supports only 1 bit that is: either render the pixel, or not)&lt;br /&gt;
&lt;br /&gt;
== notes on the export step ==&lt;br /&gt;
The active selection does not influence the exporter therefore you don&#039;t need to select any object (still you can) to make a valid export.&lt;br /&gt;
The exporter will loop over all objects in the scene automatically.&lt;br /&gt;
&lt;br /&gt;
Please note that the template you can download from [2] also includes a modified exporter script for blender.&lt;br /&gt;
&lt;br /&gt;
== deployment &amp;amp; testing==&lt;br /&gt;
Copy the &#039;.s3o&#039; in the folder:&lt;br /&gt;
* /mods/modname/objects3d/&lt;br /&gt;
&lt;br /&gt;
While textures go into:&lt;br /&gt;
* /mods/modname/unittextures/&lt;br /&gt;
&lt;br /&gt;
* As your first model is a unit replacement, don&#039;t forget to modify the unitname.fbi (in case of the &#039;armsolar&#039; replacement: use armsolar.fbi) and add your model there.&lt;br /&gt;
* /mods/modname/units/armsolar.fbi&lt;br /&gt;
&lt;br /&gt;
WARNING: &#039;&#039;&#039;when using .s3o you have to add a suffix, else spring will crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the &#039;/mods/modname/units/armsolar.fbi&#039; and you will see:&lt;br /&gt;
===valid for 3do ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
we have to modify this in order to make it s3o aware with:&lt;br /&gt;
===valid for s3o ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar.s3o;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
== links ==&lt;br /&gt;
* [1] http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=17026&lt;br /&gt;
* [2] http://www.lastlog.de/misc/s3o-template.zip&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16050</id>
		<title>S3o using blender</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16050"/>
		<updated>2010-09-11T10:35:53Z</updated>

		<summary type="html">&lt;p&gt;Mrz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==motivation==&lt;br /&gt;
this guide helps you to create a &#039;.s3o&#039; unit for spring using:&lt;br /&gt;
* &#039;blender&#039; - for 3d moddeling&lt;br /&gt;
* &#039;gimp&#039; - for texturing&lt;br /&gt;
&lt;br /&gt;
==the tools==&lt;br /&gt;
first download/install blender, then install a blender-compatible python version. finally download the exporter for blender, found at [1].&lt;br /&gt;
&lt;br /&gt;
Once all is installed you can either work from scratch or start working based on  a template [2]. if you start from scratch, have a look at [1] to met all requirements for the exporter script.&lt;br /&gt;
&lt;br /&gt;
== editing and exporting ==&lt;br /&gt;
The parenting system of blender is used to find the chain of children for exporting. Each child must have a unique name which can later be used for rigging.&lt;br /&gt;
&lt;br /&gt;
Important: the model MUST have exactly two textures:&lt;br /&gt;
* 1. texture RGBA32 where: &lt;br /&gt;
**RGB is used for coloring and A is used for team-coloring&lt;br /&gt;
&lt;br /&gt;
* 2. texture RGBA32 where: &lt;br /&gt;
**R for glow&lt;br /&gt;
**G for reflectivity&lt;br /&gt;
**B &#039;unassigned&#039; (mod dependent)&lt;br /&gt;
**A for transparency (standard ARB shader supports only 1 bit that is: either render the pixel, or not)&lt;br /&gt;
&lt;br /&gt;
== notes on the export step ==&lt;br /&gt;
The active selection does not influence the exporter therefore you don&#039;t need to select any object (still you can) to make a valid export.&lt;br /&gt;
The exporter will loop over all objects in the scene automatically.&lt;br /&gt;
&lt;br /&gt;
== deployment &amp;amp; testing==&lt;br /&gt;
Copy the &#039;.s3o&#039; in the folder:&lt;br /&gt;
* /mods/modname/objects3d/&lt;br /&gt;
&lt;br /&gt;
While textures go into:&lt;br /&gt;
* /mods/modname/unittextures/&lt;br /&gt;
&lt;br /&gt;
* As your first model is a unit replacement, don&#039;t forget to modify the unitname.fbi (in case of the &#039;armsolar&#039; replacement: use armsolar.fbi) and add your model there.&lt;br /&gt;
* /mods/modname/units/armsolar.fbi&lt;br /&gt;
&lt;br /&gt;
WARNING: &#039;&#039;&#039;when using .s3o you have to add a suffix, else spring will crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the &#039;/mods/modname/units/armsolar.fbi&#039; and you will see:&lt;br /&gt;
===valid for 3do ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
we have to modify this in order to make it s3o aware with:&lt;br /&gt;
===valid for s3o ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar.s3o;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
== links ==&lt;br /&gt;
* [1] http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=17026&lt;br /&gt;
* [2] http://www.lastlog.de/misc/s3o-template.zip&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16049</id>
		<title>S3o using blender</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16049"/>
		<updated>2010-09-11T10:33:50Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==motivation==&lt;br /&gt;
this guide helps you to create a &#039;.s3o&#039; unit for spring using:&lt;br /&gt;
* &#039;blender&#039; - for 3d moddeling&lt;br /&gt;
* &#039;gimp&#039; - for texturing&lt;br /&gt;
&lt;br /&gt;
==the tools==&lt;br /&gt;
first download/install blender, then install a blender-compatible python version. finally download the exporter for blender, found at [1].&lt;br /&gt;
&lt;br /&gt;
Once all is installed you can either work from scratch or start working based on  a template [2]. if you start from scratch, have a look at [1] to met all requirements for the exporter script.&lt;br /&gt;
&lt;br /&gt;
== editing and exporting ==&lt;br /&gt;
Edit the &#039;base&#039; and extend it with childs. The parenting system of blender is used to find a chain of childs which get exported. Objects which are no childs of the base objects are NOT exported. Each child must have a unique name which can later be used for rigging.&lt;br /&gt;
&lt;br /&gt;
Important: the model MUST have exactly two textures:&lt;br /&gt;
* 1. texture RGBA32 where: &lt;br /&gt;
**RGB is used for coloring and A is used for team-coloring&lt;br /&gt;
&lt;br /&gt;
* 2. texture RGBA32 where: &lt;br /&gt;
**R for glow&lt;br /&gt;
**G for reflectivity&lt;br /&gt;
**B &#039;unassigned&#039; (mod dependent)&lt;br /&gt;
**A for transparency (standard ARB shader supports only 1 bit that is: either render the pixel, or not)&lt;br /&gt;
&lt;br /&gt;
== notes on the export step ==&lt;br /&gt;
The active selection does not influence the exporter therefore you don&#039;t need to select any object (still you can) to make a valid export.&lt;br /&gt;
The exporter will loop over all objects in the scene automatically.&lt;br /&gt;
&lt;br /&gt;
== deployment &amp;amp; testing==&lt;br /&gt;
Copy the &#039;.s3o&#039; in the folder:&lt;br /&gt;
* /mods/modname/objects3d/&lt;br /&gt;
&lt;br /&gt;
While textures go into:&lt;br /&gt;
* /mods/modname/unittextures/&lt;br /&gt;
&lt;br /&gt;
* As your first model is a unit replacement, don&#039;t forget to modify the unitname.fbi (in case of the &#039;armsolar&#039; replacement: use armsolar.fbi) and add your model there.&lt;br /&gt;
* /mods/modname/units/armsolar.fbi&lt;br /&gt;
&lt;br /&gt;
WARNING: &#039;&#039;&#039;when using .s3o you have to add a suffix, else spring will crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the &#039;/mods/modname/units/armsolar.fbi&#039; and you will see:&lt;br /&gt;
===valid for 3do ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
we have to modify this in order to make it s3o aware with:&lt;br /&gt;
===valid for s3o ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar.s3o;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
== links ==&lt;br /&gt;
* [1] http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=17026&lt;br /&gt;
* [2] http://www.lastlog.de/misc/s3o-template.zip&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16048</id>
		<title>S3o using blender</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=S3o_using_blender&amp;diff=16048"/>
		<updated>2010-09-11T10:32:53Z</updated>

		<summary type="html">&lt;p&gt;Mrz: New page: ==motivation== this guide helps you to create a &amp;#039;.s3o&amp;#039; unit for spring using: * &amp;#039;blender&amp;#039; - for 3d moddeling * &amp;#039;gimp&amp;#039; - for texturing * &amp;#039;lua&amp;#039; - for animation  ==the tools== first download/...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==motivation==&lt;br /&gt;
this guide helps you to create a &#039;.s3o&#039; unit for spring using:&lt;br /&gt;
* &#039;blender&#039; - for 3d moddeling&lt;br /&gt;
* &#039;gimp&#039; - for texturing&lt;br /&gt;
* &#039;lua&#039; - for animation&lt;br /&gt;
&lt;br /&gt;
==the tools==&lt;br /&gt;
first download/install blender, then install a blender-compatible python version. finally download the exporter for blender, found at [1].&lt;br /&gt;
&lt;br /&gt;
Once all is installed you can either work from scratch or start working based on  a template [2]. if you start from scratch, have a look at [1] to met all requirements for the exporter script.&lt;br /&gt;
&lt;br /&gt;
== editing and exporting ==&lt;br /&gt;
Edit the &#039;base&#039; and extend it with childs. The parenting system of blender is used to find a chain of childs which get exported. Objects which are no childs of the base objects are NOT exported. Each child must have a unique name which can later be used for rigging.&lt;br /&gt;
&lt;br /&gt;
Important: the model MUST have exactly two textures:&lt;br /&gt;
* 1. texture RGBA32 where: &lt;br /&gt;
**RGB is used for coloring and A is used for team-coloring&lt;br /&gt;
&lt;br /&gt;
* 2. texture RGBA32 where: &lt;br /&gt;
**R for glow&lt;br /&gt;
**G for reflectivity&lt;br /&gt;
**B &#039;unassigned&#039; (mod dependent)&lt;br /&gt;
**A for transparency (standard ARB shader supports only 1 bit that is: either render the pixel, or not)&lt;br /&gt;
&lt;br /&gt;
== notes on the export step ==&lt;br /&gt;
The active selection does not influence the exporter therefore you don&#039;t need to select any object (still you can) to make a valid export.&lt;br /&gt;
The exporter will loop over all objects in the scene automatically.&lt;br /&gt;
&lt;br /&gt;
== deployment &amp;amp; testing==&lt;br /&gt;
Copy the &#039;.s3o&#039; in the folder:&lt;br /&gt;
* /mods/modname/objects3d/&lt;br /&gt;
&lt;br /&gt;
While textures go into:&lt;br /&gt;
* /mods/modname/unittextures/&lt;br /&gt;
&lt;br /&gt;
* As your first model is a unit replacement, don&#039;t forget to modify the unitname.fbi (in case of the &#039;armsolar&#039; replacement: use armsolar.fbi) and add your model there.&lt;br /&gt;
* /mods/modname/units/armsolar.fbi&lt;br /&gt;
&lt;br /&gt;
WARNING: &#039;&#039;&#039;when using .s3o you have to add a suffix, else spring will crash!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the &#039;/mods/modname/units/armsolar.fbi&#039; and you will see:&lt;br /&gt;
===valid for 3do ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
we have to modify this in order to make it s3o aware with:&lt;br /&gt;
===valid for s3o ===&lt;br /&gt;
 [UNITINFO] {&lt;br /&gt;
  unitname=armsolar.s3o;&lt;br /&gt;
  name=Solar Collector;&lt;br /&gt;
  description=Produces Energy;&lt;br /&gt;
  acceleration=0;&lt;br /&gt;
  activateWhenBuilt=1;&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
== links ==&lt;br /&gt;
* [1] http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=17026&lt;br /&gt;
* [2] http://www.lastlog.de/misc/s3o-template.zip&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7986</id>
		<title>Game and Unit development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7986"/>
		<updated>2010-09-11T10:04:12Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* s3o modeling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
=Game development=&lt;br /&gt;
This information is meant to help newcomers learn how to develop their own games for the Spring Engine.&lt;br /&gt;
==General==&lt;br /&gt;
*[[Mod specification|Game specification]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=6015 What do I need to create a game?]&lt;br /&gt;
*[[Simple Mod Tutorial|Simple Game Tutorial]]&lt;br /&gt;
*[[Freely available and reusable content|Freely available and reusable content for maps and games]]&lt;br /&gt;
&lt;br /&gt;
==Unit Development==&lt;br /&gt;
===Units - Modeling===&lt;br /&gt;
Spring supports different 3d representations: &#039;.s3o&#039; and &#039;.3do&#039;. The biggest difference between both formats is the workflow to create a new unit. There are exporter plugins for &#039;blender&#039; and &#039;3ds-max&#039; so that texturing and modeling can be done using these.&lt;br /&gt;
In contrast: when you model an &#039;.3do&#039; you have to use &#039;UpSpring&#039; currently.&lt;br /&gt;
&lt;br /&gt;
The animation with can either be done using &#039;lua&#039; or &#039;COB/BOS&#039; is does not depend on either, see rigging/animation. For new units use &#039;lua&#039; scripting.&lt;br /&gt;
&lt;br /&gt;
====.s3o====&lt;br /&gt;
Extends 3do with various new features. Use this for new units&lt;br /&gt;
&lt;br /&gt;
====.3do====&lt;br /&gt;
3do (implemented for compatibility to ta based game, old)&lt;br /&gt;
&lt;br /&gt;
====s3o modeling====&lt;br /&gt;
* [[Basic s3o unit making guide]] (using UpSpring)&lt;br /&gt;
* [[Trouble-shooting s3o units]]&lt;br /&gt;
* [[s3o using blender]] (not using UpSpring)&lt;br /&gt;
&lt;br /&gt;
====Models - Modeling, UV Mapping====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10612 Wings UV Mapping Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12354 Saving polygons in Wings3d Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10503 Runecrafter&#039;s 3DS Max UV Mapping Tutorial]&lt;br /&gt;
&lt;br /&gt;
====Models - Textures====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=57&amp;amp;t=22392 DDS Textures:  How To]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10947 Greeble Tutorial 1]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12356 Greeble Tutorial 2]&lt;br /&gt;
&lt;br /&gt;
====Models - 3do Files====&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; 3do is an outdated model format used by OTA models (Balanced Annihilation, NOTA, etc.).&amp;lt;br&amp;gt;&lt;br /&gt;
(Note: UpSpring has some problems with empty objects and groundplates)&lt;br /&gt;
*use [http://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=7208&amp;amp;p=126129&amp;amp;hilit=upspring#p126129 UpSpring] and [http://springfiles.com/1755 3doBuilder] to edit those files&lt;br /&gt;
*[http://user.supradigital.org/jcnossen/UpspringInstaller-1.54-EulerAngles.exe Click here to download UpSpring, our content support tool.]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=15106 Argh&#039;s UpSpring Easy Workflow Guide]&lt;br /&gt;
* [http://lassie.student.utwente.nl/vliet/springtut.pdf Maestro&#039;s tutorial of Upspring and textures- very outdated].&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - LUA Files]===&lt;br /&gt;
To edit .lua files you need a text editor. &lt;br /&gt;
*[[Animation-LuaScripting]]&lt;br /&gt;
**[[Animation-LuaCallins]]&lt;br /&gt;
**[[Animation-LuaCallouts]]&lt;br /&gt;
**[[Animation-CobLuaDifferences]]&lt;br /&gt;
**[[lua-animation-basic-tutorial]] to clean&lt;br /&gt;
**[[lua-animation-synthax-usage]] to develop and clean&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - COB/BOS Files]===&lt;br /&gt;
The binary &#039;.cob&#039; file format is obsolete and some &#039;.cob&#039; files might be copyrighed by cavedog. A &#039;.cob&#039; file can be decompiled to see what it is doing or if you have the source, that is a &#039;.bos&#039; file, you can compile it into a &#039;.cob&#039; file.&lt;br /&gt;
&lt;br /&gt;
To edit .bos files you need a program/compiler. The most famous one is [http://jobjol.nl/1384 Scriptor]&lt;br /&gt;
*[[Animation-CobLuaDifferences]]&lt;br /&gt;
*[[Animation-CobOverview]]&lt;br /&gt;
**[[Animation-CobExamples]]&lt;br /&gt;
**[[Animation-CobAnimation]]&lt;br /&gt;
**[[Animation-CobCallins]]&lt;br /&gt;
**[[Animation-CobConstants]]&lt;br /&gt;
**[[Animation-CobThreads]]&lt;br /&gt;
**[[Animation-CobHitByWeaponID]]&lt;br /&gt;
*[http://www.planetannihilation.com/tadc/tut_unit_01_1.asp PlanetAnnihilation] has a nice tutorial&lt;br /&gt;
*[[Units:LuaCOB]] - how to interface COB with LUA&lt;br /&gt;
*[[CEG_For_Units|Game Development:Calling basic CEGs from COB]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?p=132943#132943 GPL-compliant sourcecode, scripting code examples, and other things.]&lt;br /&gt;
&lt;br /&gt;
===Units - FBI Files===&lt;br /&gt;
*[[Units:FBI]]&lt;br /&gt;
*[[All_FBI-variable_values:_min,_max,_default,_type|Units:FBI (variable datatype list)]]&lt;br /&gt;
*[[Unit_Categories]]&lt;br /&gt;
&lt;br /&gt;
===Units - MoveTypes===&lt;br /&gt;
*[[Units:MoveTypes]]&lt;br /&gt;
&lt;br /&gt;
===Weapons - TDF Files===&lt;br /&gt;
*[[Weapon Variables]] : This is the most up to date&lt;br /&gt;
*[[Units:WeaponMainDir]]&lt;br /&gt;
*[[Units:Weapons]] : Various informations about the weapontypes (uncompleted)&lt;br /&gt;
*[[All_Weapons_variable_values:_min%2C_max%2C_default%2C_type|Weapon datatype list]] : All weapon variables min/max/default values and datatypes listed.&lt;br /&gt;
*[[Weapons:Antinukes]]: All about antinukes.&lt;br /&gt;
&lt;br /&gt;
===Explosions===&lt;br /&gt;
*[[CEG]]&lt;br /&gt;
**[[CEG-Calls]] &lt;br /&gt;
**[[CEG-Format]] &lt;br /&gt;
**[[CEG-Classes]] &lt;br /&gt;
**[[CEG-Operators]] &lt;br /&gt;
**[[CEG-Miscellaneous]] &lt;br /&gt;
**[[CEG-OldInfo]]&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
*[[Units:Design]]&lt;br /&gt;
*[[Units:Textures]]&lt;br /&gt;
*[[Units:Buildpics]]&lt;br /&gt;
*[[Units:SideData TDF]]&lt;br /&gt;
*[[Units:Download TDF]] &lt;br /&gt;
*[[Units:FlankingBonus]]&lt;br /&gt;
*[[Mod Development:Armor|Game Development:Armor]]&lt;br /&gt;
*[[Mod Development:Cursors|Game Development:Cursors]]&lt;br /&gt;
*[[Mod Development:Archives|Game Development:Archives]]&lt;br /&gt;
*[[Mod Development:Sidepics|Game Development:Sidepics]]&lt;br /&gt;
*[[CustomUnitIcons|Game Development:Custom unit icons]]&lt;br /&gt;
&lt;br /&gt;
===Legacy Porting Tools===&lt;br /&gt;
====Automated Game Creation====&lt;br /&gt;
* [[TA2Spring]] - Automatically adds and converts Total Annihilation unit packs (.ufo files, etc..) into Spring games (requires a base game for the game rules, XTA is recommended, it is probably not properly supported by current Spring)&lt;br /&gt;
&lt;br /&gt;
[[Category: Unit_development]]&lt;br /&gt;
[[Category: Mod_development]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7985</id>
		<title>Game and Unit development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7985"/>
		<updated>2010-09-11T10:02:11Z</updated>

		<summary type="html">&lt;p&gt;Mrz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
=Game development=&lt;br /&gt;
This information is meant to help newcomers learn how to develop their own games for the Spring Engine.&lt;br /&gt;
==General==&lt;br /&gt;
*[[Mod specification|Game specification]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=6015 What do I need to create a game?]&lt;br /&gt;
*[[Simple Mod Tutorial|Simple Game Tutorial]]&lt;br /&gt;
*[[Freely available and reusable content|Freely available and reusable content for maps and games]]&lt;br /&gt;
&lt;br /&gt;
==Unit Development==&lt;br /&gt;
===Units - Modeling===&lt;br /&gt;
Spring supports different 3d representations: &#039;.s3o&#039; and &#039;.3do&#039;. The biggest difference between both formats is the workflow to create a new unit. There are exporter plugins for &#039;blender&#039; and &#039;3ds-max&#039; so that texturing and modeling can be done using these.&lt;br /&gt;
In contrast: when you model an &#039;.3do&#039; you have to use &#039;UpSpring&#039; currently.&lt;br /&gt;
&lt;br /&gt;
The animation with can either be done using &#039;lua&#039; or &#039;COB/BOS&#039; is does not depend on either, see rigging/animation. For new units use &#039;lua&#039; scripting.&lt;br /&gt;
&lt;br /&gt;
====.s3o====&lt;br /&gt;
Extends 3do with various new features. Use this for new units&lt;br /&gt;
&lt;br /&gt;
====.3do====&lt;br /&gt;
3do (implemented for compatibility to ta based game, old)&lt;br /&gt;
&lt;br /&gt;
====s3o modeling====&lt;br /&gt;
* [[Basic s3o unit making guide]]&lt;br /&gt;
* [[Trouble-shooting s3o units]]&lt;br /&gt;
&lt;br /&gt;
====Models - Modeling, UV Mapping====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10612 Wings UV Mapping Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12354 Saving polygons in Wings3d Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10503 Runecrafter&#039;s 3DS Max UV Mapping Tutorial]&lt;br /&gt;
&lt;br /&gt;
====Models - Textures====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=57&amp;amp;t=22392 DDS Textures:  How To]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10947 Greeble Tutorial 1]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12356 Greeble Tutorial 2]&lt;br /&gt;
&lt;br /&gt;
====Models - 3do Files====&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; 3do is an outdated model format used by OTA models (Balanced Annihilation, NOTA, etc.).&amp;lt;br&amp;gt;&lt;br /&gt;
(Note: UpSpring has some problems with empty objects and groundplates)&lt;br /&gt;
*use [http://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=7208&amp;amp;p=126129&amp;amp;hilit=upspring#p126129 UpSpring] and [http://springfiles.com/1755 3doBuilder] to edit those files&lt;br /&gt;
*[http://user.supradigital.org/jcnossen/UpspringInstaller-1.54-EulerAngles.exe Click here to download UpSpring, our content support tool.]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=15106 Argh&#039;s UpSpring Easy Workflow Guide]&lt;br /&gt;
* [http://lassie.student.utwente.nl/vliet/springtut.pdf Maestro&#039;s tutorial of Upspring and textures- very outdated].&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - LUA Files]===&lt;br /&gt;
To edit .lua files you need a text editor. &lt;br /&gt;
*[[Animation-LuaScripting]]&lt;br /&gt;
**[[Animation-LuaCallins]]&lt;br /&gt;
**[[Animation-LuaCallouts]]&lt;br /&gt;
**[[Animation-CobLuaDifferences]]&lt;br /&gt;
**[[lua-animation-basic-tutorial]] to clean&lt;br /&gt;
**[[lua-animation-synthax-usage]] to develop and clean&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - COB/BOS Files]===&lt;br /&gt;
The binary &#039;.cob&#039; file format is obsolete and some &#039;.cob&#039; files might be copyrighed by cavedog. A &#039;.cob&#039; file can be decompiled to see what it is doing or if you have the source, that is a &#039;.bos&#039; file, you can compile it into a &#039;.cob&#039; file.&lt;br /&gt;
&lt;br /&gt;
To edit .bos files you need a program/compiler. The most famous one is [http://jobjol.nl/1384 Scriptor]&lt;br /&gt;
*[[Animation-CobLuaDifferences]]&lt;br /&gt;
*[[Animation-CobOverview]]&lt;br /&gt;
**[[Animation-CobExamples]]&lt;br /&gt;
**[[Animation-CobAnimation]]&lt;br /&gt;
**[[Animation-CobCallins]]&lt;br /&gt;
**[[Animation-CobConstants]]&lt;br /&gt;
**[[Animation-CobThreads]]&lt;br /&gt;
**[[Animation-CobHitByWeaponID]]&lt;br /&gt;
*[http://www.planetannihilation.com/tadc/tut_unit_01_1.asp PlanetAnnihilation] has a nice tutorial&lt;br /&gt;
*[[Units:LuaCOB]] - how to interface COB with LUA&lt;br /&gt;
*[[CEG_For_Units|Game Development:Calling basic CEGs from COB]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?p=132943#132943 GPL-compliant sourcecode, scripting code examples, and other things.]&lt;br /&gt;
&lt;br /&gt;
===Units - FBI Files===&lt;br /&gt;
*[[Units:FBI]]&lt;br /&gt;
*[[All_FBI-variable_values:_min,_max,_default,_type|Units:FBI (variable datatype list)]]&lt;br /&gt;
*[[Unit_Categories]]&lt;br /&gt;
&lt;br /&gt;
===Units - MoveTypes===&lt;br /&gt;
*[[Units:MoveTypes]]&lt;br /&gt;
&lt;br /&gt;
===Weapons - TDF Files===&lt;br /&gt;
*[[Weapon Variables]] : This is the most up to date&lt;br /&gt;
*[[Units:WeaponMainDir]]&lt;br /&gt;
*[[Units:Weapons]] : Various informations about the weapontypes (uncompleted)&lt;br /&gt;
*[[All_Weapons_variable_values:_min%2C_max%2C_default%2C_type|Weapon datatype list]] : All weapon variables min/max/default values and datatypes listed.&lt;br /&gt;
*[[Weapons:Antinukes]]: All about antinukes.&lt;br /&gt;
&lt;br /&gt;
===Explosions===&lt;br /&gt;
*[[CEG]]&lt;br /&gt;
**[[CEG-Calls]] &lt;br /&gt;
**[[CEG-Format]] &lt;br /&gt;
**[[CEG-Classes]] &lt;br /&gt;
**[[CEG-Operators]] &lt;br /&gt;
**[[CEG-Miscellaneous]] &lt;br /&gt;
**[[CEG-OldInfo]]&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
*[[Units:Design]]&lt;br /&gt;
*[[Units:Textures]]&lt;br /&gt;
*[[Units:Buildpics]]&lt;br /&gt;
*[[Units:SideData TDF]]&lt;br /&gt;
*[[Units:Download TDF]] &lt;br /&gt;
*[[Units:FlankingBonus]]&lt;br /&gt;
*[[Mod Development:Armor|Game Development:Armor]]&lt;br /&gt;
*[[Mod Development:Cursors|Game Development:Cursors]]&lt;br /&gt;
*[[Mod Development:Archives|Game Development:Archives]]&lt;br /&gt;
*[[Mod Development:Sidepics|Game Development:Sidepics]]&lt;br /&gt;
*[[CustomUnitIcons|Game Development:Custom unit icons]]&lt;br /&gt;
&lt;br /&gt;
===Legacy Porting Tools===&lt;br /&gt;
====Automated Game Creation====&lt;br /&gt;
* [[TA2Spring]] - Automatically adds and converts Total Annihilation unit packs (.ufo files, etc..) into Spring games (requires a base game for the game rules, XTA is recommended, it is probably not properly supported by current Spring)&lt;br /&gt;
&lt;br /&gt;
[[Category: Unit_development]]&lt;br /&gt;
[[Category: Mod_development]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7984</id>
		<title>Game and Unit development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7984"/>
		<updated>2010-09-11T09:49:45Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Units - Modeling, Rigging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
=Game development=&lt;br /&gt;
This information is meant to help newcomers learn how to develop their own games for the Spring Engine.&lt;br /&gt;
==General==&lt;br /&gt;
*[[Mod specification|Game specification]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=6015 What do I need to create a game?]&lt;br /&gt;
*[[Simple Mod Tutorial|Simple Game Tutorial]]&lt;br /&gt;
*[[Freely available and reusable content|Freely available and reusable content for maps and games]]&lt;br /&gt;
&lt;br /&gt;
==Unit Development==&lt;br /&gt;
===Units - Modeling===&lt;br /&gt;
*[http://user.supradigital.org/jcnossen/UpspringInstaller-1.54-EulerAngles.exe Click here to download UpSpring, our content support tool.]&lt;br /&gt;
* [[Basic s3o unit making guide]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=15106 Argh&#039;s UpSpring Easy Workflow Guide]&lt;br /&gt;
* [[Trouble-shooting s3o units]]&lt;br /&gt;
* [http://lassie.student.utwente.nl/vliet/springtut.pdf Maestro&#039;s tutorial of Upspring and textures- very outdated].&lt;br /&gt;
&lt;br /&gt;
====Models - Modeling, UV Mapping====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10612 Wings UV Mapping Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12354 Saving polygons in Wings3d Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10503 Runecrafter&#039;s 3DS Max UV Mapping Tutorial]&lt;br /&gt;
&lt;br /&gt;
====Models - Textures====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=57&amp;amp;t=22392 DDS Textures:  How To]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10947 Greeble Tutorial 1]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12356 Greeble Tutorial 2]&lt;br /&gt;
&lt;br /&gt;
====Models - 3do Files====&lt;br /&gt;
-NOTE- this is an outdated model format used by OTA models (Balanced Annihilation, NOTA, etc.).&amp;lt;br&amp;gt;&lt;br /&gt;
(Note: UpSpring has some problems with empty objects and groundplates)&lt;br /&gt;
*use [http://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=7208&amp;amp;p=126129&amp;amp;hilit=upspring#p126129 UpSpring] and [http://springfiles.com/1755 3doBuilder] to edit those files&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - LUA Files]===&lt;br /&gt;
To edit .lua files you need a text editor. &lt;br /&gt;
*[[Animation-LuaScripting]]&lt;br /&gt;
**[[Animation-LuaCallins]]&lt;br /&gt;
**[[Animation-LuaCallouts]]&lt;br /&gt;
**[[Animation-CobLuaDifferences]]&lt;br /&gt;
**[[lua-animation-basic-tutorial]] to clean&lt;br /&gt;
**[[lua-animation-synthax-usage]] to develop and clean&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - COB/BOS Files]===&lt;br /&gt;
The binary &#039;.cob&#039; file format is obsolete and some &#039;.cob&#039; files might be copyrighed by cavedog. A &#039;.cob&#039; file can be decompiled to see what it is doing or if you have the source, that is a &#039;.bos&#039; file, you can compile it into a &#039;.cob&#039; file.&lt;br /&gt;
&lt;br /&gt;
To edit .bos files you need a program/compiler. The most famous one is [http://jobjol.nl/1384 Scriptor]&lt;br /&gt;
*[[Animation-CobLuaDifferences]]&lt;br /&gt;
*[[Animation-CobOverview]]&lt;br /&gt;
**[[Animation-CobExamples]]&lt;br /&gt;
**[[Animation-CobAnimation]]&lt;br /&gt;
**[[Animation-CobCallins]]&lt;br /&gt;
**[[Animation-CobConstants]]&lt;br /&gt;
**[[Animation-CobThreads]]&lt;br /&gt;
**[[Animation-CobHitByWeaponID]]&lt;br /&gt;
*[http://www.planetannihilation.com/tadc/tut_unit_01_1.asp PlanetAnnihilation] has a nice tutorial&lt;br /&gt;
*[[Units:LuaCOB]] - how to interface COB with LUA&lt;br /&gt;
*[[CEG_For_Units|Game Development:Calling basic CEGs from COB]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?p=132943#132943 GPL-compliant sourcecode, scripting code examples, and other things.]&lt;br /&gt;
&lt;br /&gt;
===Units - FBI Files===&lt;br /&gt;
*[[Units:FBI]]&lt;br /&gt;
*[[All_FBI-variable_values:_min,_max,_default,_type|Units:FBI (variable datatype list)]]&lt;br /&gt;
*[[Unit_Categories]]&lt;br /&gt;
&lt;br /&gt;
===Units - MoveTypes===&lt;br /&gt;
*[[Units:MoveTypes]]&lt;br /&gt;
&lt;br /&gt;
===Weapons - TDF Files===&lt;br /&gt;
*[[Weapon Variables]] : This is the most up to date&lt;br /&gt;
*[[Units:WeaponMainDir]]&lt;br /&gt;
*[[Units:Weapons]] : Various informations about the weapontypes (uncompleted)&lt;br /&gt;
*[[All_Weapons_variable_values:_min%2C_max%2C_default%2C_type|Weapon datatype list]] : All weapon variables min/max/default values and datatypes listed.&lt;br /&gt;
*[[Weapons:Antinukes]]: All about antinukes.&lt;br /&gt;
&lt;br /&gt;
===Explosions===&lt;br /&gt;
*[[CEG]]&lt;br /&gt;
**[[CEG-Calls]] &lt;br /&gt;
**[[CEG-Format]] &lt;br /&gt;
**[[CEG-Classes]] &lt;br /&gt;
**[[CEG-Operators]] &lt;br /&gt;
**[[CEG-Miscellaneous]] &lt;br /&gt;
**[[CEG-OldInfo]]&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
*[[Units:Design]]&lt;br /&gt;
*[[Units:Textures]]&lt;br /&gt;
*[[Units:Buildpics]]&lt;br /&gt;
*[[Units:SideData TDF]]&lt;br /&gt;
*[[Units:Download TDF]] &lt;br /&gt;
*[[Units:FlankingBonus]]&lt;br /&gt;
*[[Mod Development:Armor|Game Development:Armor]]&lt;br /&gt;
*[[Mod Development:Cursors|Game Development:Cursors]]&lt;br /&gt;
*[[Mod Development:Archives|Game Development:Archives]]&lt;br /&gt;
*[[Mod Development:Sidepics|Game Development:Sidepics]]&lt;br /&gt;
*[[CustomUnitIcons|Game Development:Custom unit icons]]&lt;br /&gt;
&lt;br /&gt;
===Legacy Porting Tools===&lt;br /&gt;
====Automated Game Creation====&lt;br /&gt;
* [[TA2Spring]] - Automatically adds and converts Total Annihilation unit packs (.ufo files, etc..) into Spring games (requires a base game for the game rules, XTA is recommended, it is probably not properly supported by current Spring)&lt;br /&gt;
&lt;br /&gt;
[[Category: Unit_development]]&lt;br /&gt;
[[Category: Mod_development]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7983</id>
		<title>Game and Unit development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7983"/>
		<updated>2010-09-11T09:45:17Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Units - Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
=Game development=&lt;br /&gt;
This information is meant to help newcomers learn how to develop their own games for the Spring Engine.&lt;br /&gt;
==General==&lt;br /&gt;
*[[Mod specification|Game specification]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=6015 What do I need to create a game?]&lt;br /&gt;
*[[Simple Mod Tutorial|Simple Game Tutorial]]&lt;br /&gt;
*[[Freely available and reusable content|Freely available and reusable content for maps and games]]&lt;br /&gt;
&lt;br /&gt;
==Unit Development==&lt;br /&gt;
===Units - Modeling, Rigging===&lt;br /&gt;
*[http://user.supradigital.org/jcnossen/UpspringInstaller-1.54-EulerAngles.exe Click here to download UpSpring, our content support tool.]&lt;br /&gt;
* [[Basic s3o unit making guide]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=15106 Argh&#039;s UpSpring Easy Workflow Guide]&lt;br /&gt;
* [[Trouble-shooting s3o units]]&lt;br /&gt;
* [http://lassie.student.utwente.nl/vliet/springtut.pdf Maestro&#039;s tutorial of Upspring and textures- very outdated].&lt;br /&gt;
&lt;br /&gt;
====Models - Modeling, UV Mapping====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10612 Wings UV Mapping Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12354 Saving polygons in Wings3d Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10503 Runecrafter&#039;s 3DS Max UV Mapping Tutorial]&lt;br /&gt;
&lt;br /&gt;
====Models - Textures====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=57&amp;amp;t=22392 DDS Textures:  How To]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10947 Greeble Tutorial 1]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12356 Greeble Tutorial 2]&lt;br /&gt;
&lt;br /&gt;
====Models - 3do Files====&lt;br /&gt;
-NOTE- this is an outdated model format used by OTA models (Balanced Annihilation, NOTA, etc.).&amp;lt;br&amp;gt;&lt;br /&gt;
(Note: UpSpring has some problems with empty objects and groundplates)&lt;br /&gt;
*use [http://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=7208&amp;amp;p=126129&amp;amp;hilit=upspring#p126129 UpSpring] and [http://springfiles.com/1755 3doBuilder] to edit those files&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - LUA Files]===&lt;br /&gt;
To edit .lua files you need a text editor. &lt;br /&gt;
*[[Animation-LuaScripting]]&lt;br /&gt;
**[[Animation-LuaCallins]]&lt;br /&gt;
**[[Animation-LuaCallouts]]&lt;br /&gt;
**[[Animation-CobLuaDifferences]]&lt;br /&gt;
**[[lua-animation-basic-tutorial]] to clean&lt;br /&gt;
**[[lua-animation-synthax-usage]] to develop and clean&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - COB/BOS Files]===&lt;br /&gt;
The binary &#039;.cob&#039; file format is obsolete and some &#039;.cob&#039; files might be copyrighed by cavedog. A &#039;.cob&#039; file can be decompiled to see what it is doing or if you have the source, that is a &#039;.bos&#039; file, you can compile it into a &#039;.cob&#039; file.&lt;br /&gt;
&lt;br /&gt;
To edit .bos files you need a program/compiler. The most famous one is [http://jobjol.nl/1384 Scriptor]&lt;br /&gt;
*[[Animation-CobLuaDifferences]]&lt;br /&gt;
*[[Animation-CobOverview]]&lt;br /&gt;
**[[Animation-CobExamples]]&lt;br /&gt;
**[[Animation-CobAnimation]]&lt;br /&gt;
**[[Animation-CobCallins]]&lt;br /&gt;
**[[Animation-CobConstants]]&lt;br /&gt;
**[[Animation-CobThreads]]&lt;br /&gt;
**[[Animation-CobHitByWeaponID]]&lt;br /&gt;
*[http://www.planetannihilation.com/tadc/tut_unit_01_1.asp PlanetAnnihilation] has a nice tutorial&lt;br /&gt;
*[[Units:LuaCOB]] - how to interface COB with LUA&lt;br /&gt;
*[[CEG_For_Units|Game Development:Calling basic CEGs from COB]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?p=132943#132943 GPL-compliant sourcecode, scripting code examples, and other things.]&lt;br /&gt;
&lt;br /&gt;
===Units - FBI Files===&lt;br /&gt;
*[[Units:FBI]]&lt;br /&gt;
*[[All_FBI-variable_values:_min,_max,_default,_type|Units:FBI (variable datatype list)]]&lt;br /&gt;
*[[Unit_Categories]]&lt;br /&gt;
&lt;br /&gt;
===Units - MoveTypes===&lt;br /&gt;
*[[Units:MoveTypes]]&lt;br /&gt;
&lt;br /&gt;
===Weapons - TDF Files===&lt;br /&gt;
*[[Weapon Variables]] : This is the most up to date&lt;br /&gt;
*[[Units:WeaponMainDir]]&lt;br /&gt;
*[[Units:Weapons]] : Various informations about the weapontypes (uncompleted)&lt;br /&gt;
*[[All_Weapons_variable_values:_min%2C_max%2C_default%2C_type|Weapon datatype list]] : All weapon variables min/max/default values and datatypes listed.&lt;br /&gt;
*[[Weapons:Antinukes]]: All about antinukes.&lt;br /&gt;
&lt;br /&gt;
===Explosions===&lt;br /&gt;
*[[CEG]]&lt;br /&gt;
**[[CEG-Calls]] &lt;br /&gt;
**[[CEG-Format]] &lt;br /&gt;
**[[CEG-Classes]] &lt;br /&gt;
**[[CEG-Operators]] &lt;br /&gt;
**[[CEG-Miscellaneous]] &lt;br /&gt;
**[[CEG-OldInfo]]&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
*[[Units:Design]]&lt;br /&gt;
*[[Units:Textures]]&lt;br /&gt;
*[[Units:Buildpics]]&lt;br /&gt;
*[[Units:SideData TDF]]&lt;br /&gt;
*[[Units:Download TDF]] &lt;br /&gt;
*[[Units:FlankingBonus]]&lt;br /&gt;
*[[Mod Development:Armor|Game Development:Armor]]&lt;br /&gt;
*[[Mod Development:Cursors|Game Development:Cursors]]&lt;br /&gt;
*[[Mod Development:Archives|Game Development:Archives]]&lt;br /&gt;
*[[Mod Development:Sidepics|Game Development:Sidepics]]&lt;br /&gt;
*[[CustomUnitIcons|Game Development:Custom unit icons]]&lt;br /&gt;
&lt;br /&gt;
===Legacy Porting Tools===&lt;br /&gt;
====Automated Game Creation====&lt;br /&gt;
* [[TA2Spring]] - Automatically adds and converts Total Annihilation unit packs (.ufo files, etc..) into Spring games (requires a base game for the game rules, XTA is recommended, it is probably not properly supported by current Spring)&lt;br /&gt;
&lt;br /&gt;
[[Category: Unit_development]]&lt;br /&gt;
[[Category: Mod_development]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Animation-CobLuaDifferences&amp;diff=1947</id>
		<title>Animation-CobLuaDifferences</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Animation-CobLuaDifferences&amp;diff=1947"/>
		<updated>2010-09-11T09:34:51Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Overview of differences between COB unit scripts and Lua unit scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview of differences between COB unit scripts and Lua unit scripts ==&lt;br /&gt;
* using Lua for scripting units, one can change the script while the game is running and reload it using &#039;/luarules reload&#039; when in cheat mode. Using COB/BOS one would have to restart the game&lt;br /&gt;
* Units of measurement: Lua uses elmos and radians consistently.&lt;br /&gt;
* Coordinate system: In Lua, coordinate system is same as world coordinate system, with all rotations right-handed. In COB, the moves along the x-axis and rotations around the z-axis have a different sign.&lt;br /&gt;
* In Lua, &#039;&#039;Killed&#039;&#039; gets recentDamage and maxHealth as separate arguments. In COB, you get only the ratio recentDamage/maxHealth*100.&lt;br /&gt;
* Where COB uses &#039;&#039;SetMaxReloadTime&#039;&#039;, Lua uses &#039;&#039;GetMaxReloadTime&#039;&#039;.&lt;br /&gt;
* Where COB uses &#039;&#039;QueryLandingPadCount&#039;&#039; and &#039;&#039;QueryLandingPad&#039;&#039;, Lua uses &#039;&#039;QueryLandingPad&#039;&#039;&#039;s&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* The x and z arguments to &#039;&#039;HitByWeapon&#039;&#039;, &#039;&#039;HitByWeaponId&#039;&#039; and &#039;&#039;RockUnit&#039;&#039; are given in (x, z) order in Lua, and the opposite order in COB.&lt;br /&gt;
* &#039;&#039;BeginTransport&#039;&#039; and &#039;&#039;EndTransport&#039;&#039; take the height of the unit in COB and the unitID in Lua. (Use &#039;local height = Spring.GetUnitHeight(unitID)&#039; to get the height.)&lt;br /&gt;
* &#039;&#039;TransportDrop&#039;&#039; gets PACKXZ(x,z) in COB; in Lua, it gets the entire vector (x, y, z) as three arguments.&lt;br /&gt;
* Where COB uses &#039;&#039;SetSpeed&#039;&#039; and &#039;&#039;SetDirection&#039;&#039;, Lua uses &#039;&#039;WindChanged&#039;&#039; and &#039;&#039;ExtractionRateChanged&#039;&#039;.&lt;br /&gt;
* Lua does not have &#039;&#039;Go&#039;&#039; (this is called for activated extractors immediately after each &#039;&#039;SetSpeed&#039;&#039; call.)&lt;br /&gt;
[[Category:Unit_development]]&lt;br /&gt;
[[Category:Animation]]&lt;br /&gt;
[[Category:Lua]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7982</id>
		<title>Game and Unit development</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Game_and_Unit_development&amp;diff=7982"/>
		<updated>2010-09-11T09:32:18Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Scripting and Animation - COB/BOS Files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Engine_Development|Development]] &amp;lt; {{FULLPAGENAME}}&lt;br /&gt;
&lt;br /&gt;
=Game development=&lt;br /&gt;
This information is meant to help newcomers learn how to develop their own games for the Spring Engine.&lt;br /&gt;
==General==&lt;br /&gt;
*[[Mod specification|Game specification]]&amp;lt;br&amp;gt;&lt;br /&gt;
*[http://springrts.com/phpbb/viewtopic.php?t=6015 What do I need to create a game?]&lt;br /&gt;
*[[Simple Mod Tutorial|Simple Game Tutorial]]&lt;br /&gt;
*[[Freely available and reusable content|Freely available and reusable content for maps and games]]&lt;br /&gt;
&lt;br /&gt;
==Unit Development==&lt;br /&gt;
===Units - Models===&lt;br /&gt;
*[http://user.supradigital.org/jcnossen/UpspringInstaller-1.54-EulerAngles.exe Click here to download UpSpring, our content support tool.]&lt;br /&gt;
* [[Basic s3o unit making guide]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=15106 Argh&#039;s UpSpring Easy Workflow Guide]&lt;br /&gt;
* [[Trouble-shooting s3o units]]&lt;br /&gt;
* [http://lassie.student.utwente.nl/vliet/springtut.pdf Maestro&#039;s tutorial of Upspring and textures- very outdated].&lt;br /&gt;
&lt;br /&gt;
====Models - Modeling, UV Mapping====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10612 Wings UV Mapping Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12354 Saving polygons in Wings3d Tutorial]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10503 Runecrafter&#039;s 3DS Max UV Mapping Tutorial]&lt;br /&gt;
&lt;br /&gt;
====Models - Textures====&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=57&amp;amp;t=22392 DDS Textures:  How To]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?t=10947 Greeble Tutorial 1]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?f=9&amp;amp;t=12356 Greeble Tutorial 2]&lt;br /&gt;
&lt;br /&gt;
====Models - 3do Files====&lt;br /&gt;
-NOTE- this is an outdated model format used by OTA models (Balanced Annihilation, NOTA, etc.).&amp;lt;br&amp;gt;&lt;br /&gt;
(Note: UpSpring has some problems with empty objects and groundplates)&lt;br /&gt;
*use [http://springrts.com/phpbb/viewtopic.php?f=12&amp;amp;t=7208&amp;amp;p=126129&amp;amp;hilit=upspring#p126129 UpSpring] and [http://springfiles.com/1755 3doBuilder] to edit those files&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - LUA Files]===&lt;br /&gt;
To edit .lua files you need a text editor. &lt;br /&gt;
*[[Animation-LuaScripting]]&lt;br /&gt;
**[[Animation-LuaCallins]]&lt;br /&gt;
**[[Animation-LuaCallouts]]&lt;br /&gt;
**[[Animation-CobLuaDifferences]]&lt;br /&gt;
**[[lua-animation-basic-tutorial]] to clean&lt;br /&gt;
**[[lua-animation-synthax-usage]] to develop and clean&lt;br /&gt;
&lt;br /&gt;
===[http://springrts.com/wiki/Category:Animation Scripting and Animation - COB/BOS Files]===&lt;br /&gt;
The binary &#039;.cob&#039; file format is obsolete and some &#039;.cob&#039; files might be copyrighed by cavedog. A &#039;.cob&#039; file can be decompiled to see what it is doing or if you have the source, that is a &#039;.bos&#039; file, you can compile it into a &#039;.cob&#039; file.&lt;br /&gt;
&lt;br /&gt;
To edit .bos files you need a program/compiler. The most famous one is [http://jobjol.nl/1384 Scriptor]&lt;br /&gt;
*[[Animation-CobLuaDifferences]]&lt;br /&gt;
*[[Animation-CobOverview]]&lt;br /&gt;
**[[Animation-CobExamples]]&lt;br /&gt;
**[[Animation-CobAnimation]]&lt;br /&gt;
**[[Animation-CobCallins]]&lt;br /&gt;
**[[Animation-CobConstants]]&lt;br /&gt;
**[[Animation-CobThreads]]&lt;br /&gt;
**[[Animation-CobHitByWeaponID]]&lt;br /&gt;
*[http://www.planetannihilation.com/tadc/tut_unit_01_1.asp PlanetAnnihilation] has a nice tutorial&lt;br /&gt;
*[[Units:LuaCOB]] - how to interface COB with LUA&lt;br /&gt;
*[[CEG_For_Units|Game Development:Calling basic CEGs from COB]]&lt;br /&gt;
* [http://springrts.com/phpbb/viewtopic.php?p=132943#132943 GPL-compliant sourcecode, scripting code examples, and other things.]&lt;br /&gt;
&lt;br /&gt;
===Units - FBI Files===&lt;br /&gt;
*[[Units:FBI]]&lt;br /&gt;
*[[All_FBI-variable_values:_min,_max,_default,_type|Units:FBI (variable datatype list)]]&lt;br /&gt;
*[[Unit_Categories]]&lt;br /&gt;
&lt;br /&gt;
===Units - MoveTypes===&lt;br /&gt;
*[[Units:MoveTypes]]&lt;br /&gt;
&lt;br /&gt;
===Weapons - TDF Files===&lt;br /&gt;
*[[Weapon Variables]] : This is the most up to date&lt;br /&gt;
*[[Units:WeaponMainDir]]&lt;br /&gt;
*[[Units:Weapons]] : Various informations about the weapontypes (uncompleted)&lt;br /&gt;
*[[All_Weapons_variable_values:_min%2C_max%2C_default%2C_type|Weapon datatype list]] : All weapon variables min/max/default values and datatypes listed.&lt;br /&gt;
*[[Weapons:Antinukes]]: All about antinukes.&lt;br /&gt;
&lt;br /&gt;
===Explosions===&lt;br /&gt;
*[[CEG]]&lt;br /&gt;
**[[CEG-Calls]] &lt;br /&gt;
**[[CEG-Format]] &lt;br /&gt;
**[[CEG-Classes]] &lt;br /&gt;
**[[CEG-Operators]] &lt;br /&gt;
**[[CEG-Miscellaneous]] &lt;br /&gt;
**[[CEG-OldInfo]]&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
*[[Units:Design]]&lt;br /&gt;
*[[Units:Textures]]&lt;br /&gt;
*[[Units:Buildpics]]&lt;br /&gt;
*[[Units:SideData TDF]]&lt;br /&gt;
*[[Units:Download TDF]] &lt;br /&gt;
*[[Units:FlankingBonus]]&lt;br /&gt;
*[[Mod Development:Armor|Game Development:Armor]]&lt;br /&gt;
*[[Mod Development:Cursors|Game Development:Cursors]]&lt;br /&gt;
*[[Mod Development:Archives|Game Development:Archives]]&lt;br /&gt;
*[[Mod Development:Sidepics|Game Development:Sidepics]]&lt;br /&gt;
*[[CustomUnitIcons|Game Development:Custom unit icons]]&lt;br /&gt;
&lt;br /&gt;
===Legacy Porting Tools===&lt;br /&gt;
====Automated Game Creation====&lt;br /&gt;
* [[TA2Spring]] - Automatically adds and converts Total Annihilation unit packs (.ufo files, etc..) into Spring games (requires a base game for the game rules, XTA is recommended, it is probably not properly supported by current Spring)&lt;br /&gt;
&lt;br /&gt;
[[Category: Unit_development]]&lt;br /&gt;
[[Category: Mod_development]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Animation-LuaScripting&amp;diff=2088</id>
		<title>Animation-LuaScripting</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Animation-LuaScripting&amp;diff=2088"/>
		<updated>2010-09-10T18:30:46Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Further reading */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting started ==&lt;br /&gt;
&lt;br /&gt;
=== Setup ===&lt;br /&gt;
&lt;br /&gt;
Lua unit animation is implemented partially in the engine, and partially in a Lua gadget which is shipped with Spring in springcontent.sdz. By default, this gadget is not loaded, so a bit of setup is required to enable Lua unit scripts.&lt;br /&gt;
&lt;br /&gt;
To enable Lua unit scripts, create a file &#039;&#039;LuaRules/Gadgets/unit_script.lua&#039;&#039;, and paste the following into it:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|style=&amp;quot;background: #41545c; border: 1px #aaa solid;&amp;quot;|&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
 -- Enables Lua unit scripts by including the gadget from springcontent.sdz&lt;br /&gt;
 &lt;br /&gt;
 -- Uncomment to override the directory which is scanned for *.lua unit scripts.&lt;br /&gt;
 --UNITSCRIPT_DIR = &amp;quot;scripts/&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 return include(&amp;quot;LuaGadgets/Gadgets/unit_script.lua&amp;quot;)&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, do check whether your [http://github.com/spring/spring/blob/master/installer/builddata/springcontent/LuaGadgets/system.lua &#039;&#039;LuaRules/system.lua&#039;&#039;] is up to date, if you copied this verbatim into your game. (Must be from a later date than 5 september 2009)&lt;br /&gt;
&lt;br /&gt;
Now this is done, you can start putting *.lua files in your &#039;&#039;scripts/&#039;&#039; folder.&lt;br /&gt;
&lt;br /&gt;
=== Workflow ===&lt;br /&gt;
&lt;br /&gt;
Lua has the major advantage over BOS/COB that you do not need to compile it, which can reduce the time to develop scripts quite a bit.&lt;br /&gt;
&lt;br /&gt;
To save further time, do not restart Spring for each small change. Simply run Spring in an window so you can easily switch between your editor and Spring, and use &#039;&#039;/luarules reload&#039;&#039; to reload all Lua unit scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
&lt;br /&gt;
* [http://tvo.github.com/spring/2010/04/19/lus-stumpy.html Stumpy tutorial]&lt;br /&gt;
* [http://tvo.github.com/spring/2010/04/26/lus-stumpy-2.html Polishing the stumpy]&lt;br /&gt;
* [[Animation-LuaCallins]]&lt;br /&gt;
* [[Animation-LuaCallouts]]&lt;br /&gt;
&lt;br /&gt;
== TODO ==&lt;br /&gt;
&lt;br /&gt;
* Conversion tool&lt;br /&gt;
* Performance measurements&lt;br /&gt;
* Advantages&lt;br /&gt;
* Link to article in piro&#039;s magazine&lt;br /&gt;
* Coordinate system (axis, direction of rotation, picture)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Animation]]&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Balanced_Annihilation&amp;diff=2399</id>
		<title>Balanced Annihilation</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Balanced_Annihilation&amp;diff=2399"/>
		<updated>2010-09-05T10:18:28Z</updated>

		<summary type="html">&lt;p&gt;Mrz: /* Legal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Mods]][[category:Balanced Annihilation]]&lt;br /&gt;
&#039;&#039;&#039;[[Games|&amp;lt;--Back to Games]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: this wiki page sucks.  Please help update it if you know what you&#039;re talking about.  In the meantime please check the [http://springrts.com/phpbb/viewforum.php?f=44 forums].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
BA has three basic principles:&lt;br /&gt;
* &#039;&#039;&#039;Refined Original Total Annihilation:&#039;&#039;&#039; BA&#039;s lineage traces back to fan mods of the original Total Annihilation.  It feels similar, and play is more balanced for diverse multiplayer strategies.&lt;br /&gt;
* &#039;&#039;&#039;Stable gameplay:&#039;&#039;&#039; BA has &amp;lt;i&amp;gt;matured&amp;lt;/i&amp;gt; through several years of playtesting.  New versions don&#039;t drastically alter gameplay.&lt;br /&gt;
* &#039;&#039;&#039;Balance:&#039;&#039;&#039; Every unit has a role, and no unit has every role.  Very few units get truly obsolete as a game progresses.&lt;br /&gt;
&lt;br /&gt;
===Legal===&lt;br /&gt;
As parts of this mod originate from none-free sources there is an ongoing attempt to find and replace units with free models. See the forum discussion as:&lt;br /&gt;
&lt;br /&gt;
http://springrts.com/phpbb/viewtopic.php?f=44&amp;amp;t=22234&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Using_Selections|Selections/Groups/Group Commands/Group AI]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Giving_Orders|Giving Units Orders]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Command_Reference|Command Quick Reference]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://sparcman.net/Documents/Spring_Control_Reference.pdf Printable Command Reference PDF download]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Camera_Control | Using the Cameras]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Chat|Chat, Cheats, and Text Commands]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Doodles|Map drawing/doodles]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Custom_Keys| Customized key shortcuts/bindings and the key/selection editor]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Cooperative play===&lt;br /&gt;
BA includes a cooperative play mode for players to work as an even closer team.  When the cooperative mod option is enabled, players who take the same team id will form a co-op.  Players who are part of the same co-op completely share everything - all resources are pooled, and any unit within the co-op can be commanded by anyone within the co-op.&lt;br /&gt;
&lt;br /&gt;
Each player within the co-op starts with their own commander, and must select their own start point before clicking ready - if the co-op readies before a player has selected a start location, then two commanders will spawn on the same spot.&lt;br /&gt;
&lt;br /&gt;
Once the game has started, it is especially important for co-oping players to communicate their overall strategy so that units don&#039;t receive conflicting orders.  It&#039;s also somewhat easier to overspend - in a co-op of three, players might feel like they have triple the normal amount of resources.&lt;br /&gt;
&lt;br /&gt;
In practice, co-op mode tends to work best when done with friends, clanmates, or other (willing) strangers.  However, even among voluntary participants experience has shown that large co-ops of 5 or more players tend to have at least one person getting upset due to their orders being canceled or similar (often unintentional) issues.  Unless communication can be improved through [[mumble]], it is recommended to split large co-oping teams into multiple, smaller co-ops.&lt;br /&gt;
&lt;br /&gt;
If cooperative mode is disabled, then players who share the same team id will instead share control of the same commander.  This is called &amp;quot;comm-sharing&amp;quot; and is available in every mod.&lt;br /&gt;
&lt;br /&gt;
===Chicken Defense===&lt;br /&gt;
Balanced Annihilation features a chicken defense subversion, designed as a BA version of tower defense.&lt;br /&gt;
&lt;br /&gt;
===Strategy===&lt;br /&gt;
(sections to be filled in)&lt;br /&gt;
====Starting out====&lt;br /&gt;
Try to pick a start position near a good amount of metal patches.  Most maps are designed to have 3 patches near designated starting points.  You should build a few metal extractors (&amp;quot;mexes&amp;quot;) and some energy (2 or 3 solar plants) before starting a factory. Afterwards, most players build a light laser tower or two to prevent early scouts from running behind the base and destroying the economy.&lt;br /&gt;
====Tier 1====&lt;br /&gt;
=====Vehicle lab=====&lt;br /&gt;
=====K-bot lab=====&lt;br /&gt;
=====Aircraft Plant=====&lt;br /&gt;
=====Shipyard=====&lt;br /&gt;
====Com Pushing====&lt;br /&gt;
Com pushing is the strategy of moving your commander towards the front lines after building your initial base.  The advantage is that you can claim territory and metal patches early (by building light laser towers).  Small groups of enemies can also be destroyed with the commander&#039;s D-gun.  The commander also functions as an excellent repairman for damaged units and reclaimer of wrecks.&lt;br /&gt;
====Teching (&amp;quot;Going T2&amp;quot;)====&lt;br /&gt;
====Managing units (&amp;quot;Micro&amp;quot;)====&lt;br /&gt;
While BA is a largely strategic game, there is considerable value to managing your units tactics.  Some things to consider:&lt;br /&gt;
*&#039;&#039;&#039;Repair damaged units&#039;&#039;&#039;: Repairing is virtually free compared with building a new unit from scratch, so if you can keep a unit alive by moving it off the front line a bit once it becomes damaged you can get far more on the field.&lt;br /&gt;
*&#039;&#039;&#039;Surround the enemy&#039;&#039;&#039;: Units in BA suffer extra damage if they are being attacked from multiple directions at once.  At the extreme, two units standing opposite a tank will do 50% more damage than two units standing next to eachother.&lt;br /&gt;
*&#039;&#039;&#039;Use your range (&amp;quot;kiting&amp;quot;)&#039;&#039;&#039;: If you outrange the enemy and have some territory to maneuver in, you can gain a significant advantage by moving away while shooting.&lt;br /&gt;
*&#039;&#039;&#039;Cross the T&#039;&#039;&#039;: One of the best positions to be in is where your units are all firing and only one of the enemies is.  If you&#039;re enemy has lined up their units, for instance, you can attack one edge of the line at a time rather than hitting them all at once.&lt;br /&gt;
*&#039;&#039;&#039;Attack in waves&#039;&#039;&#039;: One of the worst positions to be in is where the enemy is crossing your T. Implicitly, this can happen when you order units that are far apart into enemy territory and they arrive at different times.  Similarly, setting a rally point of a factory into the enemy&#039;s defensive line will often result in your units dying one at a time.  Instead, set a rally point a safe distance away, and once you have sufficient units attack in mass.&lt;br /&gt;
&lt;br /&gt;
====Economy====&lt;br /&gt;
If you have more economy than the enemy, you can get more or better units.  This is how, ultimately, you win.&lt;br /&gt;
*&#039;&#039;&#039;Reclaim wreckage and map features&#039;&#039;&#039;: Unit wrecks are an excellent source of metal, and map-provided rocks and trees are free resources.  In many cases it can be worth sacrificing a builder to claim wreckage in hostile territory - usually they pay for their own cost as well as deny the wreck to the enemy.&lt;br /&gt;
*&#039;&#039;&#039;Use (or share) your resources&#039;&#039;&#039;: Resources kept in storage are essentially being wasted.  They are a symptom of not having enough &#039;&#039;build-power&#039;&#039;, or construction units.  If you&#039;re not building more units, extra resources can instead be invested into even more economy.  Many times your allies will have extra buildpower that you don&#039;t - in such cases it is often very efficient to simply give your resources away by lowering the share threshold (click in the middle of your metal or energy bar).&lt;br /&gt;
*&#039;&#039;&#039;Take advantage of metal patches and geothermal vents&#039;&#039;&#039;: Metal extractors are much, much cheaper than powering metal makers.  This remains true at tier 2, where moho mines become vastly cheaper than fusion plants and moho metal makers.  Geothermal spots are similarly the cheapest source of energy in the game - a moho geo, for instance, produces energy at less than half the cost of a fusion plant.  This means that, in most cases, it&#039;s worth walking a considerable distance to take advantage of metal/geo spots you control rather than building economy in your base.&lt;br /&gt;
*&#039;&#039;&#039;Use nano-turrets sparingly&#039;&#039;&#039;: Nano-turrets can provide extra build power, however they themselves cost a considerable amount of metal and energy, especially in the early game.  If you are already metal or energy stalling there is no point to building more of them - doing so will only slow down production of the units or economy you&#039;re ultimately trying to make with them.&lt;br /&gt;
&lt;br /&gt;
===Main differences from Original Total Annihilation===&lt;br /&gt;
BA is similar to the Original Total Annihilation, and if you&#039;ve played the original you should feel quite at home, however there are some important differences for OTA players to note:&lt;br /&gt;
* The guardian (tier 1 plasma turret) isn&#039;t a very useful defense unit for its cost; it&#039;s more of a forward artillery piece.  It also has a high trajectory mode.&lt;br /&gt;
* Most of the AA units in the game shoot &#039;&#039;only&#039;&#039; at planes rather than both planes and ground.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
*[http://springrts.com/phpbb/viewforum.php?f=44 Balanced Annihilation Forum]&lt;br /&gt;
*(todo): latest download&lt;br /&gt;
*(todo): latest chicken download&lt;br /&gt;
*(todo): latest experimental download&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
Balanced Annihilation started as a fork of [[Absolute Annihilation]].  It is currently maintained by TheFatController, and was previously maintained by Noize.  (this is a very incomplete history)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Games|&amp;lt;--Back to Games]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
	<entry>
		<id>https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Balanced_Annihilation&amp;diff=2398</id>
		<title>Balanced Annihilation</title>
		<link rel="alternate" type="text/html" href="https://springrts-wiki.p2004a.com/mediawiki/index.php?title=Balanced_Annihilation&amp;diff=2398"/>
		<updated>2010-09-05T10:17:53Z</updated>

		<summary type="html">&lt;p&gt;Mrz: legal discussion added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Mods]][[category:Balanced Annihilation]]&lt;br /&gt;
&#039;&#039;&#039;[[Games|&amp;lt;--Back to Games]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note: this wiki page sucks.  Please help update it if you know what you&#039;re talking about.  In the meantime please check the [http://springrts.com/phpbb/viewforum.php?f=44 forums].&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
BA has three basic principles:&lt;br /&gt;
* &#039;&#039;&#039;Refined Original Total Annihilation:&#039;&#039;&#039; BA&#039;s lineage traces back to fan mods of the original Total Annihilation.  It feels similar, and play is more balanced for diverse multiplayer strategies.&lt;br /&gt;
* &#039;&#039;&#039;Stable gameplay:&#039;&#039;&#039; BA has &amp;lt;i&amp;gt;matured&amp;lt;/i&amp;gt; through several years of playtesting.  New versions don&#039;t drastically alter gameplay.&lt;br /&gt;
* &#039;&#039;&#039;Balance:&#039;&#039;&#039; Every unit has a role, and no unit has every role.  Very few units get truly obsolete as a game progresses.&lt;br /&gt;
&lt;br /&gt;
===Legal===&lt;br /&gt;
As parts of this mod originate from none-free sources there is an ongoing attempt to replace find and replace units with free models. See the forum discussion as:&lt;br /&gt;
&lt;br /&gt;
http://springrts.com/phpbb/viewtopic.php?f=44&amp;amp;t=22234&lt;br /&gt;
&lt;br /&gt;
=== Controls ===&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Using_Selections|Selections/Groups/Group Commands/Group AI]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Giving_Orders|Giving Units Orders]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Command_Reference|Command Quick Reference]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[http://sparcman.net/Documents/Spring_Control_Reference.pdf Printable Command Reference PDF download]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Camera_Control | Using the Cameras]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Chat|Chat, Cheats, and Text Commands]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Doodles|Map drawing/doodles]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Balanced_Annihilation:Custom_Keys| Customized key shortcuts/bindings and the key/selection editor]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Cooperative play===&lt;br /&gt;
BA includes a cooperative play mode for players to work as an even closer team.  When the cooperative mod option is enabled, players who take the same team id will form a co-op.  Players who are part of the same co-op completely share everything - all resources are pooled, and any unit within the co-op can be commanded by anyone within the co-op.&lt;br /&gt;
&lt;br /&gt;
Each player within the co-op starts with their own commander, and must select their own start point before clicking ready - if the co-op readies before a player has selected a start location, then two commanders will spawn on the same spot.&lt;br /&gt;
&lt;br /&gt;
Once the game has started, it is especially important for co-oping players to communicate their overall strategy so that units don&#039;t receive conflicting orders.  It&#039;s also somewhat easier to overspend - in a co-op of three, players might feel like they have triple the normal amount of resources.&lt;br /&gt;
&lt;br /&gt;
In practice, co-op mode tends to work best when done with friends, clanmates, or other (willing) strangers.  However, even among voluntary participants experience has shown that large co-ops of 5 or more players tend to have at least one person getting upset due to their orders being canceled or similar (often unintentional) issues.  Unless communication can be improved through [[mumble]], it is recommended to split large co-oping teams into multiple, smaller co-ops.&lt;br /&gt;
&lt;br /&gt;
If cooperative mode is disabled, then players who share the same team id will instead share control of the same commander.  This is called &amp;quot;comm-sharing&amp;quot; and is available in every mod.&lt;br /&gt;
&lt;br /&gt;
===Chicken Defense===&lt;br /&gt;
Balanced Annihilation features a chicken defense subversion, designed as a BA version of tower defense.&lt;br /&gt;
&lt;br /&gt;
===Strategy===&lt;br /&gt;
(sections to be filled in)&lt;br /&gt;
====Starting out====&lt;br /&gt;
Try to pick a start position near a good amount of metal patches.  Most maps are designed to have 3 patches near designated starting points.  You should build a few metal extractors (&amp;quot;mexes&amp;quot;) and some energy (2 or 3 solar plants) before starting a factory. Afterwards, most players build a light laser tower or two to prevent early scouts from running behind the base and destroying the economy.&lt;br /&gt;
====Tier 1====&lt;br /&gt;
=====Vehicle lab=====&lt;br /&gt;
=====K-bot lab=====&lt;br /&gt;
=====Aircraft Plant=====&lt;br /&gt;
=====Shipyard=====&lt;br /&gt;
====Com Pushing====&lt;br /&gt;
Com pushing is the strategy of moving your commander towards the front lines after building your initial base.  The advantage is that you can claim territory and metal patches early (by building light laser towers).  Small groups of enemies can also be destroyed with the commander&#039;s D-gun.  The commander also functions as an excellent repairman for damaged units and reclaimer of wrecks.&lt;br /&gt;
====Teching (&amp;quot;Going T2&amp;quot;)====&lt;br /&gt;
====Managing units (&amp;quot;Micro&amp;quot;)====&lt;br /&gt;
While BA is a largely strategic game, there is considerable value to managing your units tactics.  Some things to consider:&lt;br /&gt;
*&#039;&#039;&#039;Repair damaged units&#039;&#039;&#039;: Repairing is virtually free compared with building a new unit from scratch, so if you can keep a unit alive by moving it off the front line a bit once it becomes damaged you can get far more on the field.&lt;br /&gt;
*&#039;&#039;&#039;Surround the enemy&#039;&#039;&#039;: Units in BA suffer extra damage if they are being attacked from multiple directions at once.  At the extreme, two units standing opposite a tank will do 50% more damage than two units standing next to eachother.&lt;br /&gt;
*&#039;&#039;&#039;Use your range (&amp;quot;kiting&amp;quot;)&#039;&#039;&#039;: If you outrange the enemy and have some territory to maneuver in, you can gain a significant advantage by moving away while shooting.&lt;br /&gt;
*&#039;&#039;&#039;Cross the T&#039;&#039;&#039;: One of the best positions to be in is where your units are all firing and only one of the enemies is.  If you&#039;re enemy has lined up their units, for instance, you can attack one edge of the line at a time rather than hitting them all at once.&lt;br /&gt;
*&#039;&#039;&#039;Attack in waves&#039;&#039;&#039;: One of the worst positions to be in is where the enemy is crossing your T. Implicitly, this can happen when you order units that are far apart into enemy territory and they arrive at different times.  Similarly, setting a rally point of a factory into the enemy&#039;s defensive line will often result in your units dying one at a time.  Instead, set a rally point a safe distance away, and once you have sufficient units attack in mass.&lt;br /&gt;
&lt;br /&gt;
====Economy====&lt;br /&gt;
If you have more economy than the enemy, you can get more or better units.  This is how, ultimately, you win.&lt;br /&gt;
*&#039;&#039;&#039;Reclaim wreckage and map features&#039;&#039;&#039;: Unit wrecks are an excellent source of metal, and map-provided rocks and trees are free resources.  In many cases it can be worth sacrificing a builder to claim wreckage in hostile territory - usually they pay for their own cost as well as deny the wreck to the enemy.&lt;br /&gt;
*&#039;&#039;&#039;Use (or share) your resources&#039;&#039;&#039;: Resources kept in storage are essentially being wasted.  They are a symptom of not having enough &#039;&#039;build-power&#039;&#039;, or construction units.  If you&#039;re not building more units, extra resources can instead be invested into even more economy.  Many times your allies will have extra buildpower that you don&#039;t - in such cases it is often very efficient to simply give your resources away by lowering the share threshold (click in the middle of your metal or energy bar).&lt;br /&gt;
*&#039;&#039;&#039;Take advantage of metal patches and geothermal vents&#039;&#039;&#039;: Metal extractors are much, much cheaper than powering metal makers.  This remains true at tier 2, where moho mines become vastly cheaper than fusion plants and moho metal makers.  Geothermal spots are similarly the cheapest source of energy in the game - a moho geo, for instance, produces energy at less than half the cost of a fusion plant.  This means that, in most cases, it&#039;s worth walking a considerable distance to take advantage of metal/geo spots you control rather than building economy in your base.&lt;br /&gt;
*&#039;&#039;&#039;Use nano-turrets sparingly&#039;&#039;&#039;: Nano-turrets can provide extra build power, however they themselves cost a considerable amount of metal and energy, especially in the early game.  If you are already metal or energy stalling there is no point to building more of them - doing so will only slow down production of the units or economy you&#039;re ultimately trying to make with them.&lt;br /&gt;
&lt;br /&gt;
===Main differences from Original Total Annihilation===&lt;br /&gt;
BA is similar to the Original Total Annihilation, and if you&#039;ve played the original you should feel quite at home, however there are some important differences for OTA players to note:&lt;br /&gt;
* The guardian (tier 1 plasma turret) isn&#039;t a very useful defense unit for its cost; it&#039;s more of a forward artillery piece.  It also has a high trajectory mode.&lt;br /&gt;
* Most of the AA units in the game shoot &#039;&#039;only&#039;&#039; at planes rather than both planes and ground.&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
*[http://springrts.com/phpbb/viewforum.php?f=44 Balanced Annihilation Forum]&lt;br /&gt;
*(todo): latest download&lt;br /&gt;
*(todo): latest chicken download&lt;br /&gt;
*(todo): latest experimental download&lt;br /&gt;
&lt;br /&gt;
===History===&lt;br /&gt;
Balanced Annihilation started as a fork of [[Absolute Annihilation]].  It is currently maintained by TheFatController, and was previously maintained by Noize.  (this is a very incomplete history)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Games|&amp;lt;--Back to Games]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mrz</name></author>
	</entry>
</feed>