August 11, 2014

Why do racing simulators suck so much?

Some thoughts on simulators and why real drivers don't quite get them...

Most of us know that race cars, race tracks, and track sessions are very expensive.  Even for the Mercedes-AMG F1 team which funds itself with millions of dollars in sponsorship.  This is why almost all F1 teams have been using simulators for many years.  They provide a safe, virtually unlimited and extremely inexpensive way to test real race car components and train drivers. Their benefits are pretty clear.

Consumer grade simulators or "sim" games have been evolving quite rapidly over the past 20 years. Unlike other popular sports where you can play in your back yard, racing isn't one of them.  These types of sims offer a virtual experience in becoming a race car driver to anyone, anytime, and anywhere!  With the current computing power available on personal PCs and gaming consoles, most of them are actually pretty good now in being able to model vehicle dynamics accurately!

While many games are geared toward pick-up-and-play, make-you-feel-good, causal gamers, there are some that are geared to people who actually want to use them as tools to practice for track days.

Yet, those ultra-realistic sims still appear to most people as too difficult to just pick up and play.  This is a bit odd, because it's not uncommon for someone who knows how to drive a real car, or even a real race car to jump into a simulator and say "well, this isn't realistic at all!" In fact, I see this all the time when people jump into my own simulator at home.  Believe it or not they actually ask what each pedal does!!  Then they proceed to drive, floor it, and in the first corner crash spectacularly.  Surely that doesn't happen that often in real life!

How can this be? If the software has been designed with the correct math and data, and a physical setup that mimics the controls of a typical car, why is it that people who can drive real cars have such a seemingly hard time adapting to a simulator?

Most people at first glance will say the g-forces are missing. You don't get that seat of the pants feel! True, but g-forces and seat of the pants feel are not everything.  It has been scientifically analyzed (google around if you don't believe me) that most of the information processing by the human brain is done through the visual senses.  Since the brain is able to adopt quite well to all sorts of senses to interpret the same information (see: blind guy who learned to see with his tongue...), it's ok to cut out some senses and still deliver and interpret the right information. Meaning, you don't need g-forces to really drive a car if you gave it more than 5 minutes, especially since modern games and sims have VERY good visuals!!

Yet, people new to simulators still give it more than 5 minutes, still crash, and give up on the whole notion that simulators are realistic in any way.

I believe there is a further problem, and it's not about visuals, but about the feedback loop between the driver and the virtual car.

Let's see how this work in the real world:
We'll take the visual feedback loop.






[LOOP]
1. Driver observes the environment, and makes inputs to the steering wheel. Driver also receives feedback form the steering wheel.
2. Steering rack affects the tires. The tires twist and give feedback to the steering rack.
3. Tires alter the car's direction, which changes the environment which the driver observes.

For a simulation's intents and purposes, there is one feedback loop in the real world and the driver is part of that loop.

Let's see how this differs from a typical simulator:

[LOOP 1]
Driver observes a rendering of the environment, and makes inputs to the steering wheel. Wheel sends positional information to PC and continuously polls for feedback from the PC. That feedback is converted to forces which the driver feels.

[LOOP 2]
PC continuously polls for input from the steering wheel. Calculates physics and graphics. This is where the simulation happens!! Sends back information to steering wheel, and display.

[LOOP 3]
Display continuously polls the PC for frames to render, which are displayed to the driver.

This is a bit oversimplified, but it highlights a fundamental difference between a simulation and the real world.

In a simulation, the driver is NOT part of the simulation loop!

The entire simulation happens inside the PC. The driver is instead in an outside loop which relies on the controller to give back feedback as well as the display. The display itself is also in a separate loop from the PC where the simulation actually happens.

In an ideal world whenever the PC calculates a step of the simulation, that step would be immediately sent to the display and driver, and the driver would send input back to the PC before the next simulation step occurs.  That doesn't necessarily mean the driver will react fast enough, but rather it means that the PC will have accurate information about the current state of the driver at that point in time before continuing to the next step.  For the driver this is important because to appropriately react to the simulation he should also be observing the rendered environment at that point in time from the display.

If this were true, then the simulation loop would look like this:

In effect, it would connect all three loops in perfect synchrony, so that there would be one closed feedback loop, just like in real life.

For this to happen, it means that the communication between the physical device (steering wheel controller) and the display has to be much faster than the steps of the simulator are calculated. However, the faster the simulator calculates steps, the more accurate it can simulate the real world.

Unfortunately with today's technology this communication between external devices is NOT fast enough.  In fact, it is many magnitudes slower than the PC's loop.

