Difference between revisions of "Version compatibility"

From ECWolf Wiki
Line 1: Line 1:
 
One of the main design goals of ECWolf is to allow easy mod authoring in a way that requires little programming knowledge. In turn it is reasonable to expect that future updates to the engine will not break released mods. While this will eventually be the case, '''this is not true for the 1.x series'''. Starting with ECWolf 2.0 backwards compatibility will be kept, but until then fixing issues takes priority. The main reason for this is because there are certain features that are currently only partially implemented and I don't need broken features to get in the way of normal progress.
 
One of the main design goals of ECWolf is to allow easy mod authoring in a way that requires little programming knowledge. In turn it is reasonable to expect that future updates to the engine will not break released mods. While this will eventually be the case, '''this is not true for the 1.x series'''. Starting with ECWolf 2.0 backwards compatibility will be kept, but until then fixing issues takes priority. The main reason for this is because there are certain features that are currently only partially implemented and I don't need broken features to get in the way of normal progress.
== Forwards Compatibility Tips ==
+
== Forwards compatibility tips ==
 
While this is by no means a complete list, the following items will allow mods to be easily ported from one version to another by following upgrade directions posted here in the future.
 
While this is by no means a complete list, the following items will allow mods to be easily ported from one version to another by following upgrade directions posted here in the future.
 
* Whenever you are asked to provide a z-coordinate always use 0. Please note that this may not be the default value. Particularly when it comes to projectiles. If a specific value is given for a z-height elsewhere then use that instead.
 
* Whenever you are asked to provide a z-coordinate always use 0. Please note that this may not be the default value. Particularly when it comes to projectiles. If a specific value is given for a z-height elsewhere then use that instead.
 
* When you create a SOLID object, always give it a height of 64. (Again, this is not the default.)
 
* When you create a SOLID object, always give it a height of 64. (Again, this is not the default.)
 
* Always acquire a target with A_Look before using Monster AI attacks. Right now the player is assumed to be the target.
 
* Always acquire a target with A_Look before using Monster AI attacks. Right now the player is assumed to be the target.
 +
* Inherit from {{Class|WolfensteinMonster}} when creating monster with Wolfenstein style definitions. (NOP A_Chase)
 +
== Upgrading mods ==
 +
There are three categories of changes for upgrading mods.
 +
* '''Critical'''
 +
:These changes cause ECWolf to reject the mod if not corrected.
 +
* '''Major'''
 +
:These changes cause the mod to behave differently than in the previous version. ECWolf will still start, but gameplay may be drastically different than intended.
 +
* '''Minor'''
 +
:These changes are recommended for best forwards compatibility, but do not cause any change in behavior from the previous version.
 +
=== Upgrade to 1.1 ===
 +
'''Major'''
 +
* If you define your monsters in Wolfenstein style (that's: NOP A_Chase) then you will probably want to inherit from {{Class|WolfensteinMonster}}. There's nothing special about this actor other than it sets the defaults for these kind of monsters.  If you don't either change your actor to reflect that actor, or inherit from it, your monster will change significantly in aggressiveness.
 +
* If you inherited directly from {{Class|Weapon}} your weapon will now have Doom like bobbing.  To fix add {{flag|WEAPON.DONTBOB}}.  (You can also inherit from {{Class|WolfWeapon}}, but this will carry other effects.)
 +
* If you have a custom player class not inheriting from {{Class|BJPlayer}} it will also have movement bob. Add {{property|player.movebob}} 0 to correct.
 +
* Meleerange now default to 44 if you don't inherit from WolfMonster (where it will be 42). This may seem like a small change, but the old behavior is to have the meleerange equal to the radius (42).
 +
* The missilechance property has been removed.  It is the same as {{property|missilefrequency}}, but missilefrequency takes a floating point value that is 0.005*missilechance.
 +
 +
'''Minor'''
 +
* Rename WAF_NORANDOM to GAF_NORANDOM if used with [[A_GunAttack]].

Revision as of 21:38, 17 December 2012

One of the main design goals of ECWolf is to allow easy mod authoring in a way that requires little programming knowledge. In turn it is reasonable to expect that future updates to the engine will not break released mods. While this will eventually be the case, this is not true for the 1.x series. Starting with ECWolf 2.0 backwards compatibility will be kept, but until then fixing issues takes priority. The main reason for this is because there are certain features that are currently only partially implemented and I don't need broken features to get in the way of normal progress.

Forwards compatibility tips

While this is by no means a complete list, the following items will allow mods to be easily ported from one version to another by following upgrade directions posted here in the future.

  • Whenever you are asked to provide a z-coordinate always use 0. Please note that this may not be the default value. Particularly when it comes to projectiles. If a specific value is given for a z-height elsewhere then use that instead.
  • When you create a SOLID object, always give it a height of 64. (Again, this is not the default.)
  • Always acquire a target with A_Look before using Monster AI attacks. Right now the player is assumed to be the target.
  • Inherit from WolfensteinMonster when creating monster with Wolfenstein style definitions. (NOP A_Chase)

Upgrading mods

There are three categories of changes for upgrading mods.

  • Critical
These changes cause ECWolf to reject the mod if not corrected.
  • Major
These changes cause the mod to behave differently than in the previous version. ECWolf will still start, but gameplay may be drastically different than intended.
  • Minor
These changes are recommended for best forwards compatibility, but do not cause any change in behavior from the previous version.

Upgrade to 1.1

Major

  • If you define your monsters in Wolfenstein style (that's: NOP A_Chase) then you will probably want to inherit from WolfensteinMonster. There's nothing special about this actor other than it sets the defaults for these kind of monsters. If you don't either change your actor to reflect that actor, or inherit from it, your monster will change significantly in aggressiveness.
  • If you inherited directly from Weapon your weapon will now have Doom like bobbing. To fix add WEAPON.DONTBOB. (You can also inherit from WolfWeapon, but this will carry other effects.)
  • If you have a custom player class not inheriting from BJPlayer it will also have movement bob. Add player.movebob 0 to correct.
  • Meleerange now default to 44 if you don't inherit from WolfMonster (where it will be 42). This may seem like a small change, but the old behavior is to have the meleerange equal to the radius (42).
  • The missilechance property has been removed. It is the same as missilefrequency, but missilefrequency takes a floating point value that is 0.005*missilechance.

Minor

  • Rename WAF_NORANDOM to GAF_NORANDOM if used with A_GunAttack.