User Tools

Site Tools


gamemanual:gm_engines_design

Engine 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
Slider_Layout_Bore Sliders: Engine Design Layout ⇒ Bore Slider_Layout_Stroke Sliders: Engine Design Layout ⇒ Stroke
Slider_Layout_Length Sliders: Engine Design Layout ⇒ Length Slider_Layout_Width Sliders: Engine Design Layout ⇒ Width
Slider_Layout_Displacement (Slider_Layout_Bore + Slider_Layout_Stroke) ÷ 2.0 Slider_Layout_Weight Sliders: Engine Design Layout ⇒ Weight
Slider_Performance_Revolutions Sliders: Engine Design Performance ⇒ Revolutions Slider_Performance_Torque Sliders: Engine Design Performance ⇒ Engine Torque
Slider_Performance_FuelEconomy Sliders: Engine Design Performance ⇒ Fuel Economy Slider_DesignFocus_Performance Sliders: Engine Design Focus ⇒ Focus on Performance
Slider_DesignFocus_FuelEconomy Sliders: Engine Design Focus ⇒ Focus on Fuel Economy Slider_DesignFocus_Dependability Sliders: Engine Design Focus ⇒ Focus on Dependability
Slider_DesignFocus_DesignPace Sliders: Engine Design Focus ⇒ Development Pace Slider_Technology_Materials Sliders: Engine Design Technology ⇒ Material Quality
Slider_Technology_Components Sliders: Engine Design Technology ⇒ Component Quality Slider_Technology_Technologies Sliders: Engine Design Technology ⇒ Technology
Slider_Technology_Techniques Sliders: Engine Design Technology ⇒ Manufacturing Techniques

Sub-Components

Variable Description Variable Description
SubComponent_Layout_UnitCosts Engine Layout Unit Costs SubComponent_Layout_DesignCosts Engine Layout Design Costs
SubComponent_Layout_DesignRequirements Engine Layout Design Requirements SubComponent_Layout_ManufacturingRequirements Engine Layout Manufacturing Requirements
SubComponent_Layout_Reliability Engine Layout Reliability Value SubComponent_Layout_Weight Engine Layout Weight Value
SubComponent_Layout_FinishTime Engine Layout Research Finish Time Value SubComponent_Layout_Width Engine Layout Width Value
SubComponent_Layout_Length Engine Layout Length Value SubComponent_Layout_Smoothness Engine Layout Smoothness Value
SubComponent_Layout_ValveLimit Engine Layout What Valves Layout Can Use SubComponent_Layout_UseDisplacement Engine Layout Measured in Displacement
SubComponent_Layout_CylinderLengthArrangment Engine Layout Number of Cylinder Banks SubComponent_Layout_FuelRatings Engine Layout Fuel Economy Value
SubComponent_Layout_PowerRatings Engine Layout Power Rating Value SubComponent_Layout_Turbined Engine Layout is Circler
SubComponent_Cylinders_UnitCosts Cylinder Unit Costs Value SubComponent_Cylinders_DesignCosts Cylinder Design Costs Value
SubComponent_Cylinders_DesignRequire Cylinder Design Requirements SubComponent_Cylinders_ManufacturingRequire Cylinder Manufacturing Requirements
SubComponent_Cylinders_PowerRating Cylinder Power Value SubComponent_Cylinders_FuelRating Cylinder Fuel Value
SubComponent_Cylinders_ReliabilityRating Cylinder Reliability Value SubComponent_Cylinders_Weight Cylinder Weight Value
SubComponent_Cylinders_FinishTime Cylinders Research Finish Time Value SubComponent_Cylinders_CylinderCount Number of Cylinders
SubComponent_Cylinders_SmoothnessRating Cylinder Smoothness Value SubComponent_FuelType_UnitCosts Fuel Type Unit Costs
SubComponent_FuelType_DesignCosts Fuel Type Design Costs SubComponent_FuelType_DesignRequirements Fuel Type Design Requirements
SubComponent_FuelType_ManufacturingRequirements Fuel Type Manufacturing Requirements SubComponent_FuelType_PowerRating Fuel Type Power Value
SubComponent_FuelType_FuelRating Fuel Type Fuel Economy Value SubComponent_FuelType_ReliabilityRating Fuel Type Reliability Value
SubComponent_FuelType_Weight Fuel Type Weight Value SubComponent_FuelType_FinishTime Fuel Type Research Finish Time Value
SubComponent_FuelType_RPM Fuel Type RPM Value SubComponent_FuelType_SmoothnessRating Fuel Type Smoothness Value
SubComponent_FuelType_PopularityRating Fuel Type Popularity Value SubComponent_Induction_UnitCosts Induction System Unit Costs
SubComponent_Induction_DesignCosts Induction System Design Costs SubComponent_Induction_DesignRequirements Induction System Design Requirements
SubComponent_Induction_ManufacturingRequirements Induction System Manufacturing Requirements SubComponent_Induction_PowerRating Induction System Power Value
SubComponent_Induction_FuelRating Induction System Fuel Economy Value SubComponent_Induction_ReliabilityRating Induction System Reliability Value
SubComponent_Induction_Weight Induction System Weight Value SubComponent_Induction_FinishTime Induction System Research Finish Time Value
SubComponent_Valve_UnitCosts Valve System Unit Costs SubComponent_Valve_DesignCosts Valve System Design Costs
SubComponent_Valve_DesignRequirements Valve System Design Requirements SubComponent_Valve_ManufacturingRequirements Valve System Manufacturing Requirements
SubComponent_Valve_FuelRating Valve System Fuel Economy Value SubComponent_Valve_ReliabilityRating Valve System Fuel Reliability Value
SubComponent_Valve_Weight Valve System Fuel Weight Value SubComponent_Valve_FinishTime Valve System Research Finish Time Value
SubComponent_Valve_RPM Valve System RPM Value SubComponent_Valve_SmoothnessRating Valve System Smoothness Value
SubComponent_Valve_Size Valve System Size Value SubComponent_Valve_PowerRating Valve System Power Value