As you can see these are very important considerations that are taken by the display, PC, and and peripheral hardware vendors and software developers.  Given the wide array of hardware available and wide array of software available, each designed differently, a typical simulation system will always vary to some degree in its ability to synchronize these three different loops.

The difference between these loops, we simply call lag.  This means, that the greater the lag, the slower the driver will receive information about the simulated environment, and the slower the PC will receive feedback from the driver, and also the slower it will give back feedback to the driver via the peripheral.

...

This means that even if the simulation is perfect, and the driver has all the skill in the world, if the display and hardware components introduce lag, the driver will never be able to respond at the correct point in time of the simulation.  This is very clearly observed when trying to control a simulated car at its limit.  Since there is such a small fraction of time allotted for the driver to make a correction, in a system that has lag, the driver will almost never be able to respond fast enough.  So while they may be good at drifting a car in the real world, they will almost never be able to do so in a simulator if the system has lag.

Most casual home simulator builders don't quite pay attention to this.  They end up building systems that use TVs instead of monitors, which introduce a lot of lag when processing images.  They might also use steering wheel and pedal peripherals which internally introduce lag via their mechanical systems, drivers, or just general hardware processing capabilities.  The speed of cables also matters in terms of how fast data is transferred.

In a system that isn't setup correctly and minimizes the lag, it will be very difficult for a novice "sim" racer to just jump in and expect similar results as in real life.  Since this is often not an obvious thing, the user will typically blame the simulation software as being inaccurate, or poorly developed.

Many games that are developed for fun will tweak the physics calculations of their simulators in order to cope, or compensate for this lag in the system.  They will make their games such that given wrong, or delayed input will have insignificant consequences on how the car reacts to its environment within their simulation.  Forza, Gran Turismo, and many other console and PC games fall into this category, despite claiming they are "real" simulators.  Professional simulators such as rFactor Pro (which are not available to consumers) work with F1 teams to create entire physical systems which minimize this lag and use correct and finely tuned hardware.

For consumers there are few such simulators whose development philosophy chases after realism rather than compensating for hardware lag.  At the moment, they are iRacing and Assetto Corsa. Because the philosophy of both of these "games" is to put the burden on the user to minimize lag, the entry cost for a casual gamer becomes quite high.  A casual gamer will simply not get the most out of these sims without a serious investment and research on proper hardware and display.  Not to mention that the display hardware, and peripherals available on the market that target these types of consumers come with a slew of different settings.  In other words, if you want to do it right, it takes time and effort.

...

Solutions

Measuring lag in such systems is difficult.  Especially due to the number of variables at play, configuration settings, and so on...

Displays

If you dig around enough, people have already used this and have come up with a list of monitors and their lag figures.

The Oculus rift looks promising, but current resolution is lacking.  Everyone seems to be impatiently waiting for the consumer version to be released as it promises to improve is current shortcomings.

Wheels
There is a wide array of wheels available on the market now.  Lag is particularly an issue on force feedback wheels which provide feedback from the simulation to the driver.  The latest and greatest technology now being direct drive wheels.  This means taking an industrial strength motor and mounting a steering wheel directly on the output shaft!  See Leo Bodnar's Simsteering system.

This allows for a wheel to be moved/directed with much greater force to react fast enough to the instructions coming from the PC, and also eliminate any drag in the system from internal gear and belt drives.

Even so, lag is still not eliminated with such peripherals, it is just minimized.  To goal is ultimately to minimize enough so that the information and feedback loop between driver and simulator is as closely matched as possible.

...

This of course doesn't mean you have to spend thousands of dollars on simulator hardware just to get enjoyment and fun out of them, or even learn something.  It does however mean that you have to have different expectations.  Also, a simulator that is setup properly will always give you better feedback than a simulator with just expensive components on it.  This includes even simple things like how far the display is from your eyes and how the field of view is rendered.

Additional thoughts
I didn't mention motion simulation for a reason.  It is my belief that motion simulators are not developed enough to be useful, other than to make you shake around a bit.  There simply isn't consumer accessible technology that is cheap or practical enough to simulate the rate of change experienced in race cars in a 1:1 fashion with your real butt.  This means that whatever information you get from these jiggle machines is most of the time so delayed, it is simply wrong, and will confuse you more than help you drive a car accurately.  That of course doesn't mean that hardware vendors should stop trying, or that they're not fun.  It just means you're more likely to get motion sickness than feel how a car reacts under acceleration or braking conditions.

There are other methods however that give physical feedback via rumbling by using shaker modules that are driven via sound. Again, not quite motion, but just additional feedback.