{"id":803,"date":"2026-03-25T16:04:14","date_gmt":"2026-03-25T16:04:14","guid":{"rendered":"https:\/\/www.paolocattani.com\/personal\/?p=803"},"modified":"2026-03-25T16:04:14","modified_gmt":"2026-03-25T16:04:14","slug":"back-to-the-90s","status":"publish","type":"post","link":"http:\/\/www.paolocattani.com\/personal\/back-to-the-90s\/","title":{"rendered":"Back to the \u201990s?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">My passion for human-in-the-loop vehicle simulation was ignited in the late \u201980s \/ early \u201990s by two incredible Atari coin-op games:\u00a0<em>Hard Drivin\u2019<\/em>\u00a0and\u00a0<em>Race Drivin\u2019<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the first time, it was no more a simple \u201csteer left \/ steer right\u201d matter: Atari introduced a full vehicle simulation, where the challenge was to reproduce real driving manoeuvres to keep the car on track\u2014whether in stunts or at high speed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I spent countless hours playing those games. And they also inspired me to start a personal project in the early \u201990s on the mighty Commodore Amiga, codenamed\u00a0<a href=\"\/personal\/the-amiga-era\/\"><em>Impossible Drivin\u2019<\/em>\u00a0<\/a>(yes\u2026 you can probably guess the reference)!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Despite its simplicity,\u00a0<em>Impossible Drivin\u2019<\/em>\u00a0laid the foundations for the following\u00a0<a href=\"https:\/\/www.paolocattani.com\/avc.php\" target=\"_blank\" rel=\"noreferrer noopener\">AVC simulation library<\/a>\u00a0and the\u00a0<a href=\"https:\/\/www.virtualgp.info\/\" target=\"_blank\" rel=\"noreferrer noopener\">Virtual Grand Prix series<\/a>, 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even with such simple algorithms, it felt \u201crealistic enough\u201d 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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&nbsp;<em>Impossible Drivin\u2019<\/em>&nbsp;algorithms?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Well\u2026 here it is: the&nbsp;<strong>IDFG Project \u2014 Impossible Drivin\u2019 for Godot<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And yes, the goal was fully achieved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The car is&nbsp;<em>extremely<\/em>&nbsp;fun to drive. I would even say it feels more enjoyable than many modern, full-featured simulations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Driving in IDFG brings back those \u201990s vibes\u2014when simulators were realistic enough to reward good driving, but not so extreme that they became frustrating or intimidating.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of tweaking endless parameters, you just jump in and enjoy throwing the car into corners.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So now the question is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>what\u2019s next?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Should this remain a simple demo, or is it worth turning into a full game with those retro vibes?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My passion for human-in-the-loop vehicle simulation was ignited in the late \u201980s \/ early \u201990s by two incredible Atari coin-op games:\u00a0Hard Drivin\u2019\u00a0and\u00a0Race Drivin\u2019. For the first time, it was no more a simple \u201csteer left \/ steer right\u201d matter: Atari introduced a full vehicle simulation, where the challenge was to reproduce real driving manoeuvres to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":802,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3,6],"tags":[],"class_list":["post-803","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cars","category-computers","category-games"],"_links":{"self":[{"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/posts\/803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/comments?post=803"}],"version-history":[{"count":4,"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/posts\/803\/revisions"}],"predecessor-version":[{"id":807,"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/posts\/803\/revisions\/807"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/media\/802"}],"wp:attachment":[{"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/media?parent=803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/categories?post=803"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.paolocattani.com\/personal\/wp-json\/wp\/v2\/tags?post=803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}