Project Perfect Mod Forums
:: Home :: Get Hosted :: PPM FAQ :: Forum FAQ :: Privacy Policy :: Search :: Memberlist :: Usergroups :: Register :: Profile :: Log in to check your private messages :: Log in ::


The time now is Thu Mar 28, 2024 9:12 pm
All times are UTC + 0
Upcoming important OpenRA changes for modders.
Moderators: Global Moderators
Post new topic   Reply to topic Page 1 of 1 [1 Post] Mark the topic unread ::  View previous topic :: View next topic
Author Message
Banshee
Supreme Banshee


Also Known As: banshee_revora (Steam)
Joined: 15 Aug 2002
Location: Brazil

PostPosted: Sat Mar 31, 2018 4:07 am    Post subject:  Upcoming important OpenRA changes for modders.
Subject description: It is getting easier to keep being updated with Kane's vision with this technology of peace.
Reply with quote  Mark this post and the followings unread

Our friend pchote, one of the most important developers from OpenRA has recently shared a note about an important change that modders of OpenRA might have to take into account when making your mod suppor the latest version of the OpenRA game engine.

OpenRA is a game engine that suffers constant transformations and it is under an endless development, unlike a game like Tiberian Sun, where the original developers doesn't touch it for miserable 20 years... or almost that. And, as such, they are trying to repair some eventual design mistakes, which might make them to change certain tags from the yaml files. This brings an obstacle to the modder itself to keep up to date with these changes and it may prevent mods that are no longer being developed to work in the latest OpenRA. So, for this reason, the developers of OpenRA have been reforming their Mod SDK not just to allow mods to have their old engine in the user's computer even if the engine gets updated during this time and they have also added a tool to help modders to update their mods to the latest version of the engine, which is exactly what this change do. It should be available in the next play tests and release versions:


Quote:
The key points to know about the new system are:

   All changes to the mod rules are expected to define an update rule, even if it only lists the changes that a modder needs to make manually.
   The default commands for the updater list information about the changes; an explicit --apply command must be given before any changes are made. This makes the updater our primary documentation for compatibility changes.
   Each update "rule" is considered independently, and can be applied individually (e.g. when working on bleed), or as part of an "update path" from a labelled tag to the current HEAD.
   If a rule throws an exception then its changes will be reverted and any other updates in the path will be applied.


Here's a sample when updating the RA Classic from release 20180218 to the bleed:

Code:
$ ./utility.sh --update-mod
--update-mod SOURCE [--detailed] [--apply] [--skip-maps]
Valid sources are:
   Update Paths:
      release-20180218
      release-20180307
   Individual Rules:
      SplitTurretAimAnimation
      RenameWormSpawner
      RemoveWithReloadingSpriteTurret
      RemoveWeaponScanRadius
      DefineSoundDefaults
      RemoveTerrainTypeIsWaterFlag



Code:
$ ./utility.sh --update-mod release-20180218 --detailed
Found 6 API changes:
  * RemoveTerrainTypeIsWaterFlag: Remove TerrainType IsWater flag
     The IsWater flag on terrain type definitions has been unused for some time.
     This flag has now been removed from the tileset yaml.

  * RemoveWeaponScanRadius: Remove Weapon ScanRadius parameters
     The *ScanRadius parameters have been removed from weapon projectiles and warheads.
     These values are now automatically determined by the engine.
     CreateEffect.ImpactActors: False has been added to replace VictimScanRadius: 0

  * SplitTurretAimAnimation: Introduce WithTurretAimAnimation trait
     WithSpriteTurret.AimSequence and WithTurretAttackAnimation.AimSequence
     have been split into a new WithTurretAimAnimation trait.

  * DefineSoundDefaults: Move mod-specific sound defaults to yaml
     Mod-specific default sound values have been removed from several traits.
     The original values are added back via yaml.

  * RenameWormSpawner: WormSpawner renamed and generalized to ActorSpawner
     The D2k-specific WormSpawner trait was renamed to ActorSpawner,
     generalized, and moved into the common mod code.

  * RemoveWithReloadingSpriteTurret: Remove WithReloadingSpriteTurret trait
     WithReloadingSpriteTurret has been superseded by conditions.
     The trait is switched for with WithSpriteTurret.
    

