{"id":64,"date":"2026-02-01T00:58:41","date_gmt":"2026-02-01T00:58:41","guid":{"rendered":"https:\/\/www.geekadvice.au\/?p=64"},"modified":"2026-02-01T00:58:41","modified_gmt":"2026-02-01T00:58:41","slug":"physics-updates","status":"publish","type":"post","link":"https:\/\/www.geekadvice.au\/index.php\/2026\/02\/01\/physics-updates\/","title":{"rendered":"Physics Updates"},"content":{"rendered":"\n<p>So after a bit of a hiatus, I came back to try and get the physics closer to my envisioned state. This meant I needed to implement a few functions that were not possible using blueprints alone.<\/p>\n\n\n\n<p>What did I need to change? Well it started with just the chaosvehiclesplugin, which houses a lot of the main functionality of the vehicles simulation. Through this I was able to implement differentials (LSD, Open, and Locked) but upon finishing that I discovered a big flaw in my new system. We need to go a little back though for context.<\/p>\n\n\n\n<p>The Main Problem<\/p>\n\n\n\n<p>Weird behavior of the default plugin is very noticeable when driving a high powered rear wheel drive vehicle. In 1st gear excessive wheelspin would cause momentary lose of torque. The wheel would rapidly oscillate between full torque and 0 torque causing weird jittering, and the EngineRPM would not reach the maximum limit. There was an odd feedback loop that would make it seem like the car was misfiring\/playing up. Overall it felt horrible.<\/p>\n\n\n\n<p>That was one part, the next part was that it seemed like all drive torque was calculated based on the last drive wheel, so if a car had a high center of gravity and soft suspension and could lift the inside wheel during cornering, the car would lose all drive.<\/p>\n\n\n\n<p>So this led me to implementing a completely new drivetrain logic that replaces everything from engine power calculations to the wheel speed applied. With a slippable clutch, and differential adjustments to distribute the power.<\/p>\n\n\n\n<p>It has taken many many hours to come up with a system that isn&#8217;t overly complicated but feels right. I went as deep as full engine load + clutch thermal management and all the way to the other end with simple RPM calculations and a slider between wheel and engine RPM. I&#8217;ve ended up somewhere in the middle, trying to keep in mind that the game is supposed to be fun, and not a simulation.<\/p>\n\n\n\n<p>In summary, I&#8217;ve added proper differential configurations, a clutch can be manually activated to clutch kick, helps launch, slips between gears and generally does clutch things. While also fixing weird wheel speed issues with wheel overspeed\/torque cut when doing drifting\/burnouts. The fun stuff!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So after a bit of a hiatus, I came back to try and get the physics closer to my envisioned state. This meant I needed to implement a few functions that were not possible using blueprints alone. What did I need to change? Well it started with just the chaosvehiclesplugin, which houses a lot of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","hentry","category-racewars"],"_links":{"self":[{"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":1,"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"predecessor-version":[{"id":65,"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/posts\/64\/revisions\/65"}],"wp:attachment":[{"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geekadvice.au\/index.php\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}