User Tools

Site Tools


gamemanual:gm_gearboxes_design

Gearbox Game Mechanics

The Game Mechanics section of the manual details the internal formula used in the game's calculations. This section of the manual uses pseudo-code and may not be 100% the same as the code in the game.

The Game Mechanics part of the manual is mainly designed to be a reference for the frequently asked question, “Why do I get this rating when I do X, Y, Z?!” Usually, this answer involves many different variables, which this section of the manual demonstrates.

The game mechanics section of the manual shows how the sausage gets made. So you really may want to avoid this portion of the manual if you enjoy the game.

Variables

This is a table of variables and their descriptions used in the formulas.

Sliders

Variable Description Variable Description
Sliders_LowGear_Ratio Specifications ⇒ Low-End Gearing Slider Sliders_HighGear_Ratio Specifications ⇒ High-End Gearing Slider
Sliders_Torque_Max_Input Specifications ⇒ Maximum Torque Input Slider Sliders_Tech_Material Technologies ⇒ Material Quality Slider
Sliders_Tech_Components Technologies ⇒ Component Quality Slider Sliders_Tech_Technology Technologies ⇒ Technology Slider
Sliders_Tech_Techniques Technologies ⇒ Manufacturing Techniques Slider Sliders_Design_Ease Design Focus ⇒ Shifting Ease
Sliders_Design_Dependability Design Focus ⇒ Dependability Sliders_Design_DesignPace Design Focus ⇒ Development Pace
Sliders_Design_FuelEconomy Design Focus ⇒ Fuel Economy Sliders_Design_Performance Design Focus ⇒ Performance

Sub-Components

Variable Description Variable Description
Has_Limited_Slip Specifications ⇒ Limited Slip Checkbox (If checked, Value is 1) Has_Overdrive Specifications ⇒ Overdrive Checkbox (If checked, Value is 1)
Has_Transaxle Specifications ⇒ Transaxle Checkbox (If checked, Value is 1) Has_Reverse Specifications ⇒ Reverse Gear Checkbox (If checked, Value is 1)
Subcomponents_Gearbox_Weight Gearbox Type Weight Value Subcomponents_Gearbox_Complexity Gearbox Type Complexity Value
Subcomponents_Gearbox_Smoothness Gearbox Type Smoothness Value Subcomponents_Gearbox_Ease Gearbox Type Ease Value
Subcomponents_Gearbox_FuelRating Gearbox Type Fuel Economy Value Subcomponents_Gearbox_PerformanceRating Gearbox Type Performance Value
Subcomponents_Gearbox_UnitCosts Gearbox Type Unit Cost Value Subcomponents_Gearbox_DesignCosts Gearbox Type Design Cost Value
Number_Of_Gears Selected Number of Gears

Global

Variable Description Variable Description
year Current game year ex_1d008p_year99 1.008^(year-1899)
ex_1d003p_year99 1.003^(year-1899) ex_1d01p_year99 1.01^(year-1899)
ex_1d014p_year99 1.014^(year-1899) ex_1d015p_year99 1.015^(year-1899)
ex_1d017p_year99 1.017^(year-1899) ex_1d019p_year99 1.019^(year-1899)
ex_1d02p_year99 1.02^(year-1899) ex_1d0225p_year99 1.0225^(year-1899)
ex_1d027p_year99 1.027^(year-1899) Global_Interest_Rate Global Interest Rates as defined in the TurnEvents.xml file
carPriceRate Global vehicle costs variable as defined in the TurnEvents.xml file designRandomVal Random variation based on workmanship image/skill ratings.
Marq_DesignGearboxSkill Gearbox design skill of the selected marque PreResearchGearboxAmountEffect Research team's bonus on gearbox design

Specs

Maximum Torque Support

Values are in lb-ft.

