DM of the Rings CXIII:
Good, Fast, Cheap
I need to make a new category for my blog, “What he said”. If I did, I could use it to file this fantastic post from Jay Barnson on why Why Software Design Isn’t Like Architecture.
Or, as the man says, read the whole thing.
Sticks and Stones Demo
A reader send me a link to the following video, which is an excerpt of an interview with physicist Brian Beckman. Here he discusses an upcoming indie / freeware game Rigs of Rods and talks a bit about what works and what doesn’t with physics engines.
He mentions making physics simulations “too complicated”, and I know exactly what he’s talking about.
But what’s really interesting here is the method they are using in this game. Continue reading 〉〉 “Sticks and Stones Demo”
Oversimulation
I’ve run into a lot of problems with oversimulation in the past, where a programmer tries to replicate the behavior of a complex system with brute force. I’ve done it myself, and I’ve witnessed the results when others did it. The results are usually time consuming, maddeningly complex, and prone to a variety of hilarious failure modes. If you’ve ever played a buggy driving game where complex crashes led to nonsensical results, then you’ve probably seen oversimulation in action.
I’ve seen several games recently where heaps of random objects will “twitch” and “bounce” on top of each other instead of coming to rest. I also remember playing a game (back in the late 90’s) where two cars managed to intersect during a crash. They began to jerk around wildly, each attempting to come to rest on the ground but then “bumping into” the other car. This would nudge the other car up, causing it to fall harder, causing it to bump back harder, and building a nasty feedback loop until one of the cars was knocked free of the impasse and blasted into the stratosphere. Made me giggle. Not that I’ve seen the source for either game, but in both cases I suspect oversimulation is the source of the problem.
The key to making a good simulation is knowing when to replicate and when to approximate. Keeping in mind that in videogame it doesn’t need to be right, it just needs to look right.
Gravity is the most obvious example of something to replicate. The mathematics behind it are astoundingly obvious and well-known. It wouldn’t save you any time to “approximate” the effects of gravity. Just make everything fall at the correct rate and it will look right.
On the other hand, tires interacting with the road is a far more difficult subject. The SHAPE of the tires is exactly the sort of thing you want to approximate. Tires are not perfect cylinders. Off-road tires have maddeningly complex topography. They’re very knobby, with lots of deep groove patterns. You’ll kill yourself if you try replicate this shape in 3D and then do per-polygon collision on those bumpy surfaces as they touch the road, and then try to figure out how much “grip” you’re getting at the moment. The system will most likely fail, and you’ll find yourself adding more and more complexity trying to fix it. You’ll realize you’re not taking into account the effects of dust and dirt clinging to the wheels. Or what happens when the grooves become caked with wet mud. Or you need to account for the way tires bend a bit to “embrace” a small convex surface, like small rocks or imperfections in the road. Or take into account structures which should puncture the tire. Things can get impossibly complex very fast if you try to replicate everything.
No, this is probably the perfect time to approximate. For the purposes of collision with the road, treat all tires like perfect cylinders, and then have a few variables (smoothness, temperature, and a guess about how much of the surface area is touching the road) govern how much “grip” you’re getting. This method will be easier to code, less CPU intensive, and will most likely look far more realistic.
I think a good sense of when to simulate and when to approximate is more important than a deep understanding of physics when it comes to writing a good physics engine. (Although finding someone with both is always nice.)
DM of the Rings CXII:
Insubstantial
Fallout 3 Trailer
Via the Rampant Coyote I find this trailer… teaser… thing… for the “upcoming” Fallout game. It’s more than a year off, so the thing is more or less worthless as an indicator of what the final product will look like, how it will play, or if it will be any good. It does demonstrate that the developers have hooked into the “atmosphere” of the original, for that that’s worth.
There seems to be some controversy about what sort of RPG we’re going to get. Continue reading 〉〉 “Fallout 3 Trailer”
Prey: Nearing the End (I think)
I’m still working my way through Prey. Not much to add except for a bunch of minor observations:
The thing with the kids was thankfully a very small part of the game. There still hasn’t been any explanation as to why the main character acquiring “spirit powers” led to the preteen poltergeists, and now I’m far enough past it that I don’t think any real answers will be forthcoming. It’s just this weird thing that happened.
Continue reading 〉〉 “Prey: Nearing the End (I think)”
The Gradient of Plot Holes
Most stories have plot holes. The failure isn't that they exist, it's when you notice them while immersed in the story.
If Star Wars Was Made in 2006?
Imagine if the original Star Wars hadn't appeared in the 1970's, but instead was pitched to studios in 2006. How would that turn out?
DM of the Rings
Both a celebration and an evisceration of tabletop roleplaying games, by twisting the Lord of the Rings films into a D&D game.
Silent Hill Origins
Here is a long look at a game that tries to live up to a big legacy and fails hilariously.
Stop Asking Me to Play Dark Souls!
An unhinged rant where I maybe slightly over-reacted to the water torture of Souls evangelism.
Do It Again, Stupid
One of the highest-rated games of all time has some of the least interesting gameplay.
A Lack of Vision and Leadership
People fault EA for being greedy, but their real sin is just how terrible they are at it.
Video Compression Gone Wrong
How does image compression work, and why does it create those ugly spots all over some videos and not others?
The Game That Ruined Me
Be careful what you learn with your muscle-memory, because it will be very hard to un-learn it.
Starcraft: Bot Fight
Let's do some scripting to make the Starcraft AI fight itself, and see how smart it is. Or isn't.
T w e n t y S i d e d