7 ms·
Programming vehicles in games
- jimmySixDOF 1y agothere is a whole family of filetype glTF extension standards for vehicles so a completed asset will be rendered effectively across different game/world/ engines and coordinate the physics etc ... [1] is an example : [1] https://github.com/omigroup/gltf-extensions/blob/main/extensions/2.0/OMI_vehicle_body/README.md https://github.com/omigroup/gltf-extensions/blob/main/extens...
- flohofwoe 1y agoJesus F. Christ, they're really turning gltf into a kitchen-sink format :/
- CupricTea 1y agoIs it any more of a kitchen-sink format than FBX? This is listed as a gltf extension, so not required in every loader, no?
- StrandedKitty 1y agoWhat do you think the purpose of extensions is? They enrich the base spec. If your renderer can't handle an extension it will simply ignore it.
- jayd16 1y agoOnly one known implemention, though.
- constantcrying 1y agoI liked the talk, but it was given very much from the perspective of a game developer and not from the perspective of an engineer wanting to simulate a car. (Unsurprisingly) There is actually a lot of literature on how to simulate vehicles, which would be quite a bit of help. He also mentions BeamNG whose approach is very weird if you actually want to get accurate vehicle dynamics. Their ongoing tire simulation project seems even weirder and as if it was done by people who actively tried to ignore standard approaches for modeling tires.
- westmeal 1y agoWhy do you say beamngs approach is weird? They seem to take a bottom up approach and I think it's a decent way to do it.
- constantcrying 1y agoBecause they are a German company who gets some American lab to do some standard tire parametrization tests. Germany has two state of the Art companies developing tire models and their parametrization and instead of relying on the decade of research and experience in that area they are ignoring it all and are going to some company around the world to get any data at all. This is just totally bizarre, they likely could have saved themselves a lot of time and money by just hiring a couple of guys from that sector and just implementing well studied approaches or just worked together with world leading experts in that field. >They seem to take a bottom up approach and I think it's a decent way to do it. If nobody else had ever done tire simulation, sure.
- deleted 1y ago[deleted]
- ok_dad 1y agoTire simulations vary wildly amongst car sims. There certainly are many approaches to modeling tires, and many variables that can affect it. Beam is pretty good, I think they’re trying new stuff and it’s paying off.
- constantcrying 1y agoGiven the fact that right now they are in the process of parameterizing their tires I can only assume that their fidelity is significantly below the state of the art
- ok_dad 1y agoBeam has been out for a while, they have decent tire models already, this is new research. I’m sure you’ve driven it, so you’d know that it’s not the best but it’s no slouch.
- andrewmcwatters 1y agoI realize the author goes super hard into actual physical vehicle hardware components, but every time I think about super good feeling vehicles in video games, I think about how ridiculous the Warthog in Halo 1 feels, but the vehicle physics in that game seems to make almost no sense, and when vehicles go flying it's hilarious and absurd, and I wish some developer from the Halo 1 days of Bungie would talk about it. I recall the Warthog and other vehicles actually defining some specific properties about vehicles like RPM and gear ratio, at least I think, because in first person you'd see some of those properties reflected in the dashboard of say the Warthog, or you'd hear it in the audio for a covenant vehicle. But wow, man, what great feeling vehicles. Nothing else like it in the industry, in my opinion. The ridiculous feeling of vehicles in Grand Theft Auto 4 came really close, but those seemed to be much, much more detailed from vehicular motion and damage-taking perspectives.
- rightbyte 1y agoHave you played Warthog Launch? It makes satire of the game physics.
- w4rh4wk5 1y agoHalo 1 featured a custom physics engine sometimes called Chucky Physics due to its creator Charlie Gough. Bungie switched to Havoc in the following titles. I completely agree that the Warthog in Halo 1 felt the best, by far.
- lpeancovschi 1y agoA while ago I made a game for iOS that simulates vehicles and drifting. It was built in SpriteKit but very easy to do in any 2d game engine. The idea is: you put two wheels in front, connect them to the rectangle car shape with pin joints and then you apply force to the wheels. The angle of the force is very easy to calculate: x = force * cos(bodyRotation + wheelRotation) y = force * sin(bodyRotation + wheelRotation) That's it! I also added skid particles. The drifting was achieved by playing around with the wheels and body damping. The game is here: https://apps.apple.com/app/drift-mania-infinite-car-racer/id6447110310 https://apps.apple.com/app/drift-mania-infinite-car-racer/id...
- qoez 1y agoCool game! The marketplace is so competitive I'm surprised you got even 22 ratings, how'd you manage to market it?
- lpeancovschi 1y agoThank you! I like the game too, but today it doesn't really make sense to publish games. I believe there are over a million of them on the App Store and the usage is declining anyway - people spend more time watching TikTok these days. Regarding how I managed to get 22 ratings - it's just organic discovery, I think I get around 1-3 downloads per day. On every other session I would ask users to leave a review. I also cross-promote this game through my other games, but that doesn't help a lot.
- lpeancovschi 1y agoBy the way, for anyone thinking of increasing organic discoverability some pro tips: 1. Try to decrease crash rates to 0. Ideally 99.9% crash free sessions. 2. Try to increase user retention - the more often user re-open your app, the more likely apple algorithms with rank your app higher. 3. Similar to 2. but the metric is time spent in the app. Try to increase it too.
- monocularvision 1y ago“The game features stunning graphics…” Love the self-deprecation! Downloading now.
- matheusmoreira 1y agoTruly fascinating. Now I want to read up further on steering models and how they're programmed. Steering feeling off is usually the thing that makes me hate driving cars in video games. Cyberpunk 2077 was the first time I felt like I was driving an actual vehicle.
- llbbdd 1y agoTurn radius is big for this feeling I think. Lots of game cars feel like they're rotating from the center of mass when you turn instead of following the arc of the tires, I'm guessing to make sharper turns easier.
- user____name 1y agoOne of the big difficulties in vehicle gamedev is taking a big abstract (semi-)physical model and handing it over to the game designers who then have to design with a large amount of unintuitive and correlated parameters. There's been various approaches to reduce the number of knobs to tweak so the designers don't have to rebalance the entire set of vehicles any time something related to the vehicles changes, but it's very much a black art.
- ziml77 1y agoMeanwhile I despise driving in Cyberpunk. It feels like the devs were expecting me to be driving with a sim setup rather than WASD. Very much tainted my experience with the game to have cars that are constantly sliding and spinning on me because I wasn't slowing down to a realistic turning speed. Especially because sliding into a pedestrian gives wanted rating and the only way to get rid of that is to hide from view of cops.
- mhink 1y ago> Interestingly, while the engine has the most moving parts in real life, in code, it's the simplest piece of the entire car simulation. Because at its core, the engine is just a torque calculator. It's concerned with producing a single output: rotational torque, from a set of inputs. It is essentially a blackbox. This just reminded me of AngeTheGreat's incredible video series showing his engine simulator- absolutely worth checking out, considering it's optimized enough to run in real-time! The fact that he's simulating it well enough to generate realistic sound is absolutely mind-blowing. https://www.youtube.com/watch?v=RKT-sKtR970 https://www.youtube.com/watch?v=RKT-sKtR970
- ehnto 1y agoThe game Automation has quite an in depth engine builder/simulation aspect to it. It's very fun to mess around with, and the sound simulation uses some of the concepts AngeTheGreat has in his videos.
- Joel_Mckay 1y agoIn general, most simulations with rigid body physics are still baked-in animations, and often still use rudimentary collision conservation models. If people try something fancy... the clipping and weird physics glitches will ruin their day. Only somewhat depends on the game engine =3
- oofoe 1y agoClassic of how to animate a cube in Houdini: https://www.youtube.com/watch?v=NLiL0GLSvIw https://www.youtube.com/watch?v=NLiL0GLSvIw (tldw: Real time internal combustion engine simulation something unexpected.)
- Joel_Mckay 1y agoLOL, still looks better than my first attempt at a Dump-truck rig with a dual rear axle. Should have added Yakety Sax =3 https://www.youtube.com/watch?v=lAJB6HsYiNA https://www.youtube.com/watch?v=lAJB6HsYiNA
- 1y ago
- furyofantares 1y agoIt's a cool post but I am very confused by the intro. It makes the case that cars in games offer a wide variety of unrealistic experiences and says this is unlike guns. Is that really true? I've played games with homing bullets, slow projectiles, enormous projectiles, gravity guns, rocket jumping, hit scan guns, guns with bullet drop, freeze guns, ... idunno, I think there's a lot of variety in guns that are about the experience and not about simulating physics. > It's because when it comes to cars, we derive our expectations of them not just from first hand experience. Our understanding of what “driving fast” feels like is often built from second-hand sources; films, games, pop culture. And then this just feels like a theorycrafted thing with zero evidence. It's also even more true of guns than of cars, isn't it? But then, there's stuff like, uh, jumping, where there is just as wide a variety in how you can jump in games even though my expectations about jumping come a lot more from actually jumping than do my expectations about driving come from actually driving.
- herval 1y agoI’d imagine the author doesn’t have a ton of experience coding FPS games. They’re definitely not like the experience of shooting an actual gun. Games would be a lot more frustrating and boring if they were, with much lower accuracy, much more variable bullet drop, etc. It’s the same as in racing games, lots of affordances to make it feel more fun
- elictronic 1y agoTarkov, Hot dogs Horse shoes and Hand grenades, and ARMA all might want a word with you. The act of dealing with those frustrations while you are already stressed is what makes them good. I will say Tarkov takes some liberties with its recoil making it even worse than real life.
- cluckindan 1y agoNot to mention Road to Vostok. You even have to load magazines separately.
- 1y ago
- guhcampos 1y agoAmazing article. I've always been curious how hard it would be to simulate accurate tires in particular, and I'm also interested in how the sound of engines is generated. A quick typo though: s/Imperically/empirically (I guess)
- ehnto 1y agoYou are in luck, there is an amazing youtube series about someone who made an engine simulator so he could simulate engine sounds: https://youtube.com/playlist?list=PLUahe1BHkKtVN4nPDmueo7huQgIhwUGOK&si=x9bNXs6S_UXZSFFz https://youtube.com/playlist?list=PLUahe1BHkKtVN4nPDmueo7huQ... The simulation of tires is interesting too, because you can get totally playable vehicles without simulating them at all. Or you can simulate some aspects for gameplay reasons (tire wear, heat, rudimentary grip level change) Or, you can go really, really deep, and simulate the real physics going on, and that's what games like Beam NG, iRacing, Assetto Corsa etc. are doing. Usually known as the "tire model" in case you want a term to search up. They're still approximations but ever improving accuracy.
- rzzzt 1y agoBeamNG is standing on the shoulders of Rigs of Rods, which uses soft body physics (points of mass connected by links that aim to keep the same distance between two points up to a certain amount of force applied, after which deformation occurs): https://en.wikipedia.org/wiki/Rigs_of_Rods https://en.wikipedia.org/wiki/Rigs_of_Rods
- acc_297 1y agoReading this reminded me of this good lecture on the physics of racing which was posted to youtube. Andre Marziali - Physics of Racing https://www.youtube.com/watch?v=bYp2vvUgEqE https://www.youtube.com/watch?v=bYp2vvUgEqE
- pinoy420 1y ago[dead]
- visualphoenix 1y agoIn addition to some other things, I was responsible for all vehicle simulation in Army of Two. This article is a good starting point. I was glad they mentioned implementing Pacejka’s tire model and the transmission differential in the article - those help a lot. Aside from that, I was surprised (not surprised) how important an anti-roll bar physics sim and suspension sim helped make driving feel “fun”. That’s the most important follow up. Without it, you’ll notice that the driving feels icy - I see it in the demo video. Most folks who fail to do the anti-roll bar and suspension wind up with cars that easily flip on turns - so they make the tires slip or they play with the surface friction, which makes the driving experience worse.
- pnw 1y agoClassic game. One of the first shooter co-ops I can remember playing!
- visualphoenix 1y agoFun fact: the standing turrets are vehicles without wheels
- wassimulator 1y agoThank you for this! I wasn't aware that anti-roll bars carry that much importance in a rudimentary model. I will look into that next, and update the article accordingly once I get it working.
- user____name 1y ago> Aside from that, I was surprised (not surprised) how important an anti-roll bar physics sim and suspension sim helped make driving feel “fun”. Haha. My car recently had issues in that department and I got to experience the lack of fun firsthand.
- kqr 1y agoThis very closely mirrors what I discovered when I made Flightle[1]. I made it in anger when I played a sidescrolling flight "simulator" on my phone in which the plane didn't behave anything like a plane! I figured "how hard can it be" and started learning a lot about how planes fly. It turned out there was a level of abstraction that was just right. Too unrealistic felt static and unsatisfying. Too realistic was difficult to calibrate for fun gameplay. [1]: https://xkqr.org/flightle/ https://xkqr.org/flightle/
- Zircom 1y agoFun game, have you considered allowing people to control the sliders with their scroll wheel if they're on a desktop web browser?
- kqr 1y agoNot considered that. Good idea!
- kqr 1y agoToo late to edit the comment, but here's the article describing some more of what I learned: https://entropicthoughts.com/sidescrolling-flight-simulator https://entropicthoughts.com/sidescrolling-flight-simulator What's not mentioned in that article is that a couple months later I tried switching from modeling the plane as a point to modeling it as two separate wings attached by a rigid stick. It was a nightmare to get into a shape that played well, though I'm sure someone more skilled than I would be able to do it.
- cellular 1y agoLong ago i made a paper airplane simulation also in anger! My inspiration was a fun game on 1980s intellivision! That side view game had momentum and stalling airplane physics that aren't in any arcade game since that I've found. Dogfights were hilarious because each player would risk stalling so they'd have more momentum to maneuver an attack. Did you play that old game?
- Animats 1y agoNo hills? No banked curves? No suspension? Unreal Engine comes with two car demo projects. The first one is the "Hello World" of Unreal, and has a simple vehicle. The second one has an actual suspension model.
- ivanjermakov 1y agoWassim said in talk's QA that suspension is incidentally handled by the physics engine, which feeds back into uneven tire load, affecting tire forces.
- wassimulator 1y agoAt the end of the talk, and article, there is a short video demostration of the current state of the game engine, and it has hills and banked curves and whatnot. For the talk I opted for a flat grid. Suspension is implemented as well but it didn't feel to me like a unique problem to implement for cars, at least not a simple suspension that can carry a car, and it didn't fit too well with the flow and limited time I planned for this.
- emptybits 1y agoWow. Sincerely enjoyed this. Will re-read for the tire model alone. On the other end of the spectrum, playing purely for fun with no regard for simulation or realistic anything ... I'll take a 1980s spinner wheel Super Sprint arcade cabinet any day for guaranteed smiles per mile. https://www.arcade-museum.com/Videogame/super-sprint https://www.arcade-museum.com/Videogame/super-sprint
- WolfCop 1y agoThere was a good GDC talk about the car physics in Rocket League: https://www.gdcvault.com/play/1024972/It-IS-Rocket-Science-The https://www.gdcvault.com/play/1024972/It-IS-Rocket-Science-T... Disclaimer: I worked on Rocket League, but not on the game client.
- user____name 1y agoA copy/paste from some related talks I had saved in my notes: Hamish Young, Vehicle Physics and Tire Dynamics in 'Just Cause 4' https://gdcvault.com/play/1026035/Vehicle-Physics-and-Tire-Dynamics https://gdcvault.com/play/1026035/Vehicle-Physics-and-Tire-D... Jan Erik Steel & Patrick Donnelly, Supercharged! Vehicle Physics in 'Skylanders' https://gdcvault.com/play/1023219/Supercharged-Vehicle-Physics-in-Skylanders https://gdcvault.com/play/1023219/Supercharged-Vehicle-Physi... Edward Pereira, The Science of Off-Roading https://dev.gdcvault.com/play/1024004/The-Science-of-Off-Roading https://dev.gdcvault.com/play/1024004/The-Science-of-Off-Roa... Jared Cone, It IS Rocket Science! The Physics of 'Rocket League' Detailed https://www.gdcvault.com/play/1024972/It-IS-Rocket-Science-The https://www.gdcvault.com/play/1024972/It-IS-Rocket-Science-T...
- wassimulator 1y agothank you for these!
- c6p 1y agoFor a bad UI competition, I've made a full functioning vehicle controls with throttle, brake, gear and RPM/speed indicators. [1] It was very challenging. Great resource. I wish this was available back then. [1] https://nometer.toddle.site/ https://nometer.toddle.site/
- yangosoft 1y agoI followed the tutorials from https://github.com/thalesrDev/godot-raycast-car-tutorial https://github.com/thalesrDev/godot-raycast-car-tutorial to learn a bit how to create an arcade racing game in Godot. I was fascinated by AngeTheGreat https://github.com/ange-yaghi/engine-sim https://github.com/ange-yaghi/engine-sim simulator