|
|
Joined: Jul 2010
Posts: 2,082
Member
|
|
Member
Joined: Jul 2010
Posts: 2,082 |
Hello, Sirs, good idea. I am on my way from vacation right now, so, pls, let me return to this thread on Monday. Yes, I can implement any changes to simulation.xml or particular aircraft *.xdp files via MultiMod. I will just need these new parts of script to replace. The best form of this "junks" we can discuss on Monday.
|
|
|
|
|
Joined: Mar 2011
Posts: 1,008 Likes: 13
WWI Flight Sims on a Mac Member
|
|
WWI Flight Sims on a Mac Member
Joined: Mar 2011
Posts: 1,008 Likes: 13 |
... If AI squads several miles away are having a greater or lesser occurrence of engine failures you are not really going to notice (especially as the process is randomised for each individual mission). ... Also, in the process of developing and updating the game the developers might make changes to the aircraft files or simulation.xml file, and if that happened the engine failure rules (unless adopted by the developers) would have to be re-added each time. It would be easier to do that for one file (the simulation.xml file) than all the aircraft files... Good points indeed -- I have in the meantime already set up six engine failure "gradations" (as per your previous posts Bletchley) and will do some testing soon in QC mode against, and within, various types -- to see if there are any major differences. Will also have a quick look at some of the individual aircraft xdp files to compare with entries in the simulation.xml file. In the worst case scenario, if it proves unworkable to tweak all xdp files across WoFF, we can all partially rejoice in knowing that when any given engine failure set is loaded via the simulation.xml file -- it is still historically plausible in the sense that no one should be going up in a Fokker Eindecker, for example, against a Spad 13, so there is still some consistency that way too -- since aircraft of (comparably) the same era are usually going up one against the other in WoFF anyway. Thinking out loud here -- the main "culprits" that probably require individual xdp failure rates are the Hisso-Se5 (and 5a) and the Spad 13 stock (220 hp), perhaps also an "enhanced" xdp file failure rate for an early Spad 13 (200 hp), for those who use the 200hp-Spad13-FM mod included in my FM pack for WoFF -- in case it is not practical to comb over all xdp files. Will post again in about a week after testing. Cheers all, Von S 
~ For my various FM/DM/AI/Tuner Mods for First Eagles 2, WoFF, RoF & WoTR, recommended is to check over this post. For my First Eagles 2 clips, go here. ~
|
|
|
|
|
Joined: Jul 2010
Posts: 2,082
Member
|
|
Member
Joined: Jul 2010
Posts: 2,082 |
... If AI squads several miles away are having a greater or lesser occurrence of engine failures you are not really going to notice (especially as the process is randomised for each individual mission). ... Also, in the process of developing and updating the game the developers might make changes to the aircraft files or simulation.xml file, and if that happened the engine failure rules (unless adopted by the developers) would have to be re-added each time. It would be easier to do that for one file (the simulation.xml file) than all the aircraft files... Good points indeed -- I have in the meantime already set up six engine failure "gradations" (as per your previous posts Bletchley) and will do some testing soon in QC mode against, and within, various types -- to see if there are any major differences. Will also have a quick look at some of the individual aircraft xdp files to compare with entries in the simulation.xml file. In the worst case scenario, if it proves unworkable to tweak all xdp files across WoFF, we can all partially rejoice in knowing that when any given engine failure set is loaded via the simulation.xml file -- it is still historically plausible in the sense that no one should be going up in a Fokker Eindecker, for example, against a Spad 13, so there is still some consistency that way too -- since aircraft of (comparably) the same era are usually going up one against the other in WoFF anyway. Thinking out loud here -- the main "culprits" that probably require individual xdp failure rates are the Hisso-Se5 (and 5a) and the Spad 13 stock (220 hp), perhaps also an "enhanced" xdp file failure rate for an early Spad 13 (200 hp), for those who use the 200hp-Spad13-FM mod included in my FM pack for WoFF -- in case it is not practical to comb over all xdp files. Will post again in about a week after testing. Cheers all, Von S Yes, you are right, but with help of MultiMod, the reapplying of mod after any OBD update can be matter of seconds.
|
|
|
|
|
Joined: May 2016
Posts: 1,523
Member
|
|
Member
Joined: May 2016
Posts: 1,523 |
A few random thoughts/observations:
--Using JJJ's Multimod is definitely the way to go, although you could use JSGME to load alternative engine failure mods. I imagine we would have to create at least two or three versions of a JSGME mod to reflect different time periods and updates/improvements to different engine series such as early vs. late Hisso's etc. The Multimod would allow you to do this dynamically, or "on the fly" as it were, so it is undoubtably the better option.
--My understanding is the main simulation.xml file serves as a "base" model for engine failure rules that applies to ALL planes, including player and AI. Therefore, my recommendation would be to set it to reflect an "average" failure rate which would be somewhere between the tier one and tier six engine types as discussed by Bletchley. We could then use Individual aircraft .xdp files to create more "specialized" or unique engine failure rules for individual engine types, as is currently done for a few aircraft already in the game. Again, my understanding is that the specialized failure rates for some of the aircraft currently in the game reflect aircraft with notably worse engine reliability issues than average. Therefore, with this approach, we might have to consider modifying some aircraft .xdp files to reflect aircraft with better than average engine reliability so they don't get stuck with the "base" failure rate contained in the main simulation.xml file. We might also need to have two or three versions of the simulation.xml file to reflect overall improvement in engine reliability as the war progresses, although this is only a possible option.
--In the alternative, we could use a simulation.xml file that establishes a fairly low rate of engine failures (similar to Bletchley's tier five or six engines) and then use individual aircraft .xdp files to only model aircraft with higher failure rates. This would be similar to how the game currently works, except with more planes with specialized rules. Again, these individual .xdp files might have to be adjusted over time for some aircraft in order to reflect that some aircraft received improved engines as the war progressed and various engine issues in real life were resolved.
For your consideration....
“With Major Lawrence, mercy is a passion. With me it is merely good manners. You may judge which motive is the more reliable.”
|
|
|
|
|
Joined: Oct 2019
Posts: 411 Likes: 3
Member
|
|
Member
Joined: Oct 2019
Posts: 411 Likes: 3 |
in case it is not practical to comb over all xdp files. My suggestion is to use only the xdp files and leave the simulation.xml. You can use only the xdp files that end in "sqd" (which is the player's aircraft). There are about 78. Then if JJJ can program a "search" to find that same line in each of the other xdp files, the final value can be replaced. For example (I don't know what value in the xdp you're going to change), If there is such a string in the xdp as "Engine Failure hours=150", then you change it to "Engine Failure hours=100" in xdp file inside the "sqd" folder only. Then apply JJJ's program, it will search for the xdp files in each of the other aircraft folders "AC1, AC2, AC3, AC4, AC5, QC1, SQ1, SQ2, SQ3, SQ4, and SQ5" and copy only that change into the xdp file. Effectively, you can only modify 78 files, and auto-apply the same settings to ~7,000 files. So, when JJJ's mod is released, it will already have the settings to change each xdp file with a click of a button.... I think. Going the route of a generic simulation.xml would be the last option in my opinion.
|
|
|
|
|
Joined: Mar 2011
Posts: 1,008 Likes: 13
WWI Flight Sims on a Mac Member
|
|
WWI Flight Sims on a Mac Member
Joined: Mar 2011
Posts: 1,008 Likes: 13 |
Had a bit of free time during the weekend and, after more (initial stage) crude testing -- I agree with BB and Orbyx that best, for those interested in tweaking engine failure rates to the fullest in WoFF -- is to tinker with the relevant <failure> entries in the xdp files for aircraft. In terms of the general simulation.xml file, stock nos. that are already there (for BH&H2) - or the stock ones from UE/PE WoFF -- that I tend to use - should be good enough as a generic baseline. Have done some testing so far with six different nos. sets in the simulation.xml file, with one set causing crashes, and leaving another couple of files where I didn't spot anything of significance. Obviously it is best to test such changes extensively in campaign mode -- although I will leave the sets of entries further below, which I think are somewhat successful, and for those who wish to tinker further with them. JJJ's MultiMod is definitely the way to go for such changes, and should allow for easy tweaking of individual xdp failure rate entries. I have done a quick search in one of my find-and-replace programs for the <failure> entry in xdp files, and I have found that only the following aircraft contain failure entries in their xdp files (do however double-check since I might have missed an entry or two): Fokk D.3 Fokk E.4 Gotha G.4 Pfalz D.3a Se5 (Hisso) Se5a (Hisso) N.28 Spad 7 Zeppelin A quick look, for example, at the failure entry nos. in the Pfalz xdp file, indicates that they are about 50% reduced from stock failure nos. in the simulation.xml file in BH&H2, etc. Considering that xdp failure entries most likely override stock failure nos. in the simulation file, those running stock failure nos. (in the simulation.xml file) from UE/PE WoFF in BH2 might wish also to tweak, as relevant, entries in the xdp files -- i.e., to reduce, for example, the Pfalz failure nos. to 50% of stock failure nos. from the UE/PE era, and so on. Theoretically, it should also be possible to include failure nos. in other xdp files, for other aircraft too, where such entries are missing -- again, depends on how much time/energy one wants to invest in such a project. Currently I am busy with work and other things but might consider revisiting this interesting topic in the near future. (At any rate it's a project that will work best if several WoFFers tweak and test such additions in campaign mode, in BH&H2 -- time-permitting -- since QC mode probably won't show the full spectrum of results.) By the way, here are the four sets of failure entry nos. for the simulation.xml file that didn't cause any crashes and that appear to be worthwhile to explore further (initially I started with six entries, one seemed largely redundant; one created errors and crashes in BH2): Set 1 - attempt to create horrible failure rates (did not experience any failures in QC mode; perhaps these numbers will work best in campaign mode) <Failure weight="1.0" masterdisable="n"> <FailureRule SystemID="engine_one" average_hrs="15" damageAmount_pct="51" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="45" damageAmount_pct="90" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="75" damageAmount_pct="25" frequency_secs="91" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="115" damageAmount_pct="29" frequency_secs="15" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="15" damageAmount_pct="51" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="45" damageAmount_pct="90" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="75" damageAmount_pct="25" frequency_secs="94" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="115" damageAmount_pct="29" frequency_secs="15" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="25" damageAmount_pct="24" frequency_secs="22" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="20" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="75" damageAmount_pct="25" frequency_secs="40" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="20" damageAmount_pct="70" dump="y"/> </Failure> Set 2 - experienced engine failure twice in flight, and also needed several attempts to restart engine at field (tested in QC mode); opponent was Bristol Scout that also experienced engine failure but managed to restart engine in dogfight, etc. <Failure weight="1.0" masterdisable="n"> <FailureRule SystemID="engine_one" average_hrs="40" damageAmount_pct="36" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="70" damageAmount_pct="75" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="100" damageAmount_pct="10" frequency_secs="106" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="140" damageAmount_pct="14" frequency_secs="30" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="40" damageAmount_pct="36" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="70" damageAmount_pct="75" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="100" damageAmount_pct="10" frequency_secs="109" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="140" damageAmount_pct="14" frequency_secs="30" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="50" damageAmount_pct="9" frequency_secs="27" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="45" damageAmount_pct="55" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="100" damageAmount_pct="10" frequency_secs="45" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="45" damageAmount_pct="55" dump="y"/> </Failure> Set 3 - stock UE/PE failure nos. (they work well enough and sometimes give engine failure in campaign mode (didn't experience any failures this time around in QC testing) <Failure weight="1.0" masterdisable="n"> <FailureRule SystemID="engine_one" average_hrs="60" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="90" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="120" damageAmount_pct="5" frequency_secs="111" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="160" damageAmount_pct="9" frequency_secs="35" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="60" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="90" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="120" damageAmount_pct="5" frequency_secs="114" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="160" damageAmount_pct="9" frequency_secs="35" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="70" damageAmount_pct="4" frequency_secs="32" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="65" damageAmount_pct="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="120" damageAmount_pct="5" frequency_secs="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="65" damageAmount_pct="50" dump="y"/> </Failure> Set 4 - attempt to create slightly more "robust" nos. than in stock UE/PE (experienced engine failure once in flight; didn't have opportunity to test engine restart on field, since I crashed while attempting to evade a Bristol Scout -- the Fokk E.II was used in all tests, against a Bristol) <Failure weight="1.0" masterdisable="n"> <FailureRule SystemID="engine_one" average_hrs="70" damageAmount_pct="26" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="100" damageAmount_pct="60" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="130" damageAmount_pct="3" frequency_secs="116" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="170" damageAmount_pct="6" frequency_secs="40" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="70" damageAmount_pct="26" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="100" damageAmount_pct="60" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="130" damageAmount_pct="3" frequency_secs="119" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="170" damageAmount_pct="6" frequency_secs="40" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="80" damageAmount_pct="2" frequency_secs="37" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="75" damageAmount_pct="40" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="130" damageAmount_pct="3" frequency_secs="55" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="75" damageAmount_pct="40" dump="y"/> </Failure> Cheers all and looking forward to further developments and posts on this topic, Von S 
~ For my various FM/DM/AI/Tuner Mods for First Eagles 2, WoFF, RoF & WoTR, recommended is to check over this post. For my First Eagles 2 clips, go here. ~
|
|
|
|
|
Joined: May 2016
Posts: 1,523
Member
|
|
Member
Joined: May 2016
Posts: 1,523 |
Thanks again for all the valuable testing, vonS. Where do you find the time?  For initial testing purposes, I think we only need to focus on the "average_hrs" variable. The "damageAmount" and "frequency_secs" variables only effect the extent and rate of damage once a failure occurs, I believe. How did your testing values compare to the "base" values in the simulation.xml file? Perhaps that might explain why some caused the game to crash and others didn't? We also aren't 100% positive that the <failure> values replace the values in the simulation.xml file. Perhaps they supplement them in some way instead? There also may be some kind of internal file check that terminates the program if "extreme" values are detected???
“With Major Lawrence, mercy is a passion. With me it is merely good manners. You may judge which motive is the more reliable.”
|
|
|
|
|
Joined: Nov 2010
Posts: 342 Likes: 2
Member
|
|
Member
Joined: Nov 2010
Posts: 342 Likes: 2 |
That's a great start VonS, and I agree with BuckeyeBob that the important figures (in terms of the chance of 'something' going wrong with the engine) are the average_hours figure. If my initial understanding of this are correct, this figure is the mean time between failure (MTBF) : so if this is set at '100' you can expect, on average, one failure every 100 hours which in a 1 hour flight would be 1/100 or 1% chance of failure. If you do this calculation for all 8 lines of instruction (ignoring the engine_two lines that would only apply to multi-engine aircraft such as the Caudron or Gotha) and add them together you should get a figure that provides you with a guide to the chance that 'something' will happen to your engine. In your first set this is an incredibly high 26% (rounded down) of something happening to your engine. Even if this is a relatively minor 'something' it will in most cases be enough to abort your mission. The second set comes in at !3% The UE/PE set is 9% (rounded down) The 4th set is 8% (rounded down) I don't think I would describe any of those figures as robust! I have been using the UE/PE set in Campaign now for the last 10 missions, and although I have not had a failure I have been keeping a record of the number of times that 'A' and 'B' flight members and any covering flight have had to drop out of formation, and it seems to be roughly consistent with that 9% figure so far (difficult to tell for sure with such a small sample of missions). By comparison, the current figure for the Fokker E. IV is 6% rounded up (i.e slightly more reliable then your set 4) Historically, the worst MTBO (Mean Time Before Overhaul) that I could find for an early rotary was 15 hours, or a 7% (rounded up) chance of failure if we can equate MTBO with MTBF. Most rotaries had an MTBO 0f 30 (mid, 3% rounded down) to 50 (late, 2%), whilst stationary ones went from 60-100 (2% rounded up to 1%). Needless to say, compared to a modern aircraft piston engine with 1500 to 2500 hours MTBO this is a very low MTBO (or very high chance of failure,). Another interesting point to bear in mind is that the rotary engines will not suffer from coolant loss, as they are air cooled. If you look at the 'special' failure rules for the Fokker E. IV in the aircraft files you will see that the coolant figures have been removed. So we may have to keep the air-cooled and water cooled engines in different categories. Thanks to everyone who has taken an interest in this, and added their thoughts and ideas. I think it is definitely going somewhere now  B.
Last edited by Bletchley; 07/10/22 08:55 AM.
|
|
|
|
|
Joined: Oct 2019
Posts: 411 Likes: 3
Member
|
|
Member
Joined: Oct 2019
Posts: 411 Likes: 3 |
Interesting discussion.
I'd like to suggest at this point, the skeleton of the mod(s) is/are complete.
If you will be adding for each aircraft, then I would now turn to the simulation.xml file to "fix" those numbers so as not to skew the ones in the xdp files, if that makes sense. If you zero out the simulation.xml numbers, then leave the chance only to the ones in the xdp file to determine the randomness chance. Since you already have a rough idea on what the numbers represent, I don't think it's necessary to test the numbers in campaign. Only test if they cause a crash or not after you eliminate the simulation.xml file "interference". Again, part of the mod could be accomplished if JJJ is interested to program a search function to replace numbers in the simulation.xml file instead of the entire file via jsgme.
Another point to consider is that there should be only two mods to cover the years from 1915-1916 and 1917-1918.
|
|
|
|
|
Joined: Nov 2010
Posts: 342 Likes: 2
Member
|
|
Member
Joined: Nov 2010
Posts: 342 Likes: 2 |
Where we do have historical figures for time between overhaul for a particular engine that can be compared directly with the engine failure figures in a WOFF xdp file, it is for the H-S 8Ba used in the SE5a.
The official British historical TBO for this engine was 60 hrs, but there is evidence that it could have been as low as 20 hrs in the field. It was known to have had problems with the gearing, at least when first introduced. The 60 hr official figure (for the engine once initial problems were ironed out?) gives 2% (rounded up) failure rate per hour. The 20 hr figure (for the engine as originally used) gives 5% failure rate per hr. The figures in the WOFF xdp file for the SE5a works out at 4% (rounded up), very close to the 20 hr TBO.
Last edited by Bletchley; 07/10/22 01:54 PM.
|
|
|
|
|
Joined: Mar 2011
Posts: 1,008 Likes: 13
WWI Flight Sims on a Mac Member
|
|
WWI Flight Sims on a Mac Member
Joined: Mar 2011
Posts: 1,008 Likes: 13 |
@All, very pleased to read the latest posts in this thread gents' - the engine mod really seems to be taking off (sorry for the pun).  @BB, the sim.xml file that caused error messages in WoFF for me contained values half-way between overhaul nos., and frequency nos., in Set 1 and Set 2 (so I deleted that problematic file). It may be the case, as you say, that failure values in the xdp files are supplementary to, but not overriding of, those values in sim.xml (simulation.xml) - an interesting idea suggesting that there are two levels then, rather than one, of randomness operating regarding those failure values. @Bletchley, thank you for that valuable info. and for further observations regarding my test sets - yes, I was testing high values on purpose, hoping to see more random failures, although it would require more flights. I am also noticing the occasional aircraft dropping out of a flight, in campaign mode, with the UE/PE failure values in the sim.xml (quite good for variety). And a good idea regarding removal of those coolant values for rotary engines -- more indication that it is best to keep separate xdp-failure values for rotary vs. inline engines. Here, by the way, is "Set 5" which is stable and gives slightly better (historical?) overhaul/failure times than Set 4 (didn't post Set 5 yesterday) -- frequency/time nos. I had left the same across Sets 4 and 5 (perhaps nos. from Set 5, or nos. close to Set 5, would work best as the zeroed baseline in sim.xml?? -- feel free to tinker with this one too gents'): <Failure weight="1.0" masterdisable="n"> <FailureRule SystemID="engine_one" average_hrs="80" damageAmount_pct="26" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="110" damageAmount_pct="60" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="140" damageAmount_pct="3" frequency_secs="116" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="180" damageAmount_pct="6" frequency_secs="40" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="80" damageAmount_pct="26" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="110" damageAmount_pct="60" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="140" damageAmount_pct="3" frequency_secs="119" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="180" damageAmount_pct="6" frequency_secs="40" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="90" damageAmount_pct="2" frequency_secs="37" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="85" damageAmount_pct="40" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="140" damageAmount_pct="3" frequency_secs="55" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="85" damageAmount_pct="40" dump="y"/> </Failure> @Orbyx, good points - I would also prefer that the no. of such engine-failure mods. be kept streamlined, perhaps no more than two or three (early war to mid-1916, mid war then to summer of '17, late war then to end of war, etc.) - might also be possible to get away with only one engine-failure mod. if a single baseline is chosen for the sim.xml, and then to plug in missing failure entries even for various aircraft/xdp files currently missing that info. - then there is no need to specify period of war since, for example, each aircraft type has its service dates anyway (thinking out loud, but some streamlining would be preferable to a myriad of mods and sub-mods that toggle engine failure rates) - this would also allow JJJ then to implement only a single radio button in the MultiMod (e.g., "to activate historical engine failure rates per aircraft type for the entire war, click here"). @All, speaking from the perspective of an old-school Mac user (thinking here in terms of object-oriented/end-user results in software) -- if the ratio between failure nos. in xdp (also in the sim.xml file) in WoFF and actual, in-sim failure results is not 1:1 but perhaps something like 1.2:1 or 1.5:1, depending on how failure algorithms/randomizations work in WoFF - it might then be wise to stick with the values from the stock UE/PE sim.xml, for the sim.xml file (around 9% failure rate as Bletchley has indicated, slightly higher than historical in several cases, I suppose) -- and then to fine-tune only in xdp files where failure nos. will be tweaked further, or added, if necessary -- speculating here but that might give something closer to "real world" results than if values in my "Set 5," for example, are used as the zeroed values in the sim.xml file -- think of it as "randomization offset" (offsetting for randomization that will err on the side of not giving engine failure, as opposed to giving engine failure). Anyway - great thoughts all - I will drop in again in a couple of weeks if I think of something else to add here but will in the meantime keep following this thread with great interest. Cheers, Von S NOTE: if stock UE/PE simulation.xml failure rate nos. are implemented, or even something similar to Set 5 -- falure rates in xdp files where such rates are already present should then be re-adjusted in relation to failure rates in sim.xml (to preserve sim.xml vs. xdp failure proportion and ratios) -- since, currently, at least from what I've seen for the Pfalz D.3a nos., they are adjusted in relation to stock failure nos. in the stock BH&H2 simulation.xml file and might cause imbalances if not re-adjusted when/if a new set of failure nos. is plugged into the sim.xml file.
Last edited by VonS; 07/10/22 03:48 PM. Reason: Edited post.
~ For my various FM/DM/AI/Tuner Mods for First Eagles 2, WoFF, RoF & WoTR, recommended is to check over this post. For my First Eagles 2 clips, go here. ~
|
|
|
|
|
Joined: Nov 2010
Posts: 342 Likes: 2
Member
|
|
Member
Joined: Nov 2010
Posts: 342 Likes: 2 |
Hi
I have put together a set of 4 failure rules that have a spread of 6% : Early-Mid Rotaries; Late Rotaries; Early-Mid Stationary; Late Stationary. I have used the UE/PE set as my baseline, changing only the average_hrs figures, the figures based on somewhat generalised Time Between Overhaul figures (though I have halved them, as I think they are probably on the optimistic side for engines being maintained in the field). I have so far tested each one just to make sure that they 'work', i.e do not appear to cause and crashing. If my assumption about the way this works is correct then:
Early-Mid Rotaries : 8% per hour failure rate (i.e. for 1 hour missions you should expect to see on average one failure every 12-13 missions) Late Rotaries : 4% per hour failure rate (i.e one failure every 25 missions) Early-Mid Stationary engines : 3% per hour failure rate (i.e. one failure every 33 missions) Late Stationary engines : 2% per hour failure rate (i.e. one failure every 50 missions)
I have started testing the first, to see if the failure rate matches expectations (it may take a bit of time to build a large enough sample to check this). In campaign the testing can be done by keeping a total of hours flown by aircraft in 'A' and 'B' flight (i.e. 6 aircraft flying a 1 hr mission would total 6), and the number of individual drop-outs from formation. You can then divide the number of total dropouts by total hours flown, multiplied by 100, to arrive at the hourly rate of failure as above. If anyone else wants to have a go, please feel free!
Early-Mid Rotaries
<FailureRule SystemID="engine_one" average_hrs="70" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="100" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="150" damageAmount_pct="5" frequency_secs="111" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="180" damageAmount_pct="9" frequency_secs="35" dump="y"/>
<FailureRule SystemID="engine_two" average_hrs="70" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="100" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="150" damageAmount_pct="5" frequency_secs="114" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="180" damageAmount_pct="9" frequency_secs="35" dump="y"/>
<FailureRule SystemID="coolant_reservoir" average_hrs="85" damageAmount_pct="4" frequency_secs="32" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="80" damageAmount_pct="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="150" damageAmount_pct="5" frequency_secs="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="80" damageAmount_pct="50" dump="y"/>
Late Rotaries
<FailureRule SystemID="engine_one" average_hrs="140" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="200" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="300" damageAmount_pct="5" frequency_secs="111" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="360" damageAmount_pct="9" frequency_secs="35" dump="y"/>
<FailureRule SystemID="engine_two" average_hrs="140" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="200" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="300" damageAmount_pct="5" frequency_secs="114" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="360" damageAmount_pct="9" frequency_secs="35" dump="y"/>
<FailureRule SystemID="coolant_reservoir" average_hrs="170" damageAmount_pct="4" frequency_secs="32" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="160" damageAmount_pct="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="300" damageAmount_pct="5" frequency_secs="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="160" damageAmount_pct="50" dump="y"/>
Early-Mid Stationary
<FailureRule SystemID="engine_one" average_hrs="200" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="250" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="350" damageAmount_pct="5" frequency_secs="111" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="450" damageAmount_pct="9" frequency_secs="35" dump="y"/>
<FailureRule SystemID="engine_two" average_hrs="200" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="250" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="350" damageAmount_pct="5" frequency_secs="114" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="450" damageAmount_pct="9" frequency_secs="35" dump="y"/>
<FailureRule SystemID="coolant_reservoir" average_hrs="200" damageAmount_pct="4" frequency_secs="32" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="250" damageAmount_pct="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="350" damageAmount_pct="5" frequency_secs="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="250" damageAmount_pct="50" dump="y"/>
Late Stationary
<FailureRule SystemID="engine_one" average_hrs="400" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="500" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="600" damageAmount_pct="5" frequency_secs="111" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="800" damageAmount_pct="9" frequency_secs="35" dump="y"/>
<FailureRule SystemID="engine_two" average_hrs="400" damageAmount_pct="31" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="500" damageAmount_pct="70" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="600" damageAmount_pct="5" frequency_secs="114" dump="y"/> <FailureRule SystemID="engine_two" average_hrs="800" damageAmount_pct="9" frequency_secs="35" dump="y"/>
<FailureRule SystemID="coolant_reservoir" average_hrs="250" damageAmount_pct="4" frequency_secs="32" dump="y"/> <FailureRule SystemID="coolant_reservoir" average_hrs="300" damageAmount_pct="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="500" damageAmount_pct="5" frequency_secs="50" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="300" damageAmount_pct="50" dump="y"/>
|
|
|
|
|
Joined: Jul 2010
Posts: 2,082
Member
|
|
Member
Joined: Jul 2010
Posts: 2,082 |
Nice progress, guys. I am patiently waiting for your conclusions and final modding values.
|
|
|
|
|
Joined: May 2016
Posts: 1,523
Member
|
|
Member
Joined: May 2016
Posts: 1,523 |
FYI, I was able to successfully copy and paste the failure rules from one aircraft to another (Fokker EIII to a Sopwith Strutter A2) without causing any game exceptions, so at least that is feasible. I am currently testing to see if this seems to make any difference in the failure rate for this aircraft. So far, I haven't noticed any differences, but it is still early.
“With Major Lawrence, mercy is a passion. With me it is merely good manners. You may judge which motive is the more reliable.”
|
|
|
|
|
Joined: Mar 2003
Posts: 8,895 Likes: 75
Hotshot
|
|
Hotshot
Joined: Mar 2003
Posts: 8,895 Likes: 75 |
Testing is the key - probably easier to test a base set, then extrapolate from there. It would need many missions, and preferably on different PCs, to get a feel of failure rate in sim - even then luck will play a part.
|
|
|
|
|
Joined: Jun 2012
Posts: 7,997
BWOC Survivor!...So Far!! Hotshot
|
|
BWOC Survivor!...So Far!! Hotshot
Joined: Jun 2012
Posts: 7,997 |
Always good to have opinions/advice from the developers!!
Thanks for your input Mark!
Case: Cooler Master Storm Trooper PSU: Ultra X3,1000-Watt MB: Asus Maximus VI Extreme Mem: Corsair Vengeance (2x 8GB), PC3-12800, DDR3-1600MHz, Unbuffered CPU: Intel i7-4770K, OC to 4.427Ghz CPU Cooler: Cooler Master Seidon 240M Liquid CPU Cooler Vid Card: ASUS GTX 980Ti STRIX 6GB OS and Games on separate: Samsung 840 Series 250GB SSD Monitor: Primary ASUS PG27AQ 4k; Secondary Samsung SyncMaster BX2450L Periphs: MS Sidewinder FFB2 Pro, TrackIR 4
|
|
|
|
|
Joined: Oct 2019
Posts: 411 Likes: 3
Member
|
|
Member
Joined: Oct 2019
Posts: 411 Likes: 3 |
I would say start with an obvious outcome to determine your baseline.
For example, I would suggest to test with 100% failure rate only in one of the aircraft xdp files. Of course, I would eliminate the simulation.xml numbers, so that they don't interfere with the test.
Then you should see at 100% failure, there would not be a single mission where the aircraft would not fail. In that case, you know it's working as intended and there is no other factors playing into failure rates. Now you can configure the failure rates from that 100% base without the need to test anything further. As you would have 0%=not a single failure and 100%=always a failed engine. Then if you have a particular aircraft fails 9%, then just configure that percentage into the xdp file and know that it will work if you zero out the sim.xml file.
|
|
|
|
|
Joined: Nov 2010
Posts: 342 Likes: 2
Member
|
|
Member
Joined: Nov 2010
Posts: 342 Likes: 2 |
orbyxP, that is a very good point : the lower the numbers the higher the potential failure rate, so if you replace all the average_hrs numbers with a "1" you should get an extremely high failure rate (if it does not cause the game to crash), as this should give an average failure rate of 8 per hour for a single engine aircraft, and testing to determine that the average failure rate is indeed 8 failures per hour could in theory be done much faster (as missions are likely to be shorter and coarse trends should appear faster). However, there is no 100% failure rate as such, as Polovski has indicated that it is a probabilistic system. Even with a failure rate of 8 per hour it would still be possible to fly several missions in a row with no failures (feeling lucky?). Equally, there would be many missions that last less than 7 and a half minutes. The larger the 'sample' of missions, the closer it should get to the average rate, and as the mission would on average be much shorter than 1 hour, you should be able to test it more quickly. I would think that 100 missions is a reasonable sample size, although coarse indications should be arrived at faster. With all figures replaced with a "1" it should be apparent reasonably quickly, unless you are very lucky, that you have a high failure rate - just not how high! Replacing all average_hrs numbers with a "0" should lead to either zero engine failures, or an immediate engine failure as soon as the engine is switched on, or a game crash. I guess the extreme ends of this spectrum (using 1 or 0) might produce instability in the game or PC. Anybody like to try it?
My guess is that if there are instructions for engine failure in the aircraft file, these are used by the game in preference to the instructions in the simulation file, rather than using one to modify the other (as the format in both is identical, except for the Fokker E IV where the coolant-related figures have been removed). If so, the game 'looks' first to the aircraft file for instructions, and if it fails to find them there it 'looks' to the simulation file as the default (?). Not sure how to test this without potentially crashing the game. I guess if you replaced all the numbers for average_hrs in an aircraft file that has them with "999" and all the numbers in the simulation file with "1" and then fly that aircraft you should be able to tell fairly quickly which file, aircraft or simulation, the game is taking instructions from - but not conclusively if one is modifying the other in some way.
If those who feel they might want to use the mod are happy with the 8-4-3-2 ratio in the 4 sets above, but think that the spread is too low to be noticeable, then it can be scaled up - to 12-6-4/5-3 or even 16-8-6-4 to maintain the ratio but increase the spread, as no one can sure of the actual historical numbers, the evidence for engine failures being largely anecdotal and TBO being more of a guide. In the end it is what most players would feel happy with, I think.
Last edited by Bletchley; 07/12/22 12:58 PM.
|
|
|
|
|
Joined: May 2016
Posts: 1,523
Member
|
|
Member
Joined: May 2016
Posts: 1,523 |
Interesting points, gentlemen.
I have done some additional testing, switching to a "revised" .xdp for the Sopwith Pup, with the following failure code (not realistic, just for testing):
<FailureRule SystemID="engine_one" average_hrs="1" damageAmount_pct="20" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="2" damageAmount_pct="50" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="3" damageAmount_pct="5" frequency_secs="112" dump="y"/> <FailureRule SystemID="engine_one" average_hrs="4" damageAmount_pct="8" frequency_secs="25" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="5" damageAmount_pct="11" frequency_secs="40" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="6" damageAmount_pct="6" frequency_secs="35" dump="y"/> <FailureRule SystemID="oil_reservoir" average_hrs="7" damageAmount_pct="55" dump="y"/>
Please note that the default Sopwith Pup does not have a unique "failure" profile, so presumably, it normally relies on the failure rules in the simulation.xml file.
I flew two missions with these rules. In my first mission, I experienced an engine failure approximately five minutes into the mission. Additionally, although I did not "see" any AI experience a failure, on checking the WOFF mission.log after the mission, I noticed that at least two other AI aircraft experienced failures.
In my second mission, I experienced an engine failure approximately 14 minutes into the mission. The mission.log revealed that at least 4 AI aircraft also had either engine or oil reservoir failures. In all, 7 out of 11 aircraft in my squadron suffered some sort of damage, but I can't be sure that all of them were due to system failures. In any event, this seems to establish that modified .xdp files do seem to take precedence over the simulation.xml file.
On a side note, be very careful editing the .xdp files. I experienced a game crash because I originally left out a quotation mark (") in front of the number 7 in the last line of the failure rules listed above.
“With Major Lawrence, mercy is a passion. With me it is merely good manners. You may judge which motive is the more reliable.”
|
|
|
|
|
Joined: May 2016
Posts: 1,523
Member
|
|
Member
Joined: May 2016
Posts: 1,523 |
For anyone involved in testing possible changes to the failure rules, I strongly recommend analyzing the WOFF mission.log after the end of each mission in order to see exactly how many failures occur during a mission. Search for the string "failureStart" to see exactly when failures occur. Already, I have noticed that a single aircraft can experience multiple failures, although I am not sure if the results are cumulative. I also noticed that, at least in my two missions, damage to the AI seems to occur on an ordinal basis. In other words, the first AI to experience a failure (if any) is either AC1 or SQ1, followed by AC2, SQ2, and so on. Notably, however, the player aircraft is not always the first to experience a failure during a particular mission.
“With Major Lawrence, mercy is a passion. With me it is merely good manners. You may judge which motive is the more reliable.”
|
|
|
|
|
|
|
J-B Weld
by Terl9999 - 10/02/26 11:54 PM
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|