Performance Simulations


I’m back! Site was hacked a few years ago and I’ve been too busy with projects to restore it. For now I’ll just blabber on blog style for a few minutes and talk about my background, various projects I’ve worked on over the years.

I’m J. Todd Wasson (call me “Todd”). I started Performance Simulations as a sole proprietorship originally in Arizona in 1999. In 2000 I moved back to Minnesota where I re-registered the company and have remained since.

The company has just been me running solo all these years. It started with a drag racing simulation I wrote in high school around 1991 while taking a physics class. I loved cars, loved physics, and loved programming, so what else would I do? This was back in the DOS days when I wrote QBasic code in DOS. At the same time I wrote an engine simulation and 2D vehicle dynamics simulator.

After moving to Arizona for a few years, I rewrote the drag racing program into a language called PowerBasic for Windows and dressed it up to run on Windows 95 and go 100+ times faster. Think I finished that early 1999. The language was similar enough to QBasic that I didn’t have to learn too much. I dreamed up the name “Performance Simulations” and, seeing nobody was using it, registered it for the first time in Arizona and created the original version of this web site. That was in pure html 1.0 if you can believe that. Long time ago.

Straightline Acceleration Simulator

I named the Windows version of the drag racing and engine simulation program “Straightline Acceleration Simulator” and began selling it on 3.5″ floppy disks by mail. Payments came by check the same way. This was still pretty early in the internet days when the internet boom was just getting going, so unless you had crazy web programming skills (I certainly don’t) you didn’t have an online store or digital distribution. Later as easier web dev tools became available, I started selling it through this site as a download instead which made life easier for everyone. It remained that way for close to two decades.

It wasn’t a huge seller, but it was fun to get a purchase occasionally and chat with customers, some of whose cars are shown at the top of the site. Many were quite interesting. I recall one of the first (if not THE first) was an engine builder who sent extra money with his check while acknowledging how hard it was to create a program like that. Another one was an engineer at Lingenfelter around the time they had built one of their first super Corvettes while another worked in a transmission design place for some well known high end sports cars like the Bugatti. It was good enough where one even asked for a custom version for their transmission design shop so their engineers could throw away their spreadsheets. I was too busy with other projects to do it so I passed on it, but it was neat to be asked anyway.

Here’s a picture of one of the original 3.5″ floppies I used to sell by mail. I still have this one:


Virtual RC Racing and VRC Pro

Available here: https://vrcworld.com/

Straightline Acceleration Simulator (called “SAS” for short) was a simple 1D vehicle model. It worked surprisingly well considering how simple the vehicle model was. You can’t get any simpler than a single lumped mass with only one degree of freedom, right?

Having finished that along with a 2D vehicle dynamics model years earlier while in high school, I wanted to see if I could figure out how to write a full 3D vehicle model. Also known as a “physics engine,” which might be a familiar term to you if you’re a gamer like me.

This was a very long, interesting and laborious process that burned quite a few brain cells. I started that in 1999. Back in those days there weren’t many internet forums. Usenet (now available through Google Groups) was where all the smart people hung out so if you wanted to talk shop, that was the place to be. The group I hit the most was called rec.autos.simulators. Some of the popular racing sims today can trace their lineage to that group.

There were several of us working on our own pet projects in that group, little more than hobbies at the time for most of us. We’d help each other out with questions and answers. I learned a lot and enjoyed helping people when I figured something out that somebody else was stuck on, so I became a regular there and at other gaming dev groups.

One day somebody asked the typical “I’m making car game, how do you write a vehicle model” question. At that point I’d answered it so many times I decided to just send him what I had at that point to save time. If he liked it, I’d just tell him how to do it. I sent it along and the guy loved it, said it was just what they were looking for. However, he didn’t want to write it himself (really his son was working on something) and asked if he could license the engine instead. I threw out a dollar number that was agreeable, and what was originally going to be called “Virtual RC Racing 2000” was essentially born. That took more than four years from the time I joined the project, so the title was shortened to “Virtual RC Racing.”

Besides writing the vehicle model, I also tuned the vehicle physics parameters for all the cars so they’d drive as close to the real thing as I could manage. Vehicle dynamics is an area of great interest to me and I’ve become pretty adept at it. I also wrote the AI model (computer opponents) and probably a ton of other things that slip my mind at the moment.

We released it late November 2004, then released updates for a couple of years, then started a six+ year project creating a new, bigger, better RC car sim called VRC Pro.

On the side I still liked writing engine simulations too. During VRC Pro development it became apparent that an engine simulation like that would be useful for VRC Pro itself, so I wrote a two stroke engine model tailored to RC car engines for use in the game. It worked great and it was easy to get a good data fit to real dyno data. This let players do all kinds of cool things to the engine like changing exhaust length with different header pipes and spacers, controlling ignition timing with different temperature glow plugs, fiddling with low and high speed fuel mixture needles and so forth.

The engine simulation ran just once to generate a torque/power curve, then a light weight real time simulation would run while you were driving which basically just tracked heat flow and a minimal set of variables if memory serves correctly. This way if players used the wrong glow plug for the atmospheric conditions, they might overheat the engine and burn out the glow plug. If you ran the engine too rich, it’d bog down and misfire (losing lots of power and sounding different), run it too lean and it’d burn up the glow plug and quit running entirely.


Design it, Drive it : Speedboats