Global

Variable Description Variable Description
Year Current game year Marq_DesignEngineSkill Engine design skill of the selected marque
AdjustedYear Year - 1899 (Value is set to 121 after 2020) PreResearchEngineAmountEffect Research team's bonus on engine design
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
ex_0d996p_year50R 0.996^(2050-year) if Year > 2020: 0.901037361 ex_1d0023p_year99 1.0023^(year-1899)
ex_1d0024p_year99 1.0024^(year-1899) ex_1d003p_year99 1.003^(year-1899)
ex_1d0035p_year99 1.0035^(year-1899) ex_1d004p_year99 1.004^(year-1899)
ex_1d005p_year99 1.005^(year-1899) ex_1d0051p_year99 1.0051^(year-1899)
ex_1d006p_year99 1.006^(year-1899) ex_1d007p_year99 1.007^(year-1899)
ex_1d008p_year99 1.008^(year-1899) ex_1d01p_year99 1.01^(year-1899)
ex_1d025p_year99 1.025^(year-1899) ex_1d03p_year99 1.03^(year-1899)
ex_1d033p_year99 1.033^(year-1899) ex_1d035p_year99 1.035^(year-1899)
ex_1d038p_year99 1.038^(year-1899) ex_1d039p_year99 1.039^(year-1899)
ex_1d04p_year99 1.04^(year-1899) ex_1d05p_year99 1.05^(year-1899)

Specs

Bore

Value is in millimeters.

Bore_mm = Value in the text box next to the slider.

Stroke

Value is in millimeters.

Stroke_mm = Value in the text box next to the slider.

Displacement

Value is in Cubic Centimeters (cc)

