Difference between revisions of "Archive/Glest Advanced Engine"

From MegaGlest
Jump to navigation Jump to search
(→‎Upgrades: removed other tags that are now optional)
 
m (LittleJohn moved page Glest Advanced Engine to Archive/Glest Advanced Engine without leaving a redirect)
 
(96 intermediate revisions by 11 users not shown)
Line 1: Line 1:
Effects & Upgrades is a tentative name for a code patch that extends upon the existing framework for upgrades and adds the the ability to cause temporary effects on a unit. The code is currently in pre-alpha state.
+
{{Infobox
=Upgrades=
+
|Box title = [http://sourceforge.net/projects/glestae/ Glest Advanced Engine]
The upgrade xml format is extended while retaining legacy support for existing upgrades. This is in the file  <tech-tree>/factions/<faction-name>/upgrades/<upgrade-name>/<upgrade-name>.xml. The new format cleans up the xml file somewhat by not requiring you to have nodes present for attributes your upgrade does not effect, while extending upon the number of attributes you can modify with an upgrade. In addition, attributes can be modified using a multiplier as well as a static value, allowing you to scale the effect across units of varying power.
+
|image = File:Gaesplash.png
 +
|imagewidth = 250x250
 +
|Row 1 title = Latest Version:
 +
|Row 1 info = [http://glest.org/glest_board/index.php?topic=6283.0 0.3.2] <small>(12 December 2010; {{How long ago|year=2010|month=12|day=12}} ago)</small>
 +
|Row 2 title = Homepage:
 +
|Row 2 info = [http://sourceforge.net/projects/glestae/ Homepage]
 +
|Row 3 title = Downloads:
 +
|Row 3 info = [http://sourceforge.net/projects/glestae/files/0.3.2/ Download List]
 +
}}
  
The following is a sample upgrade.xml file which does the exact same thing as the existing "Energy Sharpening" upgrade.
+
[[File:GAE_Icon.png|left|75px]]
 +
'''G'''lest '''A'''dvanced '''E'''ngine ('''GAE''') is a fork/modification of the '''R'''eal '''T'''ime '''S'''trategy ('''RTS''') game [[Glest]]. GAE may be downloaded [http://sourceforge.net/projects/glestae/files here].
  
<?xml version="1.0" standalone="no"?>
+
==History==
<upgrade>
+
GAE was originally started by [http://glest.org/glest_board/index.php?action=profile;u=4709 Daniel.Santos], as a desire to create a special engine for the then-work-in-progress, [[Four Path Magitech]], and started with offering auto returning units and other small enhancements, growing to eventually try to accompany the four path magitech. When four path magitech was abandoned, it was later picked up as an alternative way to play glest, and now is an engine with its own unique mods which work specifically on GAE (namely, [[Military]] and [[Malevolent Rising]]). To date, it is still actively developed by the GAE team, who's current active members include Silnarm, Hailstone, and Yggdrasil.
    <image path="images/energy_sharpening.bmp"/>
 
    <image-cancel path="../ancient_summoning/images/magic_upgrade_cancel.bmp"/>
 
    <time value="400"/>
 
    <resource-requirements>
 
        <resource name="gold" amount="250"/>
 
        <resource name="wood" amount="200"/>
 
        <resource name="stone" amount="150"/>
 
    </resource-requirements>
 
    <effects>
 
        <unit name="battlemage"/>
 
        <unit name="summoner"/>
 
        <unit name="archmage"/>
 
    </effects>
 
    <static-modifiers>
 
        <attack-strength value="50"/>
 
        <attack-range value="1"/>
 
    </static-modifiers>
 
</upgrade>
 
  
Note that nodes under &lt;static-modifiers&gt; and &lt;multipliers&gt; are optional and default to 0 and 1.0, respectively. If you wanted to increase the attack strength by 30% instead, you could use the following code for the static-modifiers and multipliers tags.
+
== Features ==
 +
{{Main|GAE/Features}}
 +
A list of features in GAE:
 +
*Only loads the factions used in a battle.
 +
*Unit effects and emanations.
 +
*Unit pets.
 +
*Shroud of darkness
 +
*[[Particles]] for skills and effects.
 +
*Support for water based units
 +
*Support for transport units
 +
*Teleport and cloaking skills
 +
*Massive amount of new Lua commands with a dedicated Lua console.
 +
*Improved unit levels system.
 +
*Improved pathfinding for units.
 +
*Subfactions
 +
*New GUI with tool tips and faction logos
 +
*Support for normal maps and shaders
 +
*Support for zipped mod files via Physfs
 +
*Patrol, guard and autorepair skills.
 +
*Multiple music tracks per faction.
 +
*Many general bug fixes and improvements.
 +
*Command queuing
 +
*Games can be saved and loaded
  
    <static-modifiers>
+
==Guide==
        <attack-range value="1"/>
+
* The [[GAE/Guide|GAE Guide]] provides more of a guided tour through GAE's extended functionality
    </static-modifiers>
+
* The [http://sourceforge.net/apps/trac/glestae/wiki trac wiki] provides other valuable information about GAE.
    <multipliers>
+
* The [[GAE/CodingConventions|GAE Coding Conventions]] provides instructions for how to layout and modify/add code
        <attack-strength value="1.3"/>
 
    </multipliers>
 
  
==Common Attribute List==
+
==Compiling==
The following is a complete list of attributes that can be modified by either a static amount or a multiplier in either the upgrade or effects XML structures and each should have a "value" attribute.  Static values take a positive or negative number and default to zero (no modification).  Multipliers take a floating point number, the default to 1.0 (multiply by one, or no modification).  Note that this is not notated as a percentage.  If you enter 100.0 for a multiplier, it means that the value increases 100 times.  These are also covered in the reference section.
+
* [https://sourceforge.net/apps/trac/glestae/wiki/CompileGuide Official Compile Guide]
  
<max-hp>
+
==Reference / Specification==
<hp-regen>
+
*The [[XMLs|XML reference]] gives examples of XML pages and explanations in depth.
<max-ep>
+
*The [[GAE/Features|GAE features]] examines each new GAE only feature in depth.
<ep-regen>
+
*The [[GAE/Lua|GAE Lua reference]] provides details on the new Lua functions.
<sight>
+
*The [[GAE/Keymap|GAE keymap reference]] provides details on setting hotkeys.
<armor>
 
<attack-strength>
 
<attack-range>
 
<attack-speed>    &lt;-- increases or decreases rate of attack --&gt;
 
<move-speed>
 
<production-speed>
 
<repair-speed>
 
<harvest-speed>
 
  
=Effects=
+
==Bugs==
==Intro with examples==
+
*[[GAE/Bug Reporting|Bug Reporting]]
Effects are embedded in the &lt;skill&gt; tag of the &lt;unit&gt;.  At this time, only attack skills are supported, but a new skill type will be later added to allow effects to be put on friendly units as in casting a spell.  The below is an example of an extended attack of the archer adding a poison to the arrows which causes blindness and 50 damage per second for 8 seconds.  Note that the only part of this snippet that is modified from the original is the addition of the &lt;effects&gt; tag.
+
* [http://sourceforge.net/apps/trac/glestae/report/3 Bug Tracker]
  
'''Example Skill With Effects'''
+
==Links==
<skill>
+
* [https://forum.megaglest.org/index.php?board=15.0 Glest Advanced Engine] web forums (hosted on [[MegaGlest]] site)
    <type value="attack"/>
+
* [http://sourceforge.net/apps/trac/glestae/report/3 Bug / Feature Tracker]
    <name value="attack_skill"/>
+
* [http://sourceforge.net/projects/glestae/develop Sourceforge hosting]
    <ep-cost value="0"/>
 
    <speed value="50"/>
 
    <anim-speed value="50"/>
 
    <animation path="models/archer_attacking.g3d"/>
 
    <sound enabled="true" start-time="0.5">
 
        <sound-file path="sounds/archer_attack1.wav"/>
 
        <sound-file path="sounds/archer_attack2.wav"/>
 
        <sound-file path="sounds/archer_attack3.wav"/>
 
        <sound-file path="sounds/archer_attack4.wav"/>
 
    </sound>
 
    <attack-strenght value="100"/>
 
    <attack-var value="50"/>
 
    <attack-range value="10"/>
 
    <attack-type value="piercing"/>
 
    <attack-start-time value="0.5"/>
 
    <attack-fields>
 
        <field value="land"/>
 
        <field value="air"/>
 
    </attack-fields>
 
    <projectile value="true">
 
        <particle value="true" path="particle_proj.xml"/>
 
        <sound enabled="true">
 
            <sound-file path="sounds/arrow_hit1.wav"/>
 
            <sound-file path="sounds/arrow_hit2.wav"/>
 
            <sound-file path="sounds/arrow_hit3.wav"/>
 
            <sound-file path="sounds/arrow_hit4.wav"/>
 
            <sound-file path="sounds/arrow_hit5.wav"/>
 
        </sound>
 
    </projectile>
 
    <splash value="false"/>
 
    <effects>
 
        <effect name="blinding_poison"
 
                bias="detrimental"
 
                stacking="overwrite"
 
                target="any"
 
                chance="100.0"
 
                duration="8"
 
                image="../../../../placeholders/icon.bmp">
 
            <static-modifiers>
 
                <hp-regeneration value="-50"/>
 
            </static-modifiers>
 
            <multipliers>
 
                <sight value="0.2"/>
 
            </multipliers>
 
            <flags/>
 
            <fields-added/>
 
            <fields-removed/>
 
            <light enabled="false"/>
 
            <sound enabled="false"/>
 
            <particle value="false"/>
 
            <recourse-effects/>
 
        </effect>
 
    </effects>
 
</skill>
 
  
By using the multiplier of 0.2 for sight, their sight is reduced to 20% of normal.  Reducing it further may result in a sight of zero, which would make them incapable of attacking even targets directly adjacent to them, and that probably wouldn't be a very balanced attack, but it would be funny. :)
+
==GAE-based mods==
 
+
[[File:Military1b.jpg|thumb|250px|Military: One specific GAE-only mod.]]
Effects can be used on attacks with a splash effect as well, this will cause all units in the splash radius to be effected.  By default, all units are effected equally, even if they are on the very edge of the splash radius.  However, by adding the flag &lt;apply-splash-strength&gt; to the &lt;flags&gt; section of the effect, this behavior can be overridden causing the strength of the effect to be weaker on units further from the point of impact.  The strength of the effect isn't exposed through the XML interface, but it effects all attribute modifications (both positive and negative).  Below is an example a theoretical effect added to the ice attack of an archmage.  Presuming that the ice is cold, let's say that this will temporarily reduce the movement and attack speed of the target.  However, the effect will be relative to where they in the splash radius.
+
* [[Four path magitech]]: A faction mod extending upon the existing magitech, WIP.
 
+
* [[Military]]: A fully built mod exclusive for GAE with many GAE features such as Patrolling, Guarding, tracking projectiles, and emanations. It was the first created complete mod for GAE.
    <effects>
+
* [[Malevolent Rising]]: An RTS Game that is using GAE purely as an engine. Being recreated from scratch for a University Project.
        <effect name="icy_chill"
+
* [[Constellus]]: A sci-fi mod with two factions: the Crincillin Remnant and the Phorin Tribes. Currently a WIP project.
                bias="detrimental"
+
* [[Project Green]]: A mod that aims to make GAE more like a real-time tactics game. It utilizes GAE's PhysFS capabilities for a smaller download size, as well as emanations and multi-production. WIP.
                stacking="stack"
+
* [[Japanese]]: While the Japanese mod was not produced with GAE in mind, a small secondary mod file allows it to run on GAE and also adds the GAE Patrol and Guard commands to armed units.
                target="any"
+
[[Category:GAE]]
                chance="100.0"
 
                duration="8"
 
                image="../../../../placeholders/icon.bmp">
 
            <static-modifiers>
 
                <attack-speed value="-25"/>
 
                <movement-speed value="-50"/>
 
            </static-modifiers>
 
            <multipliers>
 
                <sight value="0.0"/>
 
            </multipliers>
 
            <flags>
 
                <apply-splash-strength/>
 
            </flags>
 
            <fields-added/>
 
            <fields-removed/>
 
            <light enabled="false"/>
 
            <sound enabled="false"/>
 
            <particle value="false"/>
 
            <recourse-effects/>
 
        </effect>
 
    </effects>
 
 
 
You may have noticed that the "stacking" attribute of the effect tag was set to "stack" this time instead of "overwrite."  This means that successive attacks which cause this effect will accumulate, increasing the total effect.  Each instance of the effect has it's own timer, so they will wear off one at a time. When set to "overwrite", the previous effect is simply overwritten and the duration reset.  This isn't recommended for use with apply-splash-strength however because a second effect may be weaker and overwrite a stronger one.
 
 
 
Now let's go overboard and improve the initiate's attack.  This will cause their targets to take damage over time, encouraging them to run fast, set them on fire spewing out firey particles with a sizzling sound and causing them to glow red for the duration.  In addition the initiate will get a recourse effect, which gives them some extra energy regeneration and movement speed (so he can follow his victim around and watch) for as long as the bastard is burning up.
 
 
 
        <effect name="burning_bastard"
 
                bias="detrimental"
 
                stacking="stack"
 
                target="any"
 
                chance="100.0"
 
                duration="8"
 
                image="../../../../placeholders/icon.bmp">
 
            <static-modifiers>
 
                <hp-regeneration value="-25"/>
 
            </static-modifiers>
 
            <multipliers>
 
                <movement-speed value="2.0"/>
 
            </multipliers>
 
            <flags/>
 
            <fields-added/>
 
            <fields-removed/>
 
            <light enabled="true" red="0.8" green="0.1" blue="0.1"/>
 
            <sound enabled="true" start-time="0.0" loop="true" path="sounds/sizzle.wav"/>
 
            <particle enabled="true" path="firey_particles.xml"/>
 
            <recourse-effects>
 
                <effect name="pyromania"
 
                        bias="benificial"
 
                        stacking="stack"
 
                        target="any"
 
                        chance="100.0"
 
                        duration="8"
 
                        image="../../../../placeholders/icon.bmp">
 
                    <static-modifiers>
 
                        <ep-regeneration value="25"/>
 
                    </static-modifiers>
 
                    <multipliers>
 
                        <movement-speed value="2.0"/>
 
                    </multipliers>
 
                    <flags/>
 
                    <fields-added/>
 
                    <fields-removed/>
 
                    <light enabled="false"/>
 
                    <sound enabled="true" start-time="1.0" loop="true" path="sounds/manic-giggling.wav"/>
 
                    <particle value="false"/>
 
                </effect>
 
            </recourse-effects>
 
        </effect>
 
 
 
=Reference / Specification=
 
Since there is no DTD, this section section will describe the expected XML format of newly added XML structures.
 
 
 
For the Pluralism column in the nested elements descriptions, the following is the legend for the notation:
 
{| class="filehistory"
 
! Value
 
! Meaning
 
|-
 
| ?
 
| zero or one
 
|-
 
| 1
 
| exactly one
 
|-
 
| *
 
| zero or more
 
|-
 
| +
 
| one or more
 
|}
 
 
 
==&lt;effects&gt;==
 
An &lt;effects&gt; node may be embedded in a unit skill node.
 
===Attributes===
 
none
 
===Nested Elements===
 
{| class="filehistory"
 
! Element
 
! Pluralism
 
! Description
 
|-
 
| &lt;effect&gt;
 
| *
 
| the effects
 
|}
 
 
 
==&lt;effect&gt;==
 
===Attributes===
 
{| class="filehistory"
 
! Attribute
 
! Required?
 
! Description
 
|-
 
| name
 
| '''required'''
 
| Name of the effect
 
|-
 
| image
 
| optional
 
| Path to an image used to display the effect (image not yet displayed, but effect name is)
 
|-
 
| bias
 
| '''required'''
 
| Primarily used by AI and must be either detrimental, neutral or benificial.
 
|-
 
| stacking
 
| '''required'''
 
| Defines behavior when an additional effect of the same type hits the unit.  Must be one of stack (the new effect is added in addition to the old one), extend (the duration of the original effect is extended), overwrite (the old effect is replaced with the new effect) or reject (the new effect is ignored).
 
|-
 
| target
 
| optional
 
| What units are effected by the effect.  Must be one of <code>ally</code>, <code>foe</code>, <code>pet</code> or <code>all</code>.  Default value is <code>any</code>.
 
|-
 
| chance
 
| optional
 
| The percent chance that the effect will be applied to the target.  The default is 100%.
 
|-
 
| duration
 
| '''required'''
 
| The number of seconds the effect will last.  Ignored if the flag "permanent" is specified.
 
|}
 
 
 
===Nested Elements===
 
{| class="filehistory"
 
! Element
 
! Pluralism
 
! Description
 
|-
 
| &lt;static-modifiers&gt;
 
| ?
 
| contains static, integral modifiers to a unit's attributes (e.g., +1)
 
|-
 
| &lt;multipliers&gt;
 
| ?
 
| uses multipliers to modify a unit's attributes (e.g., x 1.25)
 
|-
 
| &lt;flags&gt;
 
| ?
 
| special purpose flags that alter the effect, it's behavior or tells the AI how best to use a skill with this effect
 
|-
 
| &lt;fields-added&gt;
 
| ?
 
| fields of travel that are added by the effect
 
|-
 
| &lt;fields-removed&gt;
 
| ?
 
| fields of travel that are removed by the effect
 
|-
 
| &lt;light&gt;
 
| ?
 
| light generated by the effect, emanating from the unit and replacing any previous light value
 
|-
 
| &lt;sound&gt;
 
| ?
 
| a sound, optionally looping, caused by the effect
 
|-
 
| &lt;particle&gt;
 
| ?
 
| particles caused by the effect
 
|-
 
| &lt;recourse-effects&gt;
 
| ?
 
| secondary effects applied to the caster/attacker that caused the original effect
 
|-
 
|}
 
 
 
==&lt;static-modifiers&gt; and &lt;multipliers&gt;==
 
===Attributes===
 
none
 
===Nested Elements===
 
Each nested element requires a single attribute named "value". For static modifiers, the value should be an integer and for multipliers the value should be a floating point number.  If an element doesn't appear, the default value for static modifiers is zero and the default value for multipliers is 1.0.
 
{| class="filehistory"
 
! Element
 
! Pluralism
 
! Description
 
|-
 
| &lt;max-hp&gt;
 
| ?
 
| maxiumum hit points
 
|-
 
| &lt;max-ep&gt;
 
| ?
 
| maximum energy points
 
|-
 
| &lt;hp-regeneration&gt;
 
| ?
 
| rate of hit point regeneration
 
|-
 
| &lt;ep-regeneration&gt;
 
| ?
 
| rate of energy regeneration
 
|-
 
| &lt;sight&gt;
 
| ?
 
| sight distance
 
|-
 
| &lt;armor&gt;
 
| ?
 
| armor (protection from attacks)
 
|-
 
| &lt;attack-strength&gt;
 
| ?
 
| base damage value when attacking
 
|-
 
| &lt;attack-range&gt;
 
| ?
 
| maximum attack distance
 
|-
 
| &lt;move-speed&gt;
 
| ?
 
| how fast the unit moves
 
|-
 
| &lt;attack-speed&gt;
 
| ?
 
| the rate of attack (how often the unit attacks and how long each attack takes to execute)
 
|-
 
| &lt;production-speed&gt;
 
| ?
 
| how long the unit takes to be produced, to morph or to research an upgrade
 
|-
 
| &lt;harvest-speed&gt;
 
| ?
 
| how fast workers harvest/mine/chop wood
 
|}
 
 
 
==&lt;flags&gt;==
 
Flags effect various aspects of the "effect".  Most flags are for AI use and are not yet used, but are hints to tell the AI how best to use skills with the effect.  Each nested element has no attributes or children.
 
===Attributes===
 
none
 
===Nested Elements===
 
{| class="filehistory"
 
! Element
 
! Pluralism
 
! Description
 
|-
 
| &lt;effects-ally&gt;
 
| ?
 
| Will effect allies.  This is also turned on when target="allies" or "both".
 
|-
 
| &lt;effects-foes&gt;
 
| ?
 
| Will effect allies.  This is also turned on when target="foes" or "both".
 
|-
 
| &lt;not-effects-normal-units&gt;
 
| ?
 
| Will not effect normal units (i.e., not buildings).  By default, normal units are effected and buildings aren't.
 
|-
 
| &lt;effects-buildings&gt;
 
| ?
 
| Will effect buildings.  By default, buildings are not effected.
 
|-
 
| &lt;pets-only&gt;
 
| ?
 
| Will only effect the pets of the caster.  This causes effects-ally, effects-foes, not-effects-normal-units and effects-buildings to be ignored.
 
|-
 
| &lt;effects-non-living&gt;
 
| ?
 
| Not currently used.
 
|-
 
| &lt;apply-splash-strength&gt;
 
| ?
 
| Scale the strength of the effect with the same formula used to determine splash damage, which is 1.0 ÷ (distance_from_target + 1) -- the further from the apex of the target, the weaker the effect will be.  By default, all units within the splash radius of a skill with an effect are effected equally.
 
|-
 
| &lt;ends-with-source&gt;
 
| ?
 
| The effect will end if the unit who caused the effect dies.
 
|-
 
| &lt;recourse-ends-with-target&gt;
 
| ?
 
| Causes the recourse effect to end when the root (primary) effect ends, regardless the duration.  Applies only to recourse effects.
 
|-
 
| &lt;allow-negative-speed&gt;
 
| ?
 
| Adding negative values to the static-modifiers for move-speed can cause a unit to travel away from their destination, although they are facing their destination.  While this is probably undesirable, this flag will allow it to happen anyway.  The default behavior brings the unit's effective speed to zero if it would otherwise become negative.
 
|-
 
| &lt;tick-immediately&gt;
 
| ?
 
| Causes Hp & Ep regeneration to take immediate effect as if tick() had been called.  This can be used for effects that should immediately heal or damage units and is mostly useful for zero duration effects, causing it to take immediate effect and then terminate.  Using this flag with a zero duration will render all other modifiers in the effect, other than Hp & Ep regeneration to become useless although sound and particle effects will still be played/rendered.
 
|-
 
| &lt;permanent&gt;
 
| ?
 
| The effect has an infinite duration.
 
|-
 
| &lt;damaged&gt;
 
| ?
 
| AI hint: use on damaged units.
 
|-
 
| &lt;ranged&gt;
 
| ?
 
| AI hint: use on ranged units
 
|-
 
| &lt;melee&gt;
 
| ?
 
| AI hint: use on short range (melee) units (perhaps range 2 or less)
 
|-
 
| &lt;workers&gt;
 
| ?
 
| AI hint: use on worker units
 
|-
 
| &lt;building&gt;
 
| ?
 
| AI hint: use on buildings
 
|-
 
| &lt;heavy&gt;
 
| ?
 
| AI hint: use on heavy units
 
|-
 
| &lt;scout&gt;
 
| ?
 
| AI hint: use on scouting units.  This can be engaged as soon as the AI decides a unit should scout.
 
|-
 
| &lt;combat-only&gt;
 
| ?
 
| AI hint: use only in combat (applies to beneficials).  This should mean any allied unit who has visual on an enemy unit and is using an attack skill, or one who is not using an attack skill, but is being attacked (i.e., holding position).
 
|-
 
| &lt;use-sparingly&gt;
 
| ?
 
| AI hint: use sparingly (i.e., save for when "big guns" are needed)
 
|-
 
| &lt;use-liberally&gt;
 
| ?
 
| AI hint: use liberally (i.e., milk this one dry)
 
|}
 
 
 
==&lt;fields-added&gt; and &lt;fields-removed&gt;==
 
Specifies fields of travel that are added to or removed from the unit.  This may be adding the ability for a unit to swim, or levitate or grounding an otherwise flying unit (forcing them to walk or become immobile).  The only fields currently available are air and land.  However, water, forest (i.e., travel through trees) and subterainian may be added in this mod.
 
===Attributes===
 
none
 
===Nested Elements===
 
{| class="filehistory"
 
! Element
 
! Pluralism
 
! Description
 
|-
 
| &lt;air&gt;
 
| ?
 
|
 
|-
 
| &lt;land&gt;
 
| ?
 
|
 
|-
 
| &lt;water&gt;
 
| ?
 
|
 
|}
 
==&lt;light&gt;==
 
Causes light to emanate from the unit or changes the light if one already exists.
 
===Attributes===
 
{| class="filehistory"
 
! Attribute
 
! Required?
 
! Description
 
|-
 
| enabled
 
| '''required'''
 
| true or false
 
|-
 
| red
 
| '''required''' if enabled is true
 
| a value between 0.0 and 1.0
 
|-
 
| green
 
| '''required''' if enabled is true
 
| a value between 0.0 and 1.0
 
|-
 
| blue
 
| '''required''' if enabled is true
 
| a value between 0.0 and 1.0
 
|}
 
 
 
===Nested Elements===
 
none
 
==&lt;sound&gt;==
 
===Attributes===
 
{| class="filehistory"
 
! Attribute
 
! Required?
 
! Description
 
|-
 
| enabled
 
| '''required'''
 
| true or false
 
|-
 
| start-time
 
| '''required''' if enabled is true
 
| number of seconds (in floating point) before playing the sound
 
|-
 
| loop
 
| '''required''' if enabled is true
 
| true if the sound should loop, false otherwise.
 
|-
 
| path
 
| '''required''' if enabled is true
 
| the sound file to play
 
|}
 
===Nested Elements===
 
none
 
 
 
==&lt;particle&gt;==
 
===Attributes===
 
{| class="filehistory"
 
! Attribute
 
! Required?
 
! Description
 
|-
 
| enabled
 
| '''required'''
 
| true or false
 
|-
 
| path
 
| '''required''' if enabled is true
 
| the xml file defining the particle system
 
|}
 
===Nested Elements===
 
none
 
==&lt;recourse-effects&gt;==
 
===Attributes===
 
none
 
===Nested Elements===
 
{| class="filehistory"
 
! Element
 
! Pluralism
 
! Description
 
|-
 
| &lt;effect&gt;
 
| *
 
| The effect(s) which are applied to the originator (i.e., the unit attacking or casting a spell) as a recourse of the original or primary effect.
 
|}
 
none
 
==&lt;emanations&gt;==
 
May be optionally nested directly within a &lt;unit&gt; node.  Emanations are static condition that applies an effect to surrounding units every tick.  In general, an emanation should use the <code>overwrite</code> stacking value.  The attributes and nested elements in an &lt;emanation&gt; node is identical to an [[#.3Ceffect.3E|&lt;effect&gt;]] node with the addition of a <code>radius</code> attribute.
 
===Attributes===
 
none
 
===Nested Elements===
 
{| class="filehistory"
 
! Element
 
! Pluralism
 
! Description
 
|-
 
| &lt;emanation&gt;
 
| *
 
| The emanation effect(s) which are applied to surrounding units each tick.
 
|}
 
none
 
==&lt;emanation&gt;==
 
===Attributes===
 
Contains all attributes of [[#.3Ceffect.3E|&lt;effect&gt;]], with the addition detailed below
 
{| class="filehistory"
 
! Attribute
 
! Required?
 
! Description
 
|-
 
| radius
 
| '''required'''
 
| the radius (in tiles) the effect emanates from the source unit.
 
|}
 
 
 
===Nested Elements===
 
See [[#.3Ceffect.3E|&lt;effect&gt;]].
 

Latest revision as of 08:09, 15 March 2017

Template:Infobox

GAE Icon.png

Glest Advanced Engine (GAE) is a fork/modification of the Real Time Strategy (RTS) game Glest. GAE may be downloaded here.

History[edit]

GAE was originally started by Daniel.Santos, as a desire to create a special engine for the then-work-in-progress, Four Path Magitech, and started with offering auto returning units and other small enhancements, growing to eventually try to accompany the four path magitech. When four path magitech was abandoned, it was later picked up as an alternative way to play glest, and now is an engine with its own unique mods which work specifically on GAE (namely, Military and Malevolent Rising). To date, it is still actively developed by the GAE team, who's current active members include Silnarm, Hailstone, and Yggdrasil.

Features[edit]

Main article: GAE/Features

A list of features in GAE:

  • Only loads the factions used in a battle.
  • Unit effects and emanations.
  • Unit pets.
  • Shroud of darkness
  • Particles for skills and effects.
  • Support for water based units
  • Support for transport units
  • Teleport and cloaking skills
  • Massive amount of new Lua commands with a dedicated Lua console.
  • Improved unit levels system.
  • Improved pathfinding for units.
  • Subfactions
  • New GUI with tool tips and faction logos
  • Support for normal maps and shaders
  • Support for zipped mod files via Physfs
  • Patrol, guard and autorepair skills.
  • Multiple music tracks per faction.
  • Many general bug fixes and improvements.
  • Command queuing
  • Games can be saved and loaded

Guide[edit]

  • The GAE Guide provides more of a guided tour through GAE's extended functionality
  • The trac wiki provides other valuable information about GAE.
  • The GAE Coding Conventions provides instructions for how to layout and modify/add code

Compiling[edit]

Reference / Specification[edit]

Bugs[edit]

Links[edit]

GAE-based mods[edit]

Military: One specific GAE-only mod.
  • Four path magitech: A faction mod extending upon the existing magitech, WIP.
  • Military: A fully built mod exclusive for GAE with many GAE features such as Patrolling, Guarding, tracking projectiles, and emanations. It was the first created complete mod for GAE.
  • Malevolent Rising: An RTS Game that is using GAE purely as an engine. Being recreated from scratch for a University Project.
  • Constellus: A sci-fi mod with two factions: the Crincillin Remnant and the Phorin Tribes. Currently a WIP project.
  • Project Green: A mod that aims to make GAE more like a real-time tactics game. It utilizes GAE's PhysFS capabilities for a smaller download size, as well as emanations and multi-production. WIP.
  • Japanese: While the Japanese mod was not produced with GAE in mind, a small secondary mod file allows it to run on GAE and also adds the GAE Patrol and Guard commands to armed units.