Max_Torque_Support = 10 * Number_Of_Gears + 75 * (ex_1d0225p_year99) * 
    Sliders_Torque_Max_Input + 35 * (ex_1d0225p_year99) * 
    (1-Sliders_LowGear_Ratio) + 15 * (ex_1d0225p_year99) * 
    (1-Sliders_HighGear_Ratio) + 5 * (ex_1d0225p_year99) * 
    Sliders_Design_Dependability + 5 * (ex_1d0225p_year99) * 
    Sliders_Tech_Components + 5 * (ex_1d0225p_year99) * Sliders_Tech_Components
 
Max_Torque_Support = Max_Torque_Support + (Marq_DesignGearboxSkill/5.0)

Weight

Values are in lbs.

Weight = (20 + 15*(Number_Of_Gears+Has_Reverse) + 
    25*Subcomponents_Gearbox_Complexity+15*Has_Overdrive + 
    15*Has_Limited_Slip + 50 * Sliders_Torque_Max_Input - 
    50*Sliders_Design_Performance + 140 * Subcomponents_Gearbox_Weight + 
    30*(1-Sliders_Tech_Material))- 20 * Has_Transaxle;

Ratings

Power Rating

Power_Rating = 100*(Max_Torque_Support/(80 + 150 * (ex_1d0225p_year99) +
    90 * (ex_1d0225p_year99)))
 
if(Power_Rating>100)
    Power_Rating = 100

Fuel Rating

FuelEconomy_Rating = (15*Sliders_Design_FuelEconomy + 15 * Subcomponents_Gearbox_FuelRating +
    13 * (Sliders_LowGear_Ratio) + 10*Sliders_HighGear_Ratio + 
    5*(1-Sliders_Design_Performance) + 6 * Has_Overdrive + 
    2*Number_Of_Gears + 5 * Sliders_Tech_Components + 
    6 * Sliders_Tech_Material + 6 * Sliders_Tech_Technology)
 
FuelEconomy_Rating = FuelEconomy_Rating + (Marq_DesignGearboxSkill/10.0)
 
if(FuelEconomy_Rating>100)
    FuelEconomy_Rating = 100;

Performance Rating

Performance_Rating = 10 * Sliders_Design_Performance + 
    13 * Subcomponents_Gearbox_PerformanceRating + 2*Number_Of_Gears + 
    7 * Sliders_Tech_Technology +6 * Sliders_Tech_Material + 
    7 * Sliders_Tech_Components + 6 * Sliders_Tech_Techniques + 
    15 * (1-Sliders_LowGear_Ratio)  + 10 * Sliders_HighGear_Ratio + 
    4 * Has_Limited_Slip+2*Has_Transaxle
 
Performance_Rating = Performance_Rating + (Marq_DesignGearboxSkill/10.0)
 
if(Performance_Rating>100)
{
    Performance_Rating = 100;
}

Reliability Rating

Reliability_Rating = 20 * std::abs((1.0-Subcomponents_Gearbox_Complexity)) + 
    15 * Sliders_Torque_Max_Input - (Number_Of_Gears+Has_Reverse) +
    10*Sliders_Tech_Material + 10*Sliders_Tech_Components + 
    10 * Sliders_Design_Dependability + 5 * (1-Subcomponents_Gearbox_Complexity) +
    5 * (1-Sliders_Design_Ease) + 5 * std::abs(Has_Limited_Slip-1) +
    5 *  std::abs(Has_Overdrive-1) + 5 * std::abs(Has_Transaxle-1) +
    10 *(1-Sliders_Tech_Technology)
 
Reliability_Rating = Reliability_Rating + (Marq_DesignGearboxSkill/10.0)
 
if(Reliability_Rating > 100)
{
    Reliability_Rating = 100
}

Comfort Rating

Comfort_Rating =  10 * Has_Limited_Slip + 10 * Has_Reverse + 
    40 * Sliders_Design_Ease + 20 * Subcomponents_Gearbox_Ease +
    20 * Subcomponents_Gearbox_Smoothness
 
Comfort_Rating = Comfort_Rating + (Marq_DesignGearboxSkill/10.0)
 
if(Comfort_Rating> 100)
{
    Comfort_Rating = 100;
}

Overall Rating