Displacement_CC = (0.7854 * ((Bore_mm/10) * (Bore_mm/10)) * (Stroke_mm/10) * SubComponent_Cylinders_CylinderCount)

Torque

Value is in lb-ft.

Torque = 10 + (Marq_DesignEngineSkill/20.0) + 
    ((((25) * ((Slider_Performance_Torque - 0.4)*1.5)*ex_1d01p_year99) +
    ((4*(SubComponent_Layout_Length + SubComponent_Layout_Width) )*ex_1d005p_year99) - 
    (14 * (Slider_Performance_FuelEconomy+Slider_DesignFocus_FuelEconomy) * ex_1d004p_year99) +
    (SubComponent_Layout_PowerRatings*5 + SubComponent_Cylinders_PowerRating*13 +
    SubComponent_FuelType_PowerRating*24 + 100*SubComponent_Induction_PowerRating +
    (5 * ex_1d004p_year99 * Slider_DesignFocus_Performance) +
    8*(Slider_Technology_Components+Slider_Technology_Materials + 
    Slider_Technology_Technologies +Slider_Technology_Techniques))*ex_1d0024p_year99))
 
Torque = Torque * ((SubComponent_Cylinders_CylinderCount * Stroke_mm*0.93 * Bore_mm*0.9)*0.000027)+5    
 
if year < 2050 then:
    Torque = Torque * ex_0d996p_year50R
 
Torque = Torque * SubComponent_Valve_PowerRating

RPM

tmpAY = AdjustedYear
 
if tmpAY > 80 then:
    tmpAY = 80 + ((AdjustedYear-80)/5)
 
 
rpm = ((((tmpAY^4)*0.00000420875) - 
    ((19*(tmpAY^3))*0.00016835) + ((427*(tmpAY^2))*0.00126) +
    ((1315*(tmpAY))*0.01515) + 620 ) + (265 * ex_1d01p_year99 * Slider_DesignFocus_Performance) +
    (465 * ex_1d0105p_year99 * (Slider_Performance_Revolutions*5.5)) -
    (10 * ex_1d01p_year99 * SubComponent_Induction_PowerRating) +
    (55 * ex_1d005p_year99 * (1-Slider_Layout_Weight)) - (30* ex_1d005p_year99 *
    (Slider_DesignFocus_FuelEconomy + Slider_Performance_FuelEconomy))+  
    (25 * ex_1d01p_year99 * Slider_Technology_Components) + 
    (25 * ex_1d01p_year99 * Slider_Technology_Materials) + 
    (25 * ex_1d01p_year99 * Slider_Technology_Technologies)) * 
    SubComponent_FuelType_RPM
 
 
rpm = rpm * SubComponent_Valve_RPM
 
rpm = rpm - ((rpm/1.5) * (Stroke_mm/221.136364))
 
if rpm < 25 then:
    rpm = 25

Horsepower

Values are in HP.

hp = (Torque * rpm) / 5252

Length

Values are in inches.

SubComponent_Layout_CylinderLengthArrangment Equals 1

Length = (3 + (Displacement_CC/((47.3)+277))) * SubComponent_Layout_Length +
    ((SubComponent_Cylinders_CylinderCount)*(Bore_mm/130.0)) +
    (SubComponent_Cylinders_CylinderCount+(5*(Bore_mm/130.0))+
    2*SubComponent_Valve_Size)
 
Length = Length + (0.16 * Length * Slider_Layout_Length)

SubComponent_Layout_CylinderLengthArrangment Equals -1 Or Less

Bank = SubComponent_Layout_CylinderLengthArrangment * -1
 
Length = 3+(0.039 * (Bore_mm * 2)) + 5 * Slider_Layout_Length
 
Length = Length * Bank

SubComponent_Layout_CylinderLengthArrangment Equals Any Other Value

Banks = 0.5;
 
if SubComponent_Layout_CylinderLengthArrangment > 0
    Banks = 1.0/SubComponent_Layout_CylinderLengthArrangment
 
