Add a workflow to bake blueprint properties of props#6752
Add a workflow to bake blueprint properties of props#6752Garanas merged 50 commits intoFAForever:developfrom
Conversation
lL1l1
left a comment
There was a problem hiding this comment.
I familiarized myself with workflows and brew wiki gen just now, so maybe it's not the best but I took a look.
Co-authored-by: lL1l1 <82986251+lL1l1@users.noreply.github.com>
Co-authored-by: lL1l1 <82986251+lL1l1@users.noreply.github.com>
Co-authored-by: lL1l1 <82986251+lL1l1@users.noreply.github.com>
|
@lL1l1 I've spent an hour or two. It now creates a pull request if you trigger the workflow manually. this allows you to review it. It creates a commit if you trigger it from another workflow, which would be done when deploying. As an example of a pull request: edit: there are small changes in here to test the workflow. I'll remove those when we're ready for a merge. |
|
All of the above is nonsense - I forgot there are layout files in the textures folder. The syntax check script also ignores the files in the engine folder by default. The difference is now 7, which makes more sense 😄 ! |
lL1l1
left a comment
There was a problem hiding this comment.
Just have to remove the testing changes in blueprints-props.lua and this can be merged.
Also the commit description should note that it fixes the sparse checkout for the lua syntax test as well.
Description of the proposed changes
Introduces a workflow to make it easier to bake prop blueprints. This workflow uses the BrewWikiGen tool made by @The-Balthazar. We entirely ignore the wiki part of the tool, and instead just use it to bake in properties into blueprints.
With this workflow it now becomes possible to mass-process blueprints. I'll try and think through a proposal for the exact procedure the following days.
Some advantages are:
Testing done on the proposed changes
See also this commit of a fork of the fa repository, that is a result of this workflow run.
Additional context
This allows us to bake in properties of blueprints.
The capability to do the baking so conveniently is entirely new. It was previously either out of reach (before the creation of the tool by Balthazar), or difficult to setup (using the tool of Balthazar).
With this new capability there's also a new type of question: what properties should we bake in, and what properties are better to (also) be applied during runtime? The advantage of post processing at run time is that it's also applied to all mods.
This is a difficult question! Some values are critical for the functionality of FAForever, and others are too sensitive that I strongly believe they should always be overwritten at runtime. As a few (quick) examples:
AI.GuardScanRadiusof unit blueprint: extremely sensitive to the performance of the simulation.Weapon.TargetCheckIntervalof unit blueprint: extremely sensitive to the performance of the simulation.Defense.ThreatXYZof unit blueprint: sensitive to the performance of AIs, as balance changes these should change accordingly.Display.Mesh.LODsof unit and prop blueprint: sensitive to the rendering performance of the game.ExtractWreckageBlueprintof general post processing: Introduction of wreck blueprints.ExtractBuildMeshBlueprintof general post processing: Introduction of build blueprints.ExtractCloakMeshBlueprintof general post processing: introduction of cloak blueprints.And a few examples that may be interesting to bake in:
HandleUnitWithBuildPresetsof general post processing: Creation of SACU presets.Features for future pull requests
deploy/faf,deploy/fafbetaordeploy/fafdevelop.Checklist