Overall_Rating = (Power_Rating+FuelEconomy_Rating+Performance_Rating+
    Reliability_Rating +Comfort_Rating +Marq_DesignGearboxSkill )/6
 
Overall_Rating = Overall_Rating + (2.5*PreResearchGearboxAmountEffect);
 
if(Overall_Rating > 100)
{
    Overall_Rating = 100;
}

Manufacturing Requirements

Manufacturing_Req = (10*((Number_Of_Gears+Has_Reverse)/6.0)+20*Subcomponents_Gearbox_Complexity+
    15*Sliders_Torque_Max_Input+5*Has_Overdrive + 5 * Has_Transaxle + 
    5 * Has_Limited_Slip + 7 * Sliders_Tech_Techniques +
    13 * Sliders_Design_Dependability + 5 * 
    ((Sliders_Design_Ease + Sliders_Design_FuelEconomy + 
    Sliders_Design_Performance)/3.0) + 5 * ((Subcomponents_Gearbox_Ease + 
    Subcomponents_Gearbox_FuelRating+ Subcomponents_Gearbox_PerformanceRating +
    Subcomponents_Gearbox_Smoothness)/4.0)) + 10 * 
    ((Sliders_Tech_Material + Sliders_Tech_Components + Sliders_Tech_Technology)/3.0)

Design Requirements

Design_Req = (9*((Number_Of_Gears+Has_Reverse)/6.0)+
    7*Subcomponents_Gearbox_Complexity+ 3 * Has_Overdrive + 3*Has_Limited_Slip+
    3*Sliders_Tech_Technology + 3 * Subcomponents_Gearbox_PerformanceRating + 
    3 *Subcomponents_Gearbox_FuelRating+ 3 * Subcomponents_Gearbox_Ease+ 3 * 
    Subcomponents_Gearbox_Smoothness+ 3 * Sliders_Tech_Material + 2 * 
    Sliders_Tech_Components + 3*Sliders_Torque_Max_Input+ 11 * Sliders_Design_Ease +
    14 * Sliders_Design_Dependability + 15 * Sliders_Design_FuelEconomy + 
    15 * Sliders_Design_Performance)

Miscellaneous

Unit Costs

Unit_Costs =  ((((20*ex_1d01p_year99 + 40 * ex_1d02p_year99 * (Number_Of_Gears + Has_Reverse) +
    60 * ex_1d008p_year99 * Subcomponents_Gearbox_Complexity +
    15 * ex_1d008p_year99 * Has_Overdrive + 65 * ex_1d008p_year99 * Has_Transaxle +
    55 * ex_1d008p_year99 * Has_Limited_Slip +
    20*ex_1d02p_year99*(Sliders_Design_Performance *Sliders_Design_Performance ) +
    25*ex_1d02p_year99*(Sliders_Design_FuelEconomy * Sliders_Design_FuelEconomy )+
    20*ex_1d02p_year99*(Sliders_Design_Ease *Sliders_Design_Ease )+
    45*ex_1d02p_year99*(Sliders_Design_Dependability*Sliders_Design_Dependability) +
    (80*	ex_1d02p_year99* Subcomponents_Gearbox_UnitCosts) +
    30 * ex_1d015p_year99 * 	(Sliders_Torque_Max_Input * Sliders_Torque_Max_Input) +
    40 * ex_1d02p_year99 * (0.5 + (Sliders_Tech_Technology*Sliders_Tech_Technology)) + 
    55 * ex_1d015p_year99 * ((Sliders_Tech_Material * Sliders_Tech_Material) +
    (Sliders_Tech_Components * Sliders_Tech_Components ) + 
    (Sliders_Tech_Techniques*Sliders_Tech_Techniques)) * 
    ex_1d01p_year99)*(Global_Interest_Rate/2.1))) * carPriceRate) * (designRandomVal)
 
hyperSliders = ((Sliders_Tech_Material + Sliders_Tech_Components + 
    Sliders_Tech_Techniques + Sliders_Tech_Technology) +  
    (Sliders_Torque_Max_Input * Sliders_Torque_Max_Input) +
    (Sliders_Design_Performance + Sliders_Design_FuelEconomy +
    Sliders_Design_Dependability + Sliders_Design_Ease))/9.0
 
 
 