Length = (4 + ((Displacement_CC*(Banks*2))/((47.3)+277))) * 
    SubComponent_Layout_Length + ((SubComponent_Cylinders_CylinderCount*Banks)*
    (Bore_mm/130.0)) + ((SubComponent_Cylinders_CylinderCount*(Banks*2))+
    (5*(Bore_mm/130.0))+2*SubComponent_Valve_Size)
 
 
Length = Length + (0.16 * Length * Slider_Layout_Length);

Width

Values are in inches.

Width = (6 + (Displacement_CC/((57.3)+302))) * SubComponent_Layout_Width + 
    ((6*(Bore_mm/115.0))+5*SubComponent_Valve_Size)
 
Width = Width + (0.16 * Width * Slider_Layout_Width)
 
if(SubComponent_Layout_CylinderLengthArrangment < -1)
{
    Bank = 1/(SubComponent_Layout_CylinderLengthArrangment * -1)
    Width = Width * Bank
}

Weight

Values are in lbs.

Weight = 30 + (55*((SubComponent_Valve_Weight+ SubComponent_Layout_Weight + 
    SubComponent_FuelType_Weight + SubComponent_Induction_Weight + 
    SubComponent_Cylinders_Weight)/5.0) )  + (100*(Stroke_mm/80.0)) + 
    (((Length*1.95*Width)/80.0) + 
    ( 40 + (42 * (((Slider_Layout_Width+Slider_Layout_Length)/2.0)+0.05)) + 
    ((15+(15*(SubComponent_Valve_Weight+ SubComponent_Layout_Weight + 
    SubComponent_FuelType_Weight + SubComponent_Induction_Weight + 
    SubComponent_Cylinders_Weight)/5.0 ) ) * (Slider_Layout_Weight + 0.1)) - 
    (15 * Slider_Technology_Materials) + (5 * SubComponent_Induction_Weight)+
    (8*(Slider_Layout_Width+Slider_Layout_Length)) ) * 
    ((Length*1.78*Width)/800.0)) + 
    ((5+(5*SubComponent_Cylinders_Weight))*(SubComponent_Cylinders_CylinderCount))
 
if(SubComponent_Layout_CylinderLengthArrangment > 2)
    Weight = Weight * (SubComponent_Layout_CylinderLengthArrangment/2.9)

Fuel Consumption

Values are in miles per gallon.

FuelConsumption_MPG = 95 + ((55 * ex_1d0023p_year99) * (Slider_Performance_FuelEconomy+0.1)) +
    (40 * ex_1d0023p_year99 * Slider_DesignFocus_FuelEconomy )
 
 
FuelConsumption_MPG = FuelConsumption_MPG +
    (12 * ex_1d0023p_year99*SubComponent_FuelType_FuelRating) + 
    (7 * ex_1d0023p_year99*Slider_Technology_Technologies)
 
FuelConsumption_MPG = FuelConsumption_MPG - (15 * ex_1d0051p_year99 * 
    (Slider_Performance_Torque + Slider_Performance_Revolutions + Slider_DesignFocus_Performance)) - 
    (20 * Slider_Layout_Displacement)+(10*SubComponent_Valve_FuelRating)
 
FuelConsumption_MPG = (FuelConsumption_MPG + (6*SubComponent_Cylinders_FuelRating)+
    (6*SubComponent_Layout_FuelRatings))*SubComponent_Induction_FuelRating + 
    (Marq_DesignEngineSkill/50.0)
 
if( (1.5+Displacement_CC/350.0) > 0 )
    FuelConsumption_MPG = FuelConsumption_MPG/(1.5+Displacement_CC/350.0)
 
FuelConsumption_MPG = FuelConsumption_MPG + 5
 
 
if( FuelConsumption_MPG < 1 )
    FuelConsumption_MPG = 1;
 
