Facebook link Linkedin link Soundcloud link RSS feed

Back to the ’90s?

25 March, 2026 in Cars, Computers, Games

My passion for human-in-the-loop vehicle simulation was ignited in the late ’80s / early ’90s by two incredible Atari coin-op games: Hard Drivin’ and Race Drivin’.

For the first time, it was no more a simple “steer left / steer right” matter: Atari introduced a full vehicle simulation, where the challenge was to reproduce real driving manoeuvres to keep the car on track—whether in stunts or at high speed.

I spent countless hours playing those games. And they also inspired me to start a personal project in the early ’90s on the mighty Commodore Amiga, codenamed Impossible Drivin’ (yes… you can probably guess the reference)!

It was my first attempt at simulating a real vehicle in real time. It never became a full product and was never officially released. It featured a simple open-wheel car driving on a basic polygonal track, with just one goal: stay in control at high speed.

Despite its simplicity, Impossible Drivin’ laid the foundations for the following AVC simulation library and the Virtual Grand Prix series, implementing my early vehicle simulation algorithms. Even if, by modern standards, those algorithms were very limited, they were anyway able to capture the essence of fast driving. The model simulated the different behaviour of front and rear tyres, when pushed toward the limits of their friction circles depending on user input. The result was surprisingly fun: the car could easily understeer or oversteer, and the player had to react with the correct manoeuvres to control the vehicle and stay on track.

Even with such simple algorithms, it felt “realistic enough” to be genuinely fun to drive. In fact, my friends and I spent hours playing that early demo, even though it was nothing more than just a minimal sandbox experience.

A few weeks ago, while experimenting with the latest version of the Godot engine, I had a thought: what if I disabled the built-in physics and reimplemented those old Impossible Drivin’ algorithms?

Godot already provides so many features out of the box that recreating the project would be straightforward: just rewrite those few lines of C code in GDScript for the car physics, and let the engine handle everything else (3D, input, etc.).

Well… here it is: the IDFG Project — Impossible Drivin’ for Godot.

And yes, the goal was fully achieved.

The car is extremely fun to drive. I would even say it feels more enjoyable than many modern, full-featured simulations.

Driving in IDFG brings back those ’90s vibes—when simulators were realistic enough to reward good driving, but not so extreme that they became frustrating or intimidating.

Instead of tweaking endless parameters, you just jump in and enjoy throwing the car into corners.

So now the question is:

what’s next?

Should this remain a simple demo, or is it worth turning into a full game with those retro vibes?


The 86 Tribute

17 May, 2024 in Cars, Computers, Games

The “86 Tribute” series for the VGP3 Engine is my heartfelt tribute to an iconic sports car renowned for its exhilarating driving experience; with its lightweight design, rear-wheel drive, low center of gravity, and perfectly balanced chassis, it has captured the hearts of driving enthusiasts around the world.

As a token of appreciation for all the joy and excitement this little japanese sports car has brought into my life, I’ve created this mod to share the experience with fellow enthusiasts.

It is my humble tribute to one of the most fun cars I have ever owned. If you want to have fun driving a “virtual” version of the GT86, you can download (for free) a special version of the VGP3 Engine, containing that series, from here:

https://www.virtualgp.info/index.php?page=download


Tyre-road heat transfer

3 November, 2023 in Cars, Computers, Games, Science

Tyre-road heat exchange

I have been studying vehicle dynamics for almost thirty years, since I set out to create my first driving simulator, Impossible Drivin’, for the Amiga platform. Over the years, I have primarily studied the complexity of the interaction between rubber and asphalt, which is responsible for 90% of the quality of the simulation, and I have developed several algorithms to effectively implement the thermomechanics of the polymer.

In this scientific paper, I publish one of the formulas I developed (and effectively used in my AVC simulation library) for the dynamic calculation of heat transfer between rubber and asphalt, a formula that replaces the simple constant Hc normally used in the literature:

https://www.mdpi.com/2076-3417/13/21/11996


New Treasures for Beobi

30 November, 2020 in Computers, Games

i Beobi nei sotterranei infestati dai Brubulli!

The first game I developed for the all-mighty Amiga was “I Tesori” (Treasures), featuring Pippero and Tucchero in their quest for fortune and glory in the Burubullis’ dungeons. The game was a classic platform one, but the gameplay had some interesting features that made it somewhat different from other titles of the same genre. Unfortunately, it was coded using a very bad development system (Microsoft AmigaBASIC), so the final result was quite bad (especially performance-wise); and even if I planned, later in those years, a remake written in C in order to do justice to the original idea, such a remake never was completed.

Well, never… until now! Taking advantage of this period of Covid pandemic, having some time to spare just to experiment with the Godot engine, I developed a modern version of that old game. It’s still a 2d platform and the orginal gameplay is still there, but I added some new features that, really, were intended to be there in the original game but weren’t because of limitations of the development system.

The new browser game, “I Beobi e il Segreto dei Burubulli”, is freely available here: http://www.paolocattani.com/beobisegreto/; it’s free to play, but if you think it deserves a little donation (link in the game) I will donate myself half of the collected money to organizations that are currently working to fight the Covid pandemic!