hyperCosts = 500 * ex_1d04p_year99 * hyperSliders^4
 
 
Unit_Costs = Unit_Costs + hyperCosts - ((Unit_Costs/10) * (Marq_DesignGearboxSkill/100))

Design Costs

designcost = ((6000*ex_1d017p_year99+250*ex_1d017p_year99 * 
    (Number_Of_Gears+Has_Reverse)+5000*ex_1d017p_year99*Subcomponents_Gearbox_Complexity+
    (hyperCosts * (100*ex_1d027p_year99)) +
    2000*ex_1d014p_year99*(Sliders_Torque_Max_Input*Sliders_Torque_Max_Input)+2000 *
    ex_1d014p_year99*Has_Transaxle+2000*ex_1d017p_year99*Has_Overdrive +
    2500*ex_1d019p_year99*Has_Limited_Slip+2500*ex_1d014p_year99*
    (0.5+(Sliders_Tech_Technology*Sliders_Tech_Technology))+
    2500*ex_1d014p_year99*(Sliders_Design_Performance *Sliders_Design_Performance ) +
    3500*ex_1d014p_year99*(Sliders_Design_FuelEconomy * Sliders_Design_FuelEconomy )+
    4000*ex_1d014p_year99*(Sliders_Design_Ease *Sliders_Design_Ease )+
    8000*ex_1d014p_year99*(Sliders_Design_Dependability*Sliders_Design_Dependability)+
    2200*ex_1d014p_year99*(Sliders_Tech_Techniques *Sliders_Tech_Techniques )+
    2200*ex_1d014p_year99*(Sliders_Tech_Material * Sliders_Tech_Material ))*
    ex_1d014p_year99)  * Number_Of_Gears
 
designcost = (designcost/5)+(designcost*
    (Sliders_Design_DesignPace*Sliders_Design_DesignPace*4.5))

Finish Time

Finish_Time = (3 + 0.35*Number_Of_Gears+1.5*Subcomponents_Gearbox_Complexity+
    Has_Transaxle+0.35*Has_Overdrive+0.35*Has_Limited_Slip +
    0.35*(Sliders_Design_Ease + Sliders_Design_Dependability + 
    Sliders_Design_FuelEconomy + Sliders_Design_Performance) +
    0.35 * (Subcomponents_Gearbox_Ease + Subcomponents_Gearbox_FuelRating + 
    Subcomponents_Gearbox_PerformanceRating + Subcomponents_Gearbox_Smoothness) +
    0.55 * (Sliders_Tech_Material + Sliders_Tech_Components + 
    Sliders_Tech_Technology + Sliders_Tech_Techniques))-
    (2*(FactOverallVAL/100.0))+ (1.15*ex_1d003p_year99*hyperSliders)
 
 
if(year < 2020)
        additionalTime = ( ((year-1840)/15.0 ) *((0.5/( Sliders_Design_DesignPace+0.05) ) -0.45) )
else
        additionalTime = ( ((2020-1840)/15.0 ) *((0.5/( Sliders_Design_DesignPace+0.05) ) -0.45) )
 
 
if(Sliders_Design_DesignPace < 0.5)
    Finish_Time = Finish_Time +  additionalTime
else
{
    turnsOff = (Sliders_Design_DesignPace - 0.5)/0.20;
    Finish_Time = Finish_Time +  (additionalTime - turnsOff)
}
 
if(Finish_Time < 1)
    Finish_Time = 1

Employees Required

if(year < 2021)
    Employees_Required =	Design_Req * (0.07833*(year-1899)+0.275);
else
    Employees_Required =	Design_Req * (0.07833*(121)+0.275);
 
Employees_Required = Employees_Required /5 + ((Employees_Required/1.2)*Sliders_Design_DesignPace) + 2;
gamemanual/gm_gearboxes_design.txt · Last modified: 2022/03/11 18:34 by admin