if( SubComponent_FuelType_FuelRating < 5 AND FuelConsumption_MPG > 30)
{
    if( SubComponent_FuelType_FuelRating > 1.5 AND 
            FuelConsumption_MPG > (30+(SubComponent_FuelType_FuelRating*2.0)) )
    {
        FuelConsumption_MPG = FuelConsumption_MPG + 
            -FuelConsumption_MPG^0.85+18+(SubComponent_FuelType_FuelRating*2.0)
    }
    else
    {
        FuelConsumption_MPG = FuelConsumption_MPG + -FuelConsumption_MPG^0.85+18				
    }
}

Ratings

Design Requirements

Design_Requirements = (5 * Slider_DesignFocus_Dependability) + 
    (5 * Slider_DesignFocus_FuelEconomy) +
    (5 * Slider_DesignFocus_Performance) + (3 * Slider_Performance_Revolutions)  + 
    (2 * Slider_Performance_FuelEconomy) + (2 * Slider_Performance_Torque) + 
    (2 * Slider_Technology_Technologies) + (1-Slider_Layout_Weight) + 
    (Slider_Layout_Displacement + (1-Slider_Layout_Length + 
    (1-Slider_Layout_Width))) - (2 * Slider_Technology_Techniques)
 
Design_Requirements = Design_Requirements + (SubComponent_Cylinders_DesignRequire) +
    (SubComponent_FuelType_DesignRequirements) + (SubComponent_Valve_DesignRequirements) +
    (5 * SubComponent_Induction_DesignRequirements) +
    (3* SubComponent_Layout_DesignRequirements)
 
Design_Requirements = 2.7027 * Design_Requirements

Manufacturing Requirements

Manufacturing_Requirements = (Slider_Layout_Displacement ) + (2*(1-Slider_Layout_Length)) +
    (2*(1-Slider_Layout_Width)) + (Slider_Performance_FuelEconomy) + 
    (Slider_Performance_Revolutions * 2) + (2 * Slider_Performance_Torque) + 
    (Slider_Technology_Components + Slider_Technology_Materials +
    Slider_Technology_Technologies + (3 * Slider_Technology_Techniques))
 
Manufacturing_Requirements = Manufacturing_Requirements + 
    (3 * SubComponent_Cylinders_ManufacturingRequire) +
    ( 3 * SubComponent_Layout_ManufacturingRequirements) + 
    ( 2 * SubComponent_Induction_ManufacturingRequirements) +
    (SubComponent_FuelType_ManufacturingRequirements) +
    ( 2 * SubComponent_Valve_ManufacturingRequirements)
 
 
Manufacturing_Requirements = Manufacturing_Requirements * 3.7037

Power Ratings

if( SubComponent_Cylinders_CylinderCount > 0 )
    Power_Rating = Torque / ( (100 * ex_1d007p_year99) * SubComponent_Cylinders_CylinderCount / 2.2 )
 
Power_Rating = Power_Rating * 50
 
if( Power_Rating > 50 )
    Power_Rating = 50
 
Power_Rating = Power_Rating + ( 50 * ( Torque/2000.0 ) )
 
if( Power_Rating > 100 )
    Power_Rating = 100

Fuel Economy Rating

FuelEconomy_Rating = (FuelConsumption_MPG / 120.0)* 100;
 
if(FuelEconomy_Rating >100)
	FuelEconomy_Rating = 100;

Reliability

Reliability_Rating = (6 * Slider_DesignFocus_Dependability) + 
    (3* (1-Slider_DesignFocus_Performance)) + (5*(1-(rpm/10000.0)))  +
    (2*1-Slider_Performance_Torque) + (3*1-Slider_Performance_Revolutions) + 
    (3 * Slider_Technology_Components) + (2 * Slider_Technology_Materials) + 
    (1-Slider_Technology_Technologies) + (Slider_Technology_Techniques)
 
 