Run this command with the --apply flag to apply the update rules.



Code:
$ ./utility.sh --update-mod release-20180218 --apply
WARNING: This command will automatically rewrite your mod rules.
Side effects of this command may include changing the whitespace to
match the default conventions, and any yaml comments will be removed.

We strongly recommend that you have a backup of your mod rules, and
for best results, to use a Git client to review the line-by-line
changes and discard any unwanted side effects.

Press y to continue, or any other key to cancel: y

RemoveTerrainTypeIsWaterFlag: Remove TerrainType IsWater flag
   Updating mod... COMPLETE
   Updating system maps... COMPLETE

RemoveWeaponScanRadius: Remove Weapon ScanRadius parameters
   Updating mod... COMPLETE
   Updating system maps... COMPLETE

SplitTurretAimAnimation: Introduce WithTurretAimAnimation trait
   Updating mod... COMPLETE
   Updating system maps... COMPLETE

DefineSoundDefaults: Move mod-specific sound defaults to yaml
   Updating mod... COMPLETE
   Updating system maps... COMPLETE
   Manual changes are required to complete this update:
    * The default value for ParaDrop.ChuteSound has been removed.
      You may wish to explicitly define `ChuteSound: chute1.aud` at the following locations
      if the sound has not already been inherited from a parent definition.
       * rules/aircraft.yaml:3
      
    * The default value for Building.BuildSounds has been removed.
      You may wish to explicitly define `BuildSounds: placbldg.aud, build5.aud` at the following locations
      if the sound has not already been inherited from a parent definition.
       * rules/misc.yaml:272
       * rules/misc.yaml:293
       * rules/misc.yaml:315
       * rules/misc.yaml:331
       * rules/misc.yaml:349
       * rules/misc.yaml:506
       * rules/defaults.yaml:468
       * rules/defaults.yaml:707
       * rules/defaults.yaml:746
       * rules/defaults.yaml:841
       * rules/defaults.yaml:863
       * rules/husks.yaml:212
       * rules/husks.yaml:222
       * rules/husks.yaml:232
       * rules/husks.yaml:242
       * rules/husks.yaml:252
       * rules/husks.yaml:262
       * rules/husks.yaml:272
       * rules/husks.yaml:282
       * rules/husks.yaml:295
       * rules/husks.yaml:305
       * rules/husks.yaml:315
       * rules/husks.yaml:325
       * rules/husks.yaml:335
       * rules/husks.yaml:345
       * rules/husks.yaml:355
       * rules/husks.yaml:365
       * rules/husks.yaml:375
       * rules/husks.yaml:385
       * rules/husks.yaml:395
       * rules/husks.yaml:405
       * rules/husks.yaml:415
       * rules/structures.yaml:15
       * rules/structures.yaml:107
       * rules/structures.yaml:189
       * rules/structures.yaml:271
       * rules/structures.yaml:319
       * rules/structures.yaml:446
       * rules/structures.yaml:473
       * rules/structures.yaml:510
       * rules/structures.yaml:555
       * rules/structures.yaml:592
       * rules/structures.yaml:632
       * rules/structures.yaml:674
       * rules/structures.yaml:712
       * rules/structures.yaml:762
       * rules/structures.yaml:824
       * rules/structures.yaml:923
       * rules/structures.yaml:989
       * rules/structures.yaml:1084
       * rules/structures.yaml:1117
       * rules/structures.yaml:1154
       * rules/structures.yaml:1184
       * rules/structures.yaml:1287
       * rules/structures.yaml:1344
       * rules/structures.yaml:1473
       * rules/structures.yaml:1491
       * rules/civilian.yaml:64
       * rules/civilian.yaml:90
       * rules/civilian.yaml:109
       * rules/civilian.yaml:129
       * rules/civilian.yaml:145
       * rules/civilian.yaml:161
       * rules/civilian.yaml:178
       * rules/civilian.yaml:189
       * rules/civilian.yaml:200
       * rules/civilian.yaml:363
       * rules/civilian.yaml:385
       * rules/civilian.yaml:412
       * rules/civilian.yaml:476
       * rules/civilian.yaml:496
       * rules/civilian.yaml:516
       * rules/civilian.yaml:536
       * rules/civilian.yaml:578
       * rules/civilian.yaml:592
       * rules/civilian.yaml:606
       * rules/civilian.yaml:620
       * rules/civilian.yaml:640
       * rules/civilian.yaml:651
       * rules/civilian.yaml:665
       * rules/civilian.yaml:684
       * rules/civilian.yaml:702
       * rules/civilian.yaml:711
       * rules/civilian.yaml:720
       * rules/civilian.yaml:729
       * rules/civilian.yaml:746
       * rules/civilian.yaml:767
       * rules/civilian.yaml:784
       * rules/civilian.yaml:802
       * rules/civilian.yaml:818
       * rules/decoration.yaml:3
       * rules/decoration.yaml:15
       * rules/decoration.yaml:27
       * rules/decoration.yaml:39
       * rules/decoration.yaml:51
       * rules/decoration.yaml:63
       * rules/decoration.yaml:75
       * rules/decoration.yaml:87
       * rules/decoration.yaml:104
       * rules/decoration.yaml:116
       * rules/decoration.yaml:128
       * rules/decoration.yaml:140
       * rules/decoration.yaml:152
       * rules/decoration.yaml:164
       * rules/decoration.yaml:176
       * rules/decoration.yaml:188
       * rules/decoration.yaml:200
       * rules/decoration.yaml:212
       * rules/decoration.yaml:224
       * rules/decoration.yaml:236
       * rules/decoration.yaml:248
       * rules/decoration.yaml:332
       * rules/decoration.yaml:345
       * rules/decoration.yaml:358
       * rules/decoration.yaml:387
       * rules/decoration.yaml:395
       * rules/decoration.yaml:403
       * rules/decoration.yaml:411
       * rules/decoration.yaml:419
       * rules/decoration.yaml:427
       * rules/decoration.yaml:435
       * rules/decoration.yaml:459
       * rules/decoration.yaml:472
       * rules/fakes.yaml:17
       * rules/fakes.yaml:54
       * rules/fakes.yaml:89
       * rules/fakes.yaml:117
       * rules/fakes.yaml:138
      
    * The default value for Building.UndeploySounds has been removed.
      You may wish to explicitly define `UndeploySounds: cashturn.aud` at the following locations
      if the sound has not already been inherited from a parent definition.
       * rules/misc.yaml:272
       * rules/misc.yaml:293
       * rules/misc.yaml:315
       * rules/misc.yaml:331
       * rules/misc.yaml:349
       * rules/misc.yaml:506
       * rules/defaults.yaml:468
       * rules/defaults.yaml:534
       * rules/defaults.yaml:583
       * rules/defaults.yaml:707
       * rules/defaults.yaml:746
       * rules/defaults.yaml:841
       * rules/defaults.yaml:863
       * rules/husks.yaml:212
       * rules/husks.yaml:222
       * rules/husks.yaml:232
       * rules/husks.yaml:242
       * rules/husks.yaml:252
       * rules/husks.yaml:262
       * rules/husks.yaml:272
       * rules/husks.yaml:282
       * rules/husks.yaml:295
       * rules/husks.yaml:305
       * rules/husks.yaml:315
       * rules/husks.yaml:325
       * rules/husks.yaml:335
       * rules/husks.yaml:345
       * rules/husks.yaml:355
       * rules/husks.yaml:365
       * rules/husks.yaml:375
       * rules/husks.yaml:385
       * rules/husks.yaml:395
       * rules/husks.yaml:405
       * rules/husks.yaml:415
       * rules/structures.yaml:15
       * rules/structures.yaml:107
       * rules/structures.yaml:189
       * rules/structures.yaml:271
       * rules/structures.yaml:319
       * rules/structures.yaml:446
       * rules/structures.yaml:473
       * rules/structures.yaml:510
       * rules/structures.yaml:555
       * rules/structures.yaml:592
       * rules/structures.yaml:632
       * rules/structures.yaml:674
       * rules/structures.yaml:712
       * rules/structures.yaml:762
       * rules/structures.yaml:824
       * rules/structures.yaml:923
       * rules/structures.yaml:989
       * rules/structures.yaml:1084
       * rules/structures.yaml:1117
       * rules/structures.yaml:1154
       * rules/structures.yaml:1184
       * rules/structures.yaml:1287
       * rules/structures.yaml:1344
       * rules/structures.yaml:1473
       * rules/structures.yaml:1491
       * rules/civilian.yaml:64
       * rules/civilian.yaml:90
       * rules/civilian.yaml:109
       * rules/civilian.yaml:129
       * rules/civilian.yaml:145
       * rules/civilian.yaml:161
       * rules/civilian.yaml:178
       * rules/civilian.yaml:189
       * rules/civilian.yaml:200
       * rules/civilian.yaml:363
       * rules/civilian.yaml:385
       * rules/civilian.yaml:412
       * rules/civilian.yaml:476
       * rules/civilian.yaml:496
       * rules/civilian.yaml:516
       * rules/civilian.yaml:536
       * rules/civilian.yaml:578
       * rules/civilian.yaml:592
       * rules/civilian.yaml:606
       * rules/civilian.yaml:620
       * rules/civilian.yaml:640
       * rules/civilian.yaml:651
       * rules/civilian.yaml:665
       * rules/civilian.yaml:684
       * rules/civilian.yaml:702
       * rules/civilian.yaml:711
       * rules/civilian.yaml:720
       * rules/civilian.yaml:729
       * rules/civilian.yaml:746
       * rules/civilian.yaml:767
       * rules/civilian.yaml:784
       * rules/civilian.yaml:802
       * rules/civilian.yaml:818
       * rules/decoration.yaml:3
       * rules/decoration.yaml:15
       * rules/decoration.yaml:27
       * rules/decoration.yaml:39
       * rules/decoration.yaml:51
       * rules/decoration.yaml:63
       * rules/decoration.yaml:75
       * rules/decoration.yaml:87
       * rules/decoration.yaml:104
       * rules/decoration.yaml:116
       * rules/decoration.yaml:128
       * rules/decoration.yaml:140
       * rules/decoration.yaml:152
       * rules/decoration.yaml:164
       * rules/decoration.yaml:176
       * rules/decoration.yaml:188
       * rules/decoration.yaml:200
       * rules/decoration.yaml:212
       * rules/decoration.yaml:224
       * rules/decoration.yaml:236
       * rules/decoration.yaml:248
       * rules/decoration.yaml:332
       * rules/decoration.yaml:345
       * rules/decoration.yaml:358
       * rules/decoration.yaml:387
       * rules/decoration.yaml:395
       * rules/decoration.yaml:403
       * rules/decoration.yaml:411
       * rules/decoration.yaml:419
       * rules/decoration.yaml:427
       * rules/decoration.yaml:435
       * rules/decoration.yaml:459
       * rules/decoration.yaml:472
       * rules/fakes.yaml:17
       * rules/fakes.yaml:54
       * rules/fakes.yaml:89
       * rules/fakes.yaml:117
       * rules/fakes.yaml:138
      

RenameWormSpawner: WormSpawner renamed and generalized to ActorSpawner
   Updating mod... COMPLETE
   Updating system maps... COMPLETE

RemoveWithReloadingSpriteTurret: Remove WithReloadingSpriteTurret trait
   Updating mod... COMPLETE
   Updating system maps... COMPLETE

Semi-automated update complete.
Please review the messages above for any manual actions that must be applied.



I don't know if this feature is finished yet, but you should take into account that modding OpenRA should become easier as this system advances.


Key Words: #News #OpenRA #OpenRAModSDK 

Back to top
View user's profile Send private message Visit poster's website Skype Account
Display posts from previous:   
Post new topic   Reply to topic Page 1 of 1 [1 Post] Mark the topic unread ::  View previous topic :: View next topic
 
Share on TwitterShare on FacebookShare on Google+Share on DiggShare on RedditShare on PInterestShare on Del.icio.usShare on Stumble Upon
Quick Reply
Username:


If you are visually impaired or cannot otherwise answer the challenges below please contact the Administrator for help.


Write only two of the following words separated by a sharp: Brotherhood, unity, peace! 

 
You cannot post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © phpBB Group

[ Time: 0.1673s ][ Queries: 11 (0.0085s) ][ Debug on ]