Hello All, I'm currently busy digging my way through the contents of:
1. Github - OpenRA Wiki - "Modding" section
- https://github.com/OpenRA/OpenRA/wiki
2. The OpenRA Book:
- https://www.openra.net/book/index.html
GOAL: To create a hierarchical tree of all (relevant) mini-yaml files which are used by:
- The OpenRA GameEngine (internally)
- An (existing / new) OpenRa MOD (externally).
QUESTION: Which OpenRA mini-yaml file is read / parsed first when:
A - OpenRA GameEngine itself starts up as a executable program from the computer operating system?
B - A chosen MOD is loaded / opened by the OpenRA Game Engine
NOTE: For now I have the found the following "startup candidates":
A - Unknown
B - "C:\program files\OpenRa\MOD_ID\mod.yaml" (where MOD_ID can be "cnc", "d2k" or "ra")
Since the OpenRA Wiki states that this is only mandatory file needed to create a mod.
But so far I have not found any official documentation on this matter.
[Solved] - OpenRA GameEngine - What is the exact MiniYAML hierachy?
Re: [Solved] - OpenRA GameEngine - What is the exact MiniYAML hierachy?
In order to find the question to my own answer, this what I have done:
1. I downloaded the "Windows Internals Suite" - created by the famous Mark Russinovich.
- https://docs.microsoft.com/en-us/sysinternals/
..
2. I started up OpenRA and switch it into [Windowed-Mode] with a resolution 800 x600 pixels.
3. I closed OpenRA again.
..
4. I started up the Windows Internals tool called "Process Monitor 64-bits" (ProcMon64.exe)
- https://docs.microsoft.com/en-us/sysint ... ds/procmon
5. I started ProcMon64 file_IO_traffic capture ability
..
6. I started OpenRa and entered a Skirmish game.
7. I only deployed the MCV and then left the Skirmish game again.
8. I closed OpenRA again.
..
9. I saved the file_IO capture results on my harddisk in .CSV file format.
10. I filtered out the Capture result with the following parameters: 11. And that is how I found my own answer (see image below): SETTINGS.YAML is the first mini-yaml which is opened when starting OpenRA
1. I downloaded the "Windows Internals Suite" - created by the famous Mark Russinovich.
- https://docs.microsoft.com/en-us/sysinternals/
..
2. I started up OpenRA and switch it into [Windowed-Mode] with a resolution 800 x600 pixels.
3. I closed OpenRA again.
..
4. I started up the Windows Internals tool called "Process Monitor 64-bits" (ProcMon64.exe)
- https://docs.microsoft.com/en-us/sysint ... ds/procmon
5. I started ProcMon64 file_IO_traffic capture ability
..
6. I started OpenRa and entered a Skirmish game.
7. I only deployed the MCV and then left the Skirmish game again.
8. I closed OpenRA again.
..
9. I saved the file_IO capture results on my harddisk in .CSV file format.
10. I filtered out the Capture result with the following parameters: 11. And that is how I found my own answer (see image below): SETTINGS.YAML is the first mini-yaml which is opened when starting OpenRA
Re: [Solved] - OpenRA GameEngine - What is the exact MiniYAML hierachy?
Final Update in this topic for everyone to read and enjoy:
I've done a full - Windows 10 operating system level - file_io trace when playing
- Red Alert MOD
- Skirmish game
- Against 1 RUSH AI_Bot
- On the map WarWind.
See the attached PDF file (7 pages, Landscape A4 formatted, 68kb size) in the attachment
to get an overview on how and when the OpenRA GameEngine reads which mini-yaml files for
- its own OpenRA GameEngine internal settings.
- the settings and rules from the Selected mod (Red Alert).
REMARK
I was not (yet) able to decode/decypher every single file_io traceline, but this PDF document gives a nice overview,
to continue to dig deeper into the OpenRA GameEngine internals. I hope you will enjoy it.
..
..
I've done a full - Windows 10 operating system level - file_io trace when playing
- Red Alert MOD
- Skirmish game
- Against 1 RUSH AI_Bot
- On the map WarWind.
See the attached PDF file (7 pages, Landscape A4 formatted, 68kb size) in the attachment
to get an overview on how and when the OpenRA GameEngine reads which mini-yaml files for
- its own OpenRA GameEngine internal settings.
- the settings and rules from the Selected mod (Red Alert).
REMARK
I was not (yet) able to decode/decypher every single file_io traceline, but this PDF document gives a nice overview,
to continue to dig deeper into the OpenRA GameEngine internals. I hope you will enjoy it.
..
..
-
- Posts: 9
- Joined: Wed Jun 10, 2020 4:34 pm
Re: [Solved] - OpenRA GameEngine - What is the exact MiniYAML hierachy?
Good Work.
Not sure if you noticed but yamls are loaded sequentially as ordered in the mod.yaml.
So for example rules are loaded in the following order:
1st ra|rules/misc.yaml
ra|rules/ai.yaml
ra|rules/player.yaml
ra|rules/palettes.yaml
ra|rules/world.yaml
ra|rules/defaults.yaml
ra|rules/vehicles.yaml
ra|rules/husks.yaml
ra|rules/structures.yaml
ra|rules/infantry.yaml
ra|rules/civilian.yaml
ra|rules/decoration.yaml
ra|rules/aircraft.yaml
ra|rules/ships.yaml
Last ra|rules/fakes.yaml
As it's loaded sequentially you can actually overwrite/append pre-existing data by placing your modifications in .yamls at the bottom of the list (this is actually the basis of how my teamturkey mod functions).
Same thing applies to .mix files and I suspect everything else included.
Not sure if you noticed but yamls are loaded sequentially as ordered in the mod.yaml.
So for example rules are loaded in the following order:
1st ra|rules/misc.yaml
ra|rules/ai.yaml
ra|rules/player.yaml
ra|rules/palettes.yaml
ra|rules/world.yaml
ra|rules/defaults.yaml
ra|rules/vehicles.yaml
ra|rules/husks.yaml
ra|rules/structures.yaml
ra|rules/infantry.yaml
ra|rules/civilian.yaml
ra|rules/decoration.yaml
ra|rules/aircraft.yaml
ra|rules/ships.yaml
Last ra|rules/fakes.yaml
As it's loaded sequentially you can actually overwrite/append pre-existing data by placing your modifications in .yamls at the bottom of the list (this is actually the basis of how my teamturkey mod functions).
Same thing applies to .mix files and I suspect everything else included.
Re: [Solved] - OpenRA GameEngine - What is the exact MiniYAML hierachy?
@VonBruinwald: Thanks for the compliments
Yes I noticed that already effect via the ProcMon64 file_io output.VonBruinwald wrote: ↑Sun Sep 13, 2020 7:31 pmNot sure if you noticed but yamls are loaded sequentially as ordered in the mod.yaml.
So for example rules are loaded in the following order:
1st ra|rules/misc.yaml
ra|rules/ai.yaml
ra|rules/player.yaml
ra|rules/palettes.yaml
ra|rules/world.yaml
ra|rules/defaults.yaml
ra|rules/vehicles.yaml
ra|rules/husks.yaml
ra|rules/structures.yaml
ra|rules/infantry.yaml
ra|rules/civilian.yaml
ra|rules/decoration.yaml
ra|rules/aircraft.yaml
ra|rules/ships.yaml
Last ra|rules/fakes.yaml
That looks great your TeamTurkey mod :-)VonBruinwald wrote: ↑Sun Sep 13, 2020 7:31 pmAs it's loaded sequentially you can actually overwrite/append pre-existing data by placing your modifications in .yamls at the bottom of the list (this is actually the basis of how my teamturkey mod functions).
Thanks for the heads-up VonBruinwald, since i've not gotten beyond the miniyaml configuration file area yet.VonBruinwald wrote: ↑Sun Sep 13, 2020 7:31 pmSame thing applies to .mix files and I suspect everything else included.