Reliability_Rating = Reliability_Rating + (1 * SubComponent_Cylinders_ReliabilityRating) + 
    (1 * SubComponent_FuelType_ReliabilityRating) + 
    (1 * (1-SubComponent_Induction_ReliabilityRating)) + 
    (1 * SubComponent_Layout_Reliability) + 
    (2*SubComponent_Valve_ReliabilityRating)
 
Reliability_Rating = Reliability_Rating + (8 * (1-(Stroke_mm/150.0)))
 
Reliability_Rating = Reliability_Rating / 4.5
 
Reliability_Rating = Reliability_Rating * 10
 
Reliability_Rating = Reliability_Rating + (Marq_DesignEngineSkill/10.0)
 
 
if(Reliability_Rating<0)
	Reliability_Rating = 0
 
if(Reliability_Rating>100)
	Reliability_Rating = 100

Smoothness

Smoothness_Rating = (-(1.0/10.0)*((SubComponent_Cylinders_CylinderCount-8) * 
    (SubComponent_Cylinders_CylinderCount-8))+5)
 
Smoothness_Rating = Smoothness_Rating + (SubComponent_Cylinders_SmoothnessRating * 2) + 
    (SubComponent_FuelType_SmoothnessRating * 2) + (SubComponent_Layout_Smoothness*2) +
    (Slider_Technology_Components * 3) + (Slider_Technology_Technologies * 2) + 
    (Slider_Technology_Techniques * 3) + (SubComponent_Valve_SmoothnessRating*2) + 
    (Marq_DesignEngineSkill/25)
 
Smoothness_Rating = Smoothness_Rating * 4
 
if( Smoothness_Rating > 100 )
    Smoothness_Rating = 100
 
if(Smoothness_Rating < 1 )
    Smoothness_Rating = 1;

Overall

Overall_Rating = (Reliability_Rating + FuelEconomy_Rating + Power_Rating + 
    Smoothness_Rating + (Marq_DesignEngineSkill))/5
 
Overall_Rating = Overall_Rating + (5*PreResearchEngineAmountEffect)
 
if(Overall_Rating > 100)
    Overall_Rating = 100

Miscellaneous

Unit Costs

Unit_Costs =((((((70* ex_1d01p_year99 * (((1-Slider_Layout_Length) + (1-Slider_Layout_Width))/2.0)) +
    (220 * ex_1d004p_year99 * (((0.25+(Slider_Performance_Revolutions * 
    Slider_Performance_Revolutions) + (Slider_Performance_Torque * Slider_Performance_Torque))/2.0) -
    (0.5-(Slider_Performance_FuelEconomy*Slider_Performance_FuelEconomy)) )  ) +
    (60 * ex_1d01p_year99) *  ((Slider_Performance_Revolutions * Slider_Performance_Revolutions) +
    (Slider_Performance_Torque * Slider_Performance_Torque)) +
    220 * ex_1d008p_year99*(0.1+(((Slider_Technology_Materials*Slider_Technology_Materials)+
    (Slider_Technology_Techniques*Slider_Technology_Techniques ) + 
    (Slider_Technology_Components*Slider_Technology_Components))) ) +
    170 * ex_1d008p_year99*(Slider_Technology_Technologies*Slider_Technology_Technologies) +
    50 * ex_1d0035p_year99 * (Slider_DesignFocus_Dependability * Slider_DesignFocus_Dependability) +
    180 * ex_1d0035p_year99 * (Slider_DesignFocus_Performance * Slider_DesignFocus_Performance )+
    (260 * ex_1d006p_year99 * (2.168 * Slider_Layout_Displacement^1.5 -4.44 * Slider_Layout_Displacement^3 +
    2.646  * Slider_Layout_Displacement^4.5 + 3.126 * Slider_Layout_Displacement^6 )+
    (70 * ex_1d005p_year99 * (SubComponent_Cylinders_CylinderCount/6.0) + 
    (.75 +  Slider_Layout_Displacement^1.5) - (Slider_Layout_Weight^2)) + 10 * 
    (Slider_DesignFocus_FuelEconomy^2) - 50 ) *  ex_1d003p_year99 + 
    (160 * SubComponent_Cylinders_UnitCosts)^ex_1d003p_year99 +
    (120 * SubComponent_Layout_UnitCosts)^ex_1d004p_year99 +
    (140 * SubComponent_Valve_UnitCosts)^ex_1d004p_year99 +
    (435 * SubComponent_Induction_UnitCosts)^ex_1d004p_year99 +
    (120 * SubComponent_FuelType_UnitCosts)^ex_1d004p_year99) * 
    (.125 + 0.12 * SubComponent_Cylinders_CylinderCount)) * 
    (Global_Interest_Rate/2.0)) + 50)  * carPriceRate) * (designRandomVal);
 