After 14 years of VRC and VRC Pro, I left the project in 2014. I took virtually the entire summer off to reset the brain (highly recommend trying that). I tried Unity after a couple of developer friends recommended it. I wrote a mobile version of Straightline Acceleration Simulator (not shown here) and then started working on a boat simulator just for fun and to get my head out of cars for awhile. Oculus VR came out with their first dev kit which Unity was supporting. A friend loaned me his DK1 for a couple of days and I was blown away. Totally hooked on VR and I have been ever since. When the DK2 came out I bought one immediately and I spent 15 months creating a boat sim in Unity (using C#) called “Design it, Drive it : Speedboats” which had VR support.

I wanted to do the physics at the polygon level where every triangle in the boat produces forces from fluid dynamics equations. I couldn’t find any suitable 3D models, and most of the fun in flying these high speed boats is in the subtle design differences, so eventually I decided to just make boat design as part of the simulator. It’s not pretty looking or very full featured, but it does what it was meant to do very well: Physics! It’s popular with boat racers including some F1 pilots. Unfortunately it’s a small market (or I’m terrible at marketing; entirely possible) so it doesn’t pay the bills. Had to put it to the side and move on.

I sold it through another one of my websites http://speedboatsim.com/ directly for a few months and then got greenlit for Steam where it’s currently sold:

https://store.steampowered.com/app/501090/Design_it_Drive_it__Speedboats/


KartKraft

This is a race kart simulator with a focus on realism. I guided and assisted with physics engine design, wrote the tire model and did a lot of the initial tire and vehicle dynamics tuning before others tweaked handling further. This and everything that came after it was all C++.

This is on Steam too:
https://store.steampowered.com/app/406350/KartKraft/


The Grand Tour Game

This was the first game released by Amazon Games and was for XBox and PS4 only. It used the rFactor 2 physics engine from Studio 397. I worked as contractor for Studio 397 modifying the rFactor 2 engine for use in this product. The project’s creative director from Amazon had done all the Need For Speed games over the previous 10 years and wanted something arcade that drove somewhere between NFS and Mario Kart on a gamepad. rFactor is a serious simulation engine so it wasn’t really possible to get the arcade style vehicle handling they wanted from the engine. I was brought in as a contractor to figure out ways of fixing that.

Most of my time on this project was spent designing and writing control systems to make an rFactor level sim car drive very easily with a gamepad. I also wrote extra models to make the physics work the way they wanted rather than the way a real car works, all while keeping the underlying rFactor physics engine intact. That meant dreaming up and coding extra forces and torques and that kind of thing so we could break the law of physics and get some arcade style drifting that arcade racers would immediately grasp and not struggle with. It was a fun project. Amazon flew me out to Seattle a few times to work with the team in person near the end.

Racecraft

Racecraft had been on the PC market for some time before I joined. I was brought on to up the physics level to something like Gran Turismo. I developed new physics features they didn’t have before, new tire model features like temperature gradients across the surface, nicer tire wear and grip variations acting more like a real tire and that kind of thing. This included a more sophisticated suspension model, a more flexible aerodynamic model and so forth. Probably more that escapes me at the moment.

Toward the end of my involvement on the project I’d written an AI line generator to replace the system they had originally. I thought it was good the way it was and recommended they save some money by skipping this part of the upgrade, but they wanted something new anyway. It was interesting in that the tracks are created procedurally (potentially unique every race) so you can’t do AI cars the typical way. There’s no chance to record racing lines or manually tune anything, it all has to happen automatically in a few seconds at track loading time with a 5 second CPU budget. My AI stuff didn’t go in to the title, but they’re planning something else with it anyway, so it’ll likely pop up somewhere some day.

Ultimately the big Racecraft update I worked on didn’t go to PC or consoles, but instead to coin-op arcade machines like shown above. It’s fun to think it’s actually an arcade game in real arcades now somewhere in Europe. Arcades are where my gaming started, after all!

Nascar ’21 : Ignition

At this point it was back to Studio 397 again. Motorsport Games was licensing the rFactor engine for the next big Nascar game. They had a similar problem to The Grand Tour Game in that with the rFactor physics engine it was pretty much impossible to have realistically parameterized car that was at all drivable with a gamepad. Because of the similar work I’d done on The Grand Tour Game, they called me back to help with the same basic problem of gamepad control.

I was on this for a pretty long time, nearly a year and a half. My part started with a look at the existing brake assist. That uses information from the AI system, so it lead down a fantastic rabbit hole of AI hell in the rFactor engine. After about three months I’d made the necessary AI system changes and cracked out steering and brake assists that were about as good as I could get them.

At that point the AI cars were still a terrible mess, train track cars that never passed each other and were way too slow. I felt it was the weakest link in the game, so with permission I spent the rest of the project rewriting much of the AI system to try to rescue that part in the time we had available. Also had to tune the AI separately on every track (20+ of them, did it about four times as things progressed) using the new stuff I wrote which took an enormous amount of time to do.

Eventually Motorsport Games (MSG) bought Studio 397 and Black Delta (KartKraft described earlier which I also worked on), so I technically became a contractor for MSG at that point. A couple of weeks before I left, they flew me to Miami (Motorsport Network HQ where MSG resides) where they offered me to head the physics development across all their titles. At the time that was planned to be all the future NASCAR games for many years to come, whatever Indycar games they’d develop, a British Touring Cup Car game, and a LeMans game. I instead decided to go my own way with my own racing simulator project and left a couple weeks later.