You can’t get there from here

By Shamus Posted Saturday Jun 16, 2007

Filed under: Rants 8 comments

For fun, I banged together a new theme for WordPress. You can see a demo of it at my crappy sandbox blog. It doesn’t really suit Twenty Sided, but I’m thinking it might be of use to someone out there. This morning I decide to upload it to wherever themes come from. It turns out that place is themes.wordpress.net. I visit “the official theme directory” of WordPress to upload my work, where I learn that:

  1. In order to make your theme public, you must upload it to the server.
  2. In order to upload a theme you must create an account.
  3. Creating accounts is currently disabled.

See if you can spot the weak link in the chain.

Geeze, this isn’t helping anyone. Yeah, yeah, if you hunt around on the site you’ll eventually stumble on the directions for how to contact the admin and maybe get yourself an account in “three business days”. It took me about four hours to make the theme, and it will now take me three days just to get it onto the server? Lame. I’m not even going to bother.

If anyone digs the theme, you can download it here: Luddite for WordPress. It’s small. Very small. Just 4 modest files. The CSS is small enough that you can open it in a text editor and see the whole thing at once, as opposed to the twenty-page monoliths you see floating around. I like it. Tastes may vary.

 


 

A Fire: Followup

By Shamus Posted Saturday Jun 16, 2007

Filed under: Personal 9 comments

Last week I had a post about the fire on Memorial Day weekend that killed my neighbor. Many people expressed sympathies and left kind words in the comments. Thanks again for that.

But I never followed up on that post, which sort of left things hanging. I apologize for that. I’m happy to report that W – Frank’s widow – is doing just fine. She’s taking it quite well. We’re also finding out just how many friends Frank made in his lifetime and how many people he helped. There seem to be quite a few people who knew the man and who were grateful for some favor or help he’d given them in the past. Some have come forward and W has lots of people offering all sorts of help. Frank worked most of his life in the Steel Mill, and years of overtime as a mid-level somesuch, working at union prices, left him well-off enough to retire quite early and amass an admirable collection of vehicles and tools. I claim no knowledge of their finances, but they seemed well-off and W does not seem to be concerned about that sort of business.

The backyard excavation continues. It looks like they’re digging the foundation for a skyscraper right now. I can’t believe they have had to dig up so much land for such a small building, but the garage runoff was apparently Not Nice Stuff and they wanted to make sure they got it all. I’ve been told that all of the landscaping will be restored, just as it was. My wife contributed a few of our flowers to the effort for when the time comes. Again, I don’t know if this is a result of insurance money, Frank’s savings, or the help of friends, but it’s being taken care of.

So W is doing fine. My wife has offered help several times, but W doesn’t seem to need anything. It was a terrible thing to have happen, but the aftermath is about as merciful as one could hope for. If he’d left her penniless, or if their house was consumed, then grim days would be ahead, but his success with people and money have apparently softened the blow.

Thanks again to everyone who expressed concern. Again, I apologize for not following up. I was suddenly reluctant to talk about it, but I’m the one who brought it up in the first place and I should have posted this sooner.

Maybe I’ll post some more of the yard digging later today. Someday the landscaping will be restored, and when that happens I’ll put up some pictures of that as well.

LATER: I should add, I really appreciate sentiments like this. (Which was written before this post.) It does cheer me to know there are still nice people out there.

 


 

DM of the Rings CXIII:
It’s a Trap!

By Shamus Posted Friday Jun 15, 2007

Filed under: DM of the Rings 136 comments

Continue reading ⟩⟩ “DM of the Rings CXIII:
It’s a Trap!”

 


 

Good, Fast, Cheap

By Shamus Posted Friday Jun 15, 2007

Filed under: Links 44 comments

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.

Except few other “controllable, predictable” disciplines are as subject to inadequate specifications and changing requirements as software engineering. I mean, can you imagine a civil engineer trying to build a bridge for an unknown location and environmental conditions, only being told that it should be made of steel, cross a body of water that is “less than 2000 feet” in width, and be capable of expanding to any kind of load they want to put on it (and in any distribution)?

Or, as the man says, read the whole thing.

 


 

Sticks and Stones Demo

By Shamus Posted Thursday Jun 14, 2007

Filed under: Game Design 21 comments

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

By Shamus Posted Thursday Jun 14, 2007

Filed under: Projects 27 comments

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

By Shamus Posted Wednesday Jun 13, 2007

Filed under: DM of the Rings 106 comments

Continue reading ⟩⟩ “DM of the Rings CXII:
Insubstantial”