Hyper_Sliders = ((Slider_Layout_Displacement*2 + (1-Slider_Layout_Length) + 
    (1-Slider_Layout_Width) + (1-Slider_Layout_Weight)) +
    (Slider_Performance_Revolutions + Slider_Performance_Torque + Slider_Performance_FuelEconomy) +
    (Slider_DesignFocus_Performance + Slider_DesignFocus_FuelEconomy  + Slider_DesignFocus_Dependability) +
    (Slider_Technology_Materials + Slider_Technology_Components + Slider_Technology_Techniques +
    Slider_Technology_Technologies))/13.0;
 
Hyper_Costs = 475 * ex_1d04p_year99 * (Hyper_Sliders*Hyper_Sliders*Hyper_Sliders*Hyper_Sliders);
 
 
Unit_Costs = Unit_Costs + Hyper_Costs - ((Unit_Costs/10) * (Marq_DesignEngineSkill/100));
 

Design Costs

Design_Costs = (((18000 * ( 0.05+Slider_Layout_Displacement^1.5 ) *ex_1d025p_year99 +
    (4000 * (1-(Slider_Layout_Weight*Slider_Layout_Weight))  *ex_1d033p_year99)  +
    5000 *  (0.15+(Slider_Technology_Materials * Slider_Technology_Materials ) + 
    (Slider_Technology_Techniques * Slider_Technology_Techniques ) + 
    (Slider_Technology_Components * Slider_Technology_Components))^ 
    (0.1 + (Slider_DesignFocus_Performance * Slider_DesignFocus_Performance) + 
    (Slider_DesignFocus_Dependability * Slider_DesignFocus_Dependability) + 
    (Slider_DesignFocus_FuelEconomy * Slider_DesignFocus_FuelEconomy)) *
    ex_1d033p_year99+2500*((1.01 - Slider_Layout_Weight)*(1.01-Slider_Layout_Weight)) * ex_1d033p_year99 -
    2500 * ex_1d033p_year99 * ((1-Slider_Layout_Width)+ (1-Slider_Layout_Length)) +
    12000 * (0.2+(Slider_DesignFocus_Performance*Slider_DesignFocus_Performance) +
    (Slider_DesignFocus_FuelEconomy*Slider_DesignFocus_FuelEconomy)) * 
    ex_1d05p_year99 +1500*(3.5+ (Slider_DesignFocus_Dependability*Slider_DesignFocus_Dependability)) *
    ex_1d039p_year99)*ex_1d03p_year99 +
    (4000 * ((Slider_Performance_FuelEconomy *Slider_Performance_FuelEconomy ) + 
    (Slider_Performance_Revolutions * Slider_Performance_Revolutions ) + 
    (Slider_Performance_Torque*Slider_Performance_Torque)) * ex_1d038p_year99) +
    (3000 * (Slider_Technology_Technologies * Slider_Technology_Technologies) * ex_1d035p_year99) +
    (Hyper_Costs * (500*ex_1d035p_year99)) +
    ((95 * SubComponent_Cylinders_DesignCosts)^ex_1d01p_year99) +
    ((115 * SubComponent_Layout_DesignCosts)^ex_1d01p_year99) +
    ((195* SubComponent_Induction_DesignCosts)^ex_1d01p_year99) +
    ((90* SubComponent_Valve_UnitCosts)^ex_1d01p_year99) +
    ((90 * SubComponent_FuelType_DesignCosts)^ex_1d01p_year99) * 
    (Global_Interest_Rate)) * ex_1d003p_year99)
 
 
