Overview
With release SD 2.0 the default simulation model was set to simuV2.1. All car type setups for human drivers and robots are optimized for this version (including all the bugs that might be still included).
One of the issues SD has with it's history is the simuV3, that is always thought to be the next (better) simulation. But this is not true, simuV3 is an incomplete test version of a full 3D simulation, that was started for TORCS and never finished.
Our current simulation (simuV2.1) is newer and better, even if it is a 2.5D simulation modell.
To avoid the repeated issues the next small step in development will be simuV4 (and not simuV2.2)!
SimuV4 will be started on the simuV2.1 code that is published with SD 2.0, while simuV2.1 will not be changed (even no bug fix) because it is needed as reference for the test of the next simulation model.
In parallel we will start a real new simulation called simuV5.
Rules for the development
Definition:
The current simulation (simuV2.1)
The next simulation (simuV4.X)
The future simulation (simuV5.X)
The current simulation (simuV2.1)
While we are working at the next step for our simulation modell, others of the team are working on car type setups and robot setups. To avoid working for the trash, we decide to not change the current simulation model (simuV2.1). It will be used as reference for the next simulation modell. All development work has to be done at one of the following simulation modells.
The next simulation (simuV4.X)
The next simulation modell is defined as an extension of the current simulation modell (simuV2.1). Extension means that (strictly) no changes are made to the existing calculations of the simulation, a car that was made for simuV2.1 has to drive exactly the same way as it was with SD 2.0! Extensions planned are new features that can be used by new cars if they are enabled explicitly.
Some examples:
The Force Feedback: Does not affect the driving of the car, only increases the feeling for human drivers.
The Single Wheel Braking: Does affect the driving of a car, therefore it is disabled by default and has to be enabled explicitely by the robot/human driver car setup.
The Air Brake: Does affect the driving of a car, therefore it is disabled by default and has to be enabled explicitely by the robot/human driver car setup.
New Aero drag modell: This will be a variant that can be selected to get more realistic behaviour while slipstreaming. It will affect the driving and is disabled by default.
All these extensions have to be realized in a way that keeps the simulation results unchanged if a feature is not enabled. This way we can still use all the work that was done for SD V2.0 but can add new features for new cars.
To enable these features there is a need for
The details of these features will be discussed in a separate topic.
The naming simuV4.X is used to make clear that there will be more than one step between the current simuV2.1 and the future version simuV5.X. This is to allow short release cycles for SD, to allways have a working simulation without the need to rework all the cars and robots again and again. We will have new features but will not change existing features/calculations that where tested and published. Bug fixes have to be done before publishing features! Using this concept it will be possible to drive exisiting cars using the "old style simulation 2.1" and new cars (or variants of exisiting cars) using the "new style simulation 4.X" in the same race! So this is no restriction but a real extension for SD!
The future simulation (simuV5.X)
The future version of our simulation will be designed to allow more realistic driving. This will cause us to develop new car type setups (for human drivers and robots) for all the cars that are distributed with SD. The work will be started now, but there will be a work load that is planned to be done in about two or three years!
This simulation is planned to allow to add features like driving on variants of a track. A separate pit lane will be some sort of such a variant. A pit lane usually has a smaller width than the main track. Therefore we will have to implement a new track model. To allow artists to use textures with lines on tracks with a variable width, we will have to change the track generation modell as well. Such a track will have not just a variable width but have a width to the left and another to the right defined from the design line in the "middle of the track", means it will not be the geometric middle. This is needed to allow splits and joins in a realistic way.