by Iain Howe of Wayward Studios
Printer Friendly Version
B-17 contains fair scope for user “tweaking”. Not so much the plane skins, but more in the nuts and bolts of the game itself – which is far more interesting! I’m sure someone will hack the resources eventually, anyway, and provide us with custom plane skins, but the following are changes that EVERY user with a text editor can make!
The main source for tweaking is a file called RIVERANDROADSDB.LMF, which is located in the DATABASES directory of your B-17 install. If you open this file up you’ll find that it’s chock full of different areas, and each of those areas contains specific parameters that can be used to affect various areas of the game.
It goes without saying that the settings currently being used represent the Developers best efforts at balancing play properly, and representing things in as historically accurate, balanced and fun a manner as possible. If you leap in and start making near-random changes, they will have both obvious and subtle effects on gameplay. The system that I find works is to make very small changes, document them, and see what the results are. I also keep copies of both the original RIVERANDROADSDB.LMF and the last “good” one that I created. That way you can always roll back later. It sounds like a lot of work, but it’s worth it. You can fine tune your copy of B-17 until it plays exactly the way YOU want it to – or you can screw up so much that the game is unplayable, and you have to replace the parameters file with the old one.
- In addition to RIVERANDROADSDB.LMF there are a couple of Registry Hacks that you can use.
- The first of these is called EnableQuitStartMissions. EnableQuitStartMissions changes the function of the Main Menu’s “Quit Game” switch, allowing the user to launch special missions (as defined in RIVERANDROADSDB.LMF) if you’ve activated EnableQuitStartMissions you’ll need to use ALT+F4 to quit the game.
- The second of these is called ForceWindowed. ForceWindowed makes B-17 boot into a shell, rather than full screened. This shell can be used to view information on the current aircraft by clicking on the “Aircraft” tab (once a mission is in progress). In addition you can use the “Game” tab to affect the simulation. Many of the controls in the “Game” tab may not work correctly – as part of the process involved in finalising the game meant that the resource structure was changed.
There are rumours of additional Registry Hacks that do things like make it snowy throughout Europe and so forth – I’ll be checking into those rumours and bringing you the “fresh word” as soon as I can.
The process of entering a Registry Hack is as follows:
First, think carefully before you perform the Hack. You’ll be playing around in your System Registry – not something a sane person would do if they weren’t sure they knew their way around. Although following these instructions properly puts you at almost no risk at all, if you do something hideously incorrect it is REALLY possible to screw things up in here – so only perform a Registry Hack if you:
· Accept the responsibility for any problems caused. EVEN if that means formatting your hard drive and reinstalling!
· Reckon you can follow the instructions carefully and exactly.
· Understand that it MIGHT affect the stability of your game
· Understand that the process involves meddling with forces that man was not meant to understand. ;-)
1. Press the START button and select RUN
2. Type “Regedit” into the box provided and select OK
3. Open HKEY_LOCAL_MACHINE by clicking on the plus next to it
4. Open Software by clicking on the plus next to it
5. Open Microprose by clicking on the plus next to it
6. Open B17 by clicking on the plus next to it
7. Select General by clicking on it – some data should be displayed in the Right Hand screen.
8. Right click in the Right hand window and select NEW. A cascade menu will pop up from which you should select DWORD Value.
9. The DWORD will be created, and you should rename it now, to match the Hack name. Type them exactly, either “EnableQuitStartMissions” or “ForceWindowed” – without the quotes.
10. Right click on the new hack and MODIFY it. Set the value to 1 (either Hex or Decimal – not important!).
11. Congratulations. You are now a 133T H4X0R, D00D! ;-)
Despite its misleading extension, this is a simple text file. Many of the options are numerical choices, which are made clear within the context
Upon opening it you will, no doubt, quickly become confused. So here’s a simple breakdown of the file’s structure.
Basic Authorship info. If you use any logging tools this information is appended to the file. Replacing our names with yours does NOT, in any way, make you 1337. Adding your name to ours to identify a log as YOURS is different.
Whole bunch of generic game stuff
Full and Mini timeskip lengths. In addition, if timeskips are taking too long, reduce the TimeOut setting length.
- Release Vs. Debug
Through out the file if you put // before a line of text it’ll get ignored. This is two sets of the same parameters, Debug and Release, obviously the Debug settings were used for testing, whilst the Release ones represented the final game. Either one or the other set should be “commented out” with //. I suggest editing the Debug ones to your hearts content, but preserving the Release settings, commented out.
- Takeoff Runway
The standard runway is –1. You can, apparently, force the B-17’s to take off from one of the runways regardless of wind direction with this setting.
- Crewmember Highlight
Sick of the white line around B-17 crewmembers when they’re selected? Set this to 0 and remove it!
- Spawn Vs. Takeoff NME Fighters
If you set this to 1, the Luftwaffe will appear in the air – seems to be a good way to guarantee lots of fighter opposition.
- Max No. Of Active Airfields
At the moment, only three groups of Luftwaffe fighters at a time can be vectored towards you. If you’ve got a damn good system, you could crank this number up and allow more Luftwaffe Fighters into the air.
- Allied Fighter Squadron Size
This number represents the number of Fighters in an Escort formation.
- Luftwaffe Squadron Size
This number represents the number of Fighters in a Luftwaffe formation. (Beware: Radically cranking both f and h together will cause MAJOR performance hits!)
- Bomber Captain Views
If you set the restrictions to 0 rather than 1, you’ll get the “big picture” Squadron Commander camera in Bomber Captain campaign mode.
- Severity scalars for Front End weather options
These numbers here are applied to the settings below for wind and Cloud cover to determine easy, medium and hard weather settings.
- Wind figures
This affects Navigation difficulty, and the effect of wind on the aircraft.
- Cloud Cover information
Cloud cover impedes Navigation, and
also makes bombing real difficult. You can manipulate the amount of cloud
- Sound Effects – Careful how you play with these!
- Navigator Prompts – Think the Navigator sits on his mistakes
for too long? Think that 8 miles off course isn’t lost? Change the
settings here for just lost, pretty lost and REALLY lost.
- Mini Mission – See the SPECIFIC section on creating user
- Recon Mission Parameters
- TimeHours – Works on a 24hr clock system. 15 = 15:00, which works well, because there is shadowing. Times closer to midday will make for tough feature identification.
- AltitudeFeet – Determines the altitude of your recon mission. You can specify this to coincide with your average Bombrun altitude if you have one.
- SpeedMilesPerHour – How fast is the recon plane going. Your own aircraft will be travelling at approx 150mph.
- Bearing - What bearing from the target will the run commence from? If you’re sneaky you can configure the Recon settings AFTER you plan your mission, save off and restart the game, and see the target from the direction YOU’LL be flying later.
- DurationSeconds – This is obviously closely tied into the Speed setting. No point in recon that finishes too early.
- CameraAngle – This is the angle of the camera. An angle of 0 points out the nose (useless). An angle of 90 points straight down at the ground.
- FlakProbability – This is a Scalar determining the probability
of there being a flak attack on the recon mission. The recon plane will
never be hit (or how could it return to bring you its film?) but flak
adds a little atmosphere at the cost of obscuring detail on occasion.
- B17 Virtual Damage – Nothing fun in here, this deals with
internal compartment damage in an artistic sense, not a gameplay sense.
- Bail Out – Each Crew position has a difficulty and a bone number.
- Difficulty – A Scalar reflecting the relative difficulty of escape. A value of 1.0 was though excessive – even for the Ball Turret gunner.
- Bone – Bone 0 is the Bomb Bay. Bone 1 is the Waist Hatch. Bone
2 is the Tail Hatch.
- Crew Initiative – Careful how you play with these. Changing
these values could absolutely WRECK the games playability at any crew
autonomy setting other than ZERO. See the separate section on Crew
- Crew Personality
- Injury Stats – Changing these will REALLY change the way injuries work in game terms.
i. FirstAidMaxTimeSeconds – This number represents the length of time (in seconds) that patching up a crewmember on deaths door will take. In effect if you reduce this number you INCREASE the amount of first aid that can be performed in one second of game time.
ii. ResidualDrainTimeHours – This number controls the speed that a crewmember can bleed to death in (standard rate of damage over time). Note that this is applied to any injury AFTER First Aid is applied and is from Shock, Fatigue, Loss of Blood and the effects of Pain Killing drugs.
iii. MaxHealAmount – Health is expressed as a number between 0 and 1. The maximum a character can ever be healed to is 0.7 through first aid. Change this up if you want crewmembers to have a higher threshold.
iv. CriticalHealthLevel – Health is expressed as a number between 0 and 1. When a character takes a hit a number is removed from that 1.0 and further “bleeding” reduces it further. When HEALTH – (Bleeding+Wounds) reaches this threshold the character is defined as being CRITCAL.
v. CriticalInjuryHealTimeModifier – Once a character is injured beneath the CriticalHealthLevel he must be restored to it before further healing can take place. (There is a chance that no further healing will awaken the character). This healing takes longer (is multiplied by the modifier above).
vi. MinKnockoutHealth – Health is expressed as a number between 0 and 1. At this number the game starts checking for unconsciousness.
vii. Min KnockoutChance – Expressed (again) as a number between 0 and 1 this is the probability at the min level above that a crewmember will pass out.
viii. MaxKnockoutHealth – With a health below this value no crewmember will EVER remain conscious.
ix. MaxKnockoutChance – Expressed as a probability this represents the chance that a crewmember will pass out at the max value.
x. KnockoutCheckIntervalSeconds – After this interval elapses the sim will check for Knockouts in injured crewmembers.
xi. xInitialDamageMin – This represents the base damage inflicted by ONE INCIDENCE of ONE ROUND of the indicated damage vector (Fire, Flak, Cannon etc).
xii. xDamageRange – This represents the range of potential modifiers (+/-) applied to the base damage (above).
xiii. xDamageSeconds – A period of time, in seconds, in which the DamagePerTime damage is inflicted. This damage is inflicted until First Aid is applied.
xiv. xDamagePerTime – This is an additional amount of damage inflicted each time the xDamagePerTime period is elapsed. This represents immediate shock, bleeding and pain. Untreated wounds are bad news, no?
- Panic Effects
i. PanicSkillModifierMin – If a guy is panicking then his skills will be affected. The most stalwart troops will only be affected by this amount (.25 = reduced by 25%)
ii. PanicSkillModifierMax – This is the amount of effect on skills that the shakiest crewmembers will experience
iii. PanicTimeModifier – First Aid, Winching down gear – whatever the task it takes longer if your hands are shaking! (1.5 = 150% normal time).
iv. Panic/AggressionAmplifier – Do your guys whimper and cower or stupidly blast round after round at nothing? A value of .50 = a fifty-fifty chance of either.
v. PanicCureTimeSeconds – How long do your guys stay panicked if you take them under manual control?
- Learning Speeds – Skills can improve by the indicated amount per mission. If a human being takes control then they improve by the higher indicated amount, depending on how much of the ImprovementCombatTime the player occupies them for.
- Togglier Reaction times and Emergency System speeds in seconds.
- Reward System
- If you think you get medals too easily take down the points totals for damaging and destroying fighters! Other events with positive and negative effects are listed too.
- Compartment Fire Parameters – Careful how you play with these!
- You can adjust the severity of fire – for example if you want it to be able to spread faster, but do a lot less damage, you could quickly have your B-17 ablaze from stem to stern. By changing the IntensitySpreadMin setting. It’s pretty unsporting to change it lower than the first level of warning though (See Prompts above).
- Gunner AI – Changing this can result in sniper gunners putting rounds through the heads of the pilots and the engines of the fighters. Be advised that you, as player, may have a LOT less fun if the AI’s pick off all fighters at over a kilometre distant!
- By separating Range Spot and Range Fire by a larger distance, the Gunners will be calling fighters out before engaging them.
- If you take down the Min Fire then more friendly fire incidents will occur, but more lethal hits might be scored on the enemy fighters
- With more separation between Max and Min BurstTime settings the gunners will be more economical. Or you could increase the Pause time for more “Short Controlled Bursts”.
- DO NOT PLAY WITH MUZZLEVELOCITY – That was in there in case we changed it in the Physics engine at any point. We didn’t. Nuff said.
- The Max Error’s and Time to Home’s can be reduced for a more homegenous (and better average) performance. This will minimise the effect of experience on the gunners though, as even at low skill levels the AI Gunners will be pretty accurate.
- Max Home and Min Home means that the gunners will start to aim at the bigger setting with a higher skill and at the smaller setting with a lower skill. Increasing the difference will result in more homogenous performance by experience. Pushing both numbers out will increase accuracy. Pushing both numbers in will reduce accuracy. Note that they will still fire without aiming if the NME fighters enter their “RangeMaxFireYards” – but not accurately.
- Waste is a thief! Be careful that you don’t have your gunners blowing away all their ammo due to bum settings in here.
- Engine Sounds – Don’t touch! More on the sound at the bottom!
- Flak Information
- It is REALLY, REALLY, REALLY easy to render B-17 unplayable with this stuff. On the other hand careful tweaking will suit the game more to your desire. There is a separate section dealing with Flak below.
- Bomb Damage
- This is all pretty self explanatory. Only mess with this stuff if you REALLY feel that Bomb Damage is incorrect.
- Aircraft Gun Parameters
- As part of the difficulty levelling, some help is given to the player when enemy planes are set to lower levels. This help is in the strength of the bullet, and in the scaling of the Collision Geometry. Right now it’s pretty transparent that this is happening – and as these scalars refer to invisible boxes surrounding parts of the aircraft, it’s probably wise not to radically mess with them.
- Damage scalars, on the other hand, are ways of taking the complex mesh of individual component strengths and applying a broad scalar to them in order to easily make certain classes of aircraft more or less rugged. In addition you can make the damage differentiation between the sturdier Radial engines and the more fragile Inline and Jet ones more or less pronounced.
- Finally, some aircraft are equipped with 30mm cannon rather than the more usual 20mm ones. Simply change the CannontoBf109CannonDamageScalar to determine the damage relationship between them. The higher the number, the greater the amount of damage the 30mm cannon does. The lower, the closer its effect is to its smaller brother.
- Gun Damage
- Both Cannon and Machine gun have their section here. The hit probabilities and the damage. Hit probability determines the chance (expressed as a Scalar) that a particular component is hit IF THE GEOMETERY IT OCCUPIES is struck by a single bullet of that type.
- Damage determines the damage inflicted on the component by a single strike. Note that all totals should add up to 1.0. Thusly a component with a machinegun damage rating of 0.2 can take 5 machinegun rounds before being broken.
- Damage Effects
- PostCrashVelocityBelowWhichEffectsSwitchOff – This turns off streaming effects. No gameplay value, probably best not to mess.
- PostCrashVelocityBelowWhichHugeFireSwitchesOn – Inhibits the huge explosion after crashing. No gameplay value, again.
- TextureDamageFromOilPerTick – This controls the visual speed of the oil staining after an engine suffers an oil leak. Affects only the visual damage, not the actual effect on the engine.
- TextureDamageFromHugeFirePerTick – Causes the blackening from huge fireballs. No gameplay effect to this setting.
- TextureDamageFromFirePerTick – This affects the “eating” of the control surfaces during an engine fire. This affects the texture only, again no actual gameplay application. This SHOULD be set lower than the oil one, above.
- AmountOfOilTextureDamageBeforeUpdate – The comment really says it all for this one.
- AmountOfFireTextureDamageBeforeUpdate – See the Amount of Oil Texture damage comment.
- ExplosionSizeForDetachedPartDissapear – There’s a big explosion when a wing comes off. This determines HOW big the explosion is.
- ExplosionSizeForFuelTankMain – This is the biggest damn bang in the game. How big SHOULD it be? (Bigger?!) :)
- ExplosionSizeForFuelTankWing – For a half wing tank.
- ExplosionSizeForDetach – For the detached wing itself.
- LargeExplosionLikelihoodForWingDamage – Sometimes catastrophic damage causes a bigger bang. What chance as a Scalar quantity is the big explosion?
- ExplosionSizeForWingDamage – This represents just damage, not the whole deal.
- EngineDamageFromEngineFirePerTick – Again the comment says it all. Just remember how short a period of time a ‘tick’ is!
- PercentageFuelLossPerTick – Fuel leaks can be made more concerning and less devastating by playing with this setting. Again remember how short a tick is – and experiment! Also remember it’s a PERCENTAGE not a fixed sum.
- PercentageOilLossPerTick – See comments above.
- ChainLiklihoodFactorPerTick – See, explosions can cause other explosions. Pretty soon this could wreck the whole plane.
- SecondaryDamageFromExplosionsFactor – When something goes boom this puts stress on the rest of the airframe. Stuff can get fried, shaken loose or snapped and bent if the bang is big enough. This should be kept pretty low in general, unless you want stuff breaking up front because the Tail Gunner took a round.
- ChanceOfExtraDamageFromFirePerTick – Fire’s a pretty insidious thing. Increasing this makes it that much worse – malfs will crop up all over the plane.
- ChanceOfExtraDamageFromEngineFirePerTick – The comments about as clear an answer as I could get. However at a GUESS I’d say that this is the scalar that causes actual FM damage to surfaces brushed by an Engine Fire. Cue exploding wings and Fuel tanks.
- ChanceOfExtraDamageFromHugeFirePerTick – You might think this is pure windowdressing, but with this set too low, some B-17s can escape from what look like totally fatal exlosions and fire hazards.
- DAMAGE_EFFECTS_ChanceOfExtraDamageFromHugeEngineFirePerTick – The results of a streaming huge engine fire. This is internal to the affected engine.
- ChanceOfExtraDamageFromHugeSmoke – No smoke without fire, in this case it’s caused by a fuel leak. The damage (I believe) refers to the engine / wing/ tank itself, and not to any other systems.
- DamageToMainAerofoilFromHittingModifier – Some areas of the wing are separate from the wing. This reflects their bulk shielding the wing itself from damage and allows a lesser portion of the damage to affect the wing. If set to 0.0 Engine and Aileron hits won’t damage the wing at all – highly unrealistic!
- ChanceOfFuelTankExploding – Some days it’ll take a lot of rounds… Then again BOOOM. If you think exploding fuel tanks are too rare or too common you can edit this to introduce more or less of this fairly random plane killer.
- LikelihoodOfWingTipBreakOff – When the wing suffers extreme damage, sometimes the wing widows its tip sacrificially to prevent extreme damage.
- ProbabilityOfTemporaryEffect – Effects the chance of a non-critical hit to the engine knocking some fuel or oil onto the exterior of the carburettor or somesuch. Causes the heavier grey smoke that just stops after awhile.
- ProbabilityOfSmokeEffect – If the engine is hit, a proper smoke effect representing an oil leak onto the carb occurs. This causes damage to the engine. This time the visual and damage effect are linked.
- ProbabilityOfOilLeak – This damage effect represents a cracked oil reservoir – oil spills away and eventually the engine will seize. Note that this time the visual and damage effect are linked.
- ProbabilityOfFuelLeak – A line in the engine gives way and a fuel leak develops. Again, the effect and the damage are linked.
- ProbabilityOfFire – Sometimes a fuel leak catches fire. This is the probability. Note that you really DO want the player to have time to shut off the fuel pump, and pump out the fuel.
- OilLeakToOilFireProbFromWingDamage – Fuel isn’t the only flammable liquid in the engine. Oil is LESS flammable though, so a lesser chance of causing a fire.
- MaximumBuckledWingAngle – It isn’t reasonable to expect a wing to buckle too far without breaking. This determines the maximum angle a wing will buckle to.
- ForceToInitiateBuckle – The force to buckle is measure in arbitary units. This is the point at which the stressed metal STARTS to buckle.
- ForceToBuckleToFullDeflection – And this is the force required to buckle it to the angle decreed as maximum above. Note that you’ll need to modify this number proportionately to any change to the maximum angle.
- ProbabilityOfNormalFireType – Fuel fires can either be little trails of flame (At this probability)
- ProbabilityOfBigFireStartingWithBigSmoke – This controls the chance that a major external fire will kick off with some smoke first as a warning. Doesn’t happen all the time.
- DamageFromChainReactionBase – The scalar represents the proportion of initial damage done per chain explosion.
mm. DamageFromChainReactionRandom – An extra random component hooked on to Chain Damage.
- LiklihoodOfInternalFirePerTick – Engine fire causing fire in an internal compartment.
- SpeedToPutOutFire – The diving speed at which engine fires might be extinguished.
- SpeedToMakeFireSplutter – This is the speed at which fire begins to flicker out.
- UpperBandBaseDefault – The altitude at which the upper band contrails start to form.
- UpperBandFullIntensityHeight – The max intensity of the upper band.
- MaxUpperOffset – The potential offset (due to seasonal conditions) can be this big.
- LowerBandMidDefault – The Default mid level of the “inversion layer” when it occurs.
- LowerBandWidth – The lower end of the inversion layer.
- MaxLowerOffset – The offset to account for seasonal variations in the inversion layer.
- LowerBandIntensity – This allows you to make the lower band less intense.
- LowerBandLikelihood - What’s the likelihood of an inversion layer?
- PilotFireDamageFromHugeFirePerTick – Allows you to inflict damage to crewmembers from huge fires.
- PilotFireDamageFromFirePerTick – and here from littler fires.
- PilotInitialDamageTolerance – The comment covers this one.
- ToleranceReductionFromExplosion – The effect of explosions on Pilot Morale.
- ToleranceReductionFromDetachPerTick – Pause control for ejection after wing detachment.
- ToleranceReductionFromAsGoodAsDeadPerTick – Controls the whole crew ejection once the AI sets the AGAD flag.
- ChanceOfExtinguisherWorking – If you feel this is a little harsh, you can raise the chance so that a correct extinguisher run works first time.
- ChanceOfWindmillingPropComingOff - If the prop doesn't come off, a wing will
- ForceToExplodeOnWaterImpact – Beware an explosion will kill all occupants of the B-17.
- ForceToExplodeOnGrassImpact – See above.
- ForceToExplodeOnTarmacImpact – See above.
- ForceToBreakApartOnImpact – See above.
- ForceReductionFactorForSmallPlanes – The B17 tends to have more force in an impact than the small planes, so this reduces the small planes tolerance for crashing
- GroundImpactSpeedForEffectsToStart – The comment has it all really.
- DamageToWingFromExplosion – Again, fairly self-explanatory, given the comments.
- DamageToEngineFromPropCollision – See comments
- DamageToEngineFromCollision – This covers a collision with a solid object on the engine geometry.
This gives you access to part of the AI – not the code itself, but the behaviour database that makes it all tick.
It’s pretty simple stuff, conceptually; we follow the laws of physics. As standard a crewmember at rest wishes to remain where he is, doing what he’s already doing. In order to move someone more force must be applied to move him than is being applied to keep him still.
If the crewmember is at a station with a combat application (all gunners plus the bombardiers bombsight) then the force keeping him still is equal to his CombatTaskImportance provided he’s in combat or his TaskImportance if he’s not. TaskImportance is generally lower than CombatTaskImportance..
If the crewmember is at a station with NO combat application then the force keeping him still is equal to his TaskImportance.
Crew initiative is something best modified through trial and error. For example, we made the Radio Operator a free agent by design, so that he would shoot off and deal with any First Aid or fires and suchlike. If you want your Radio Operator to stay put by design, then you should increase the importance of his position.
The sections referring to damage Importance’s refer to systems like the Norden bombsight. If they’re set to 0.0 then usually there ISN’T a system at that position that can be repaired.
If you wanted to make sure that crews take more care of each other you would ensure that the Injury lines have a higher importance than the station lines for the crewmembers you want to roam around. If you wanted your gunners to stay at their stations regardless of the chaos breaking out around them, then you’d make sure the gunner CombatTaskImportance lines were higher than the malfunction, injury importance and other such lines.
Quite drastic changes to the crew’s behaviour can be made using these factors. I suggest deciding what changes you want and then carrying out multiple small-scale changes – taking the time to ensure that changes don’t cause any unexpected behaviours to creep into the system.
Custom “Quitstart” Missions
You need to enable the “Quitstart” Registry hack in order to access these easily but, once you have, you can use the Quit switch in the main menu to launch a number of interesting sub missions. The most obvious additional feature is being able to fly any fighter you want from any Airbase in the game, without having to worry about pesky missions. In addition you can custom build a mission to any target in Europe from any airbase in Europe. Pretty keen stuff.
Having enabled the Quitstart Registry hack you need to cast your eye over the part of the GameParameters file “RiverAndRoadsDB.lmf” at the section displayed below:
Type = FighterAttack // Can be Standard, StandardFree, Free, FighterAttack
Airbase = Ridgewell // Ridgewell, Podington, Kings Cliffe, Steeple Morden, Deenethorpe, Duxford, Raydon, Funsville
Target = Brest Harbor // Brest Harbor, Brest U-boat Base, Harnes Oil Facility... any defined target
MissionAltitudeFeet = 20000 // Height at which the mission will be flown
// Free Mini Mission Parameters
FreeFighterType = ME262 // Can be P51, P47, P38, BF109, FW190, ME262
FreeFighterQuantity = 1
// FighterAttack Mini Mission Parameters
FighterAttackAttacker = ME262 // Can be P51, P47, P38, BF109, FW190, ME262
FighterAttackDefender = FW190 // Can be P51, P47, P38, BF109, FW190, ME262
FighterAttackDistanceFeet = 250 // Initial distance between the fighters
The above area of the file controls the “Quitstart” Missions I mentioned above. Basically you have four types of mission that can be enabled :
- This creates a standard Bomber Commander mission to the target defined and from the airbase defined. The main benefit of this is being able to start from an airbase you pick, rather than the four predetermined ones, and that you can attack any target at any point of the map.
- This creates any fighter of the type determined in the file, and in the specified quantity. This allows you to do things like flying a fighter training mission – plenty of time to get the engine running and just tool about the countryside. This is especially valuable for the rarer fighters – such as the ME262, which you might not otherwise see much of.
- Here you can merge the settings for Standard and the settings for Free. This allows you to create a bomber mission from any airbase to any target and create a flight of your favourite fighter at the same airbase. The possibilities are many and varied – practice your own interception tactics without having to fly a mission. Or you can tool alongside the bombers as a Fighter Pilot and do things like sweep ahead or conduct CAP above the Bomber Formation. Alternatively it provides nice ground targets for you to strafe, if you leave the bombers where they are.
- This used to create two fighters of the specified types and set them off against each other in a dogfight. Unfortunately the way that the Dogfighting AI worked changed, and now the Fighter AI is not active. This can still be used to create two fighters of varying types for you to practice flying, and so has its uses.
MinInitialEnemyRangeMiles = 2.0 // The distance away from the player's formation that the enemy is created
MaxInitialEnemyRangeMiles = 2.5 // The distance away from the player's formation that the enemy is created
// Limping Home
MissionOneAirbase = Ridgewell // Where the player is limping to
MissionOneStartPosXMetres = 961968.10 // X coordinate of the start position
MissionOneStartPosZMetres = 2224982.79 // Z coordinate of the start position
MissionOneStartHeightFeet = 6000 // Starting height above the terrain
MissionOnePortAileronDamage = 0.0 // 0.0 no damage 1.0 full damage
MissionOneStbdAileronDamage = 0.5 // 0.0 no damage 1.0 full damage
MissionOnePortFlapsDamage = 0.5 // 0.0 no damage 1.0 full damage
MissionOneStbdFlapsDamage = 0.5 // 0.0 no damage 1.0 full damage
MissionOnePortWingDamage = 0.2 // 0.0 no damage 1.0 full damage
MissionOneStbdWingDamage = 0.2 // 0.0 no damage 1.0 full damage
MissionOneElevatorDamage = 0.0 // 0.0 no damage 1.0 full damage
MissionOneRudderDamage = 0.5 // 0.0 no damage 1.0 full damage
MissionOneVerticalStabiliserDamage = 0.0 // 0.0 no damage 1.0 full damage
// Attack of the Axis
MissionTwoTarget = Bremen Oil Refinery // Target that the B-17 squadron has just bombed
MissionTwoDistanceFromRallyPointMiles = 1.0 // ummmm... distance from the rally point
MissionTwoMissionAltitude = 27000 // Height at which the mission will be flown
MissionTwoEscortSquadronSize = 3 // Number of escorts
MissionTwoNumInterceptorSquadrons = 2 // Number of interceptor squadrons
MissionTwoInterceptorSquadronSize = 4 // Number of interceptors in each squadron
// Where are the Little Friends
MissionThreeTarget = Yonne River Rail Bridge // Target that the B-17 squadron is attacking
//MissionThreeTarget = Brest Harbor // Target that the B-17 squadron is attacking
MissionThreeDistanceToInitialPointMiles = 1.0 // Distance to the initial point of the bomb run
MissionThreeMissionAltitude = 27000 // Height at which the mission will be flown
MissionThreeNumInterceptorSquadrons = 3 // Number of interceptor squadrons
MissionThreeInterceptorSquadronSize = 2 // Number of interceptors in each squadron
// Opportunity for the Axis
MissionFourTarget = Wildau Torpedo Plant // Target being attack by the B-17 squadron
MissionFourAircraftType = BF109 // Aircraft type the player gets to fly
MissionFourMissionAltitude = 8000 // Height at which the mission will be flown
MissionFourEscortSquadronSize = 3 // Number of escorts
MissionFourNumInterceptorSquadrons = 2 // Number of interceptor squadrons
MissionFourInterceptorSquadronSize = 4 // Number of interceptors in each squadron
// Fighter Sweep over France
MissionFiveAircraftType = P47 // Aircraft type the player gets to fly
MissionFiveStartPosXMetres = 796601.08 // X coordinate of the start position
MissionFiveStartPosZMetres = 1923380.0 // Z coordinate of the start position
MissionFiveStartHeightFeet = 18000.0 // Starting height above the terrain
MissionFiveAlliedSquadronSize = 4 // Size of allied squadron
MissionFiveNumAxisSquadrons = 1 // Number of axis squadrons
MissionFiveAxisSquadronSize = 4 // Size of axis squadron
// Defence of the Reich
MissionSixAircraftType = FW190 // Aircraft type the player gets to fly
MissionSixStartPosXMetres = 934884.17 // X coordinate of the start position
MissionSixStartPosZMetres = 1956460.65 // Z coordinate of the start position
MissionSixStartHeightFeet = 8000.0 // Starting height above the terrain
MissionSixNumAlliedSquadrons = 2 // Number of allied squadrons
MissionSixAlliedSquadronSize = 3 // Size of allied squadron
MissionSixAxisSquadronSize = 4 // Size of axis squadron
The text above allows you to edit the settings for the various Quickstart Missions. These are all fairly self-explanatory, but can really change the whole texture of a mission. Right now I feel that attack of the Axis has a nice “scrabbling at the brink of the abyss” feel to it at Elite level – those who disagree can certainly up the number of squadrons of each type of aircraft to recapture that emotion.
// Taxi and Take Off
MissionOneAirbase = Ridgewell // Starting airbase
MissionOneWindHeadingDegrees = 0.0 // Wind direction
MissionOneWindSpeedMPH = 0.0 // Wind speed
// Approach and Landing
MissionTwoAirbase = Ridgewell // Starting airbase
MissionTwoWindHeadingDegrees = 0.0 // Wind direction
MissionTwoWindSpeedMPH = 0.0 // Wind speed
// Feather/Restart an Engine
MissionThreeAirbase = Ridgewell // Starting airbase
MissionThreeWindHeadingDegrees = 0.0 // Wind direction
MissionThreeWindSpeedMPH = 0.0 // Wind speed
// Bombing Easy
MissionFourTarget = Training target // Target being bombed
MissionFourMissionAltitudeFeet = 8000.0 // Height from which the bombs are dropped
// Bombing Hard
MissionFiveTarget = Training target // Target being bombed
MissionFiveMissionAltitudeFeet = 18000 // Height from which the bombs are dropped
MissionFiveWindHeadingDegrees = 0.0 // Wind direction
MissionFiveWindSpeedMPH = 0.0 // Wind speed
MissionFiveCloudCover = 0.6 // Cloud cover over target
MissionSixAirbase = Ridgewell // Starting airbase
MissionSixHitsToSucceed = 50 // Number of bullet hits per gunner position required to complete the mission
MissionSixWindHeadingDegrees = 0.0 // Wind direction
MissionSixWindSpeedMPH = 0.0 // Wind speed
MissionSixLowHeightFeet = 200 // Height below aircraft for dummy B-17
MissionSixHighHeightFeet = 200 // Height above aircraft for dummy B-17
MissionSixRangeFeet = 400 // Range for dummy B-17
MissionSixChinTurretBearingDegrees = 0.0 // Bearing for dummy B-17
MissionSixCheekGunBearingDegrees = 30.0 // Bearing for dummy B-17
MissionSixTopTurretBearingDegrees = 135.0 // Bearing for dummy B-17
MissionSixBallTurretBearingDegrees = 270.0 // Bearing for dummy B-17
MissionSixLeftWaistBearingDegrees = 90.0 // Bearing for dummy B-17
MissionSixRightWaistBearingDegrees = 270.0 // Bearing for dummy B-17
MissionSixTailGunnerBearingDegrees = 180.0 // Bearing for dummy B-17
Again, here, you can edit the parameters for the Training Missions. It’s particularly worth doing in the Bombing Missions – where you can adjust the “grade curve” for yourself if you feel that 18,000 feet is a wussy bombing altitude. In the game you’re more likely to be playing at 20 to 25 thousand feet. In addition you can alter the cloud cover to simulate a REALLY bad day over Europe, should you wish.
Another good one is to increase the number of rounds required in the gunnery mission, requiring a steadier hand to complete it.
MissionOneAirbase = Ridgewell // Home airbase
MissionOneTarget = Bremen FockeWulf Factory // Target attacked
MissionOneStartTimeHours = 7.75 // Engine start time ( 7:45AM )
MissionOneOutlegEscort = P47 // Out leg escorts
MissionOneReturnLegEscort = P38 // Return leg escorts
MissionOneMissionAltitudeFeet = 25000.0 // Mission altitude
MissionTwoAirbase = Ridgewell // Home airbase
MissionTwoTarget = Osnabruck Industrial Center // Target attacked
MissionTwoStartTimeHours = 10.0 // Engine start time ( 10:00AM )
MissionTwoOutlegEscort = P47 // Out leg escorts
MissionTwoReturnLegEscort = P38 // Return leg escorts
MissionTwoMissionAltitudeFeet = 25000.0 // Mission altitude
MissionThreeAirbase = Ridgewell // Home airbase
MissionThreeTarget = Ludwigshaven Rubber Factory // Target attacked
MissionThreeStartTimeHours = 7.25 // Engine start time ( 7:15AM )
MissionThreeOutlegEscort = P47 // Out leg escorts
MissionThreeReturnLegEscort = P38 // Return leg escorts
MissionThreeMissionAltitudeFeet = 25000.0 // Mission altitude
MissionFourAirbase = Ridgewell // Home airbase
MissionFourTarget = Frankfurt Industrial Center // Target attacked
MissionFourStartTimeHours = 7.00 // Engine start time ( 7:00AM )
MissionFourOutlegEscort = P47 // Out leg escorts
MissionFourReturnLegEscort = P38 // Return leg escorts
MissionFourMissionAltitudeFeet = 24000.0 // Mission altitude
MissionFiveAirbase = Ridgewell // Home airbase
MissionFiveTarget = Brunswick Bomb Factory // Target attacked
MissionFiveStartTimeHours = 7.75 // Engine start time ( 7:45AM )
MissionFiveOutlegEscort = P47 // Out leg escorts
MissionFiveReturnLegEscort = P51 // Return leg escorts
MissionFiveMissionAltitudeFeet = 21000.0 // Mission altitude
MissionSixAirbase = Ridgewell // Home airbase
MissionSixTarget = Eurotank Oil Refinery and Storage // Target attacked
MissionSixStartTimeHours = 6.25 // Engine start time ( 3:45AM )
MissionSixOutlegEscort = P47 // Out leg escorts
MissionSixReturnLegEscort = P51 // Return leg escorts
MissionSixMissionAltitudeFeet = 26000.0 // Mission altitude
You can play with the above – but they’re actually derived from historical datum, so why bother, unless you want to store custom missions for retrieval at leisure?
A great deal of the sound in B-17 is constructed from tiny, tiny segments and then assembled into the game sound as you know it. Therefore there is NO B17engine.wav that you can replace by hacking the resources. Even the Machinegun sounds are assembled from about 8 different Wav files that are then constructed into a continuous stream of audio. A dynamic system like that is much harder to manage, but the benefits are the utter lack of looping and sounds more responsive to environment.
There are some hooks into the sound system in this file, but they mostly cover the triggering of certain sound phases, or the control of sounds in, for example, the engines of aircraft. These will be difficult to make sensible tweaks in.
Flak is a much easier prospect for tweaking. As it stands, the flak has been play balanced to create a suitable sized flak box, which shouldn’t cause undue damage PROVIDED the player takes some form of evasive action – usually in the form of an altitude change. However, Flak can still inflict grievous damage if you don’t take evasive action, and it is entirely possible for a light Flak zone to end the mission for a single plane.
The reason for this is that Flak is not statistically calculated or controlled. Flak is created in the following highly realistic way.
The point that the lead ship would occupy in the formation is designated as the aim point. Around the aim point a flak box is constructed according to the dimensions specified in the GameParameters file, thus:
LightFlakHeight = 100 // How high is the "box" in feet above and below the aimpoint?
LightFlakWidth = 600 // How wide is the "box" in feet to the left and right of the aimpoint?
LightFlakLength = 200 // How long is the "box" in feet from the front and the back of the aimpoint?
The trick is to remember that the every foot beyond that required to surround the formation itself is pure artistry. Whilst having a wide and high box helps counter evasive action having a long box really doesn’t accomplish very much beyond really nice visuals. Once that box is built it is populated with a set number of Flak Shells, each of which spawns fragments that have a defined radius of effect. The lines in which this is covered are shown below:
BlastRadius = 75.0 // Size of flak burst damage radii
LightFlakFrequency = 175 // Frequency is the rate of fire x blasts within a time period.
The frequency is the key number – having created a box of a certain size above, you must now fill it with flak shells. If the box is too big, or the frequency is too low then you’ll get a dotty effect – like the light flak but even sparser. If the box is too small, or you’re filling it with too many shells then you’ll get a brief glimpse into the hell that must have been the centre of Bremen with every gun pointing your way.
The trick to getting flak HITS right is to turn on the damage logging and then fly the formation through a flaksite. You can examine the number of hits and decide whether the density is right for you. Another good rule of thumb is the “by eye” rule – if it LOOKS how you think heavy flak ought to look then it’ll be nice and immersive.
The next thing to consider is the type of damage being done by the fragments. The following lines of text cover this:
FireProbability = 0.15 // Likelihood of flak causing a fire.
CrewDamageScalar = 0.3 // Likelihood of damage being inflicted by flak on crew
SkinDamageScalar = 0.2 // Affects amount of damage inflicted by flak to the Aircraft's skin
SystemsDamageScalar = 0.3 // Likelihood of damage being inflicted by flak to the Aircraft's systems
PhysicsSystemsDamageScalar = 0.5 // Affects amount of damage inflicted by flak to the Aircraft's physics systems
The above lines control the TYPE of damage dished out by flak. If you want flak to be a nuisance, nibbling at control surfaces, setting fires and injuring crewmembers then you can reduce the physics systems damage – whereas increasing physics systems damage will enable flak to do much more physical damage to the airframe. Careful not to go too far though – flak is inherently chaotic by its nature, and we’ve captured that. Mostly you’ll catch the edge of bursts and be just fine – however if you catch the centre of a burst with physics turned up, it’ll be invariably fatal.
The final control for Flak is the duration of firing periods and how quickly they cope with the movement of the target aircraft. This represents the physical density of Flak Guns, but also what you believe the quality of crew and ammunition supply is. How long can these guys PHYSICALLY fire, and when will the next crew pick you up?
The lines of code that control this are as follows:
LightFlakAltitudeTrackTime = 25 // How long does it take the flak crews to respond to a change in altitude?
LightFlakDurationOn = 80 // The duration in seconds of an attack
LightFlakDurationOff = 500 // The mean duration in seconds between one attack ending and the next starting.
Printer Friendly Version