if(year > 1910 && year < 1930)
    Design_Costs = Design_Costs * (SubComponent_Cylinders_CylinderCount*(1 - 0.0375 * (year-1910)))
else if(year > 1930 && year < 1950)
    Design_Costs = Design_Costs * (SubComponent_Cylinders_CylinderCount*(0.25 - ( 0.005 * (year-1930) )))
else if( year > 1950 )
    Design_Costs = Design_Costs * (SubComponent_Cylinders_CylinderCount * 0.15);
 
 
Design_Costs = (Design_Costs * 0.85) + ((Design_Costs *0.15 ) * SubComponent_Cylinders_DesignCosts)
 
 
Design_Costs = (Design_Costs/5)+(Design_Costs*(Slider_DesignFocus_DesignPace*Slider_DesignFocus_DesignPace*4.5))

Finish Time

Finish_Time =   (((0.55 * Slider_Layout_Displacement) + (1- Slider_Layout_Weight) +
    0.45 * (Slider_Performance_Revolutions + Slider_Performance_Torque + Slider_Performance_FuelEconomy) +
    0.45 * (Slider_DesignFocus_Dependability + Slider_DesignFocus_FuelEconomy + 
    Slider_DesignFocus_Performance))*ex_1d004p_year99 +  (SubComponent_Cylinders_FinishTime) +
    (SubComponent_Layout_FinishTime) + (.75 * SubComponent_Induction_FinishTime) + 
    (.55 * SubComponent_FuelType_FinishTime)) + SubComponent_Valve_FinishTime + 1-
    (2*(FactOverallVAL/100.0))+ (1.15*ex_1d003p_year99*Hyper_Sliders)
 
Finish_Time = Finish_Time + ((year-1850)/50)
 
additionalTime = 0;
 
if(year < 2021)
{
    if(( Slider_DesignFocus_DesignPace + 0.05 )  > 0)
        additionalTime = ( ((year-1840)/15.0 ) *((0.5/( Slider_DesignFocus_DesignPace+0.05) ) - 0.45) )
    else
        additionalTime = ( ((year-1840)/15.0 ) *((0.5/(0.05) ) -0.45) )
 
}
else
{
    if(( Slider_DesignFocus_DesignPace+0.05)  > 0)
        additionalTime = ( ((2020-1840)/15.0 ) *((0.5/( Slider_DesignFocus_DesignPace+0.05) ) - 0.45) )
    else
        additionalTime = ( ((2020-1840)/15.0 ) *((0.5/(0.05) ) -0.45) )
}
 
if(Slider_DesignFocus_DesignPace < 0.5)
{
    Finish_Time = Finish_Time +  additionalTime
}
else
{
    turnsOff = (Slider_DesignFocus_DesignPace - 0.5)/0.20
    Finish_Time = Finish_Time +  (additionalTime - turnsOff)
}
 
if(Finish_Time < 1)
    Finish_Time = 1

Employees Required

if(year < 2021)
    Engineers_Required =	Design_Requirements * (0.11833*(year-1899)+0.275);
else
    Engineers_Required =	Design_Requirements * (0.11833*(121)+0.275);
 
 
Engineers_Required = Engineers_Required/5 + ((Engineers_Required/1.2)*
    Slider_DesignFocus_DesignPace) + 3;
gamemanual/gm_engines_design.txt · Last modified: 2022/03/11 11:51 by admin