Monday, October 29, 2012

The closer you get...

Modern computer games are a very impressive set of things. A lot of them have deliberately overcomplicated character designs, just so that they can show off that they've managed to make clothing that acts like textile, hair that looks at least believable, and so on. That's on the physics simulation side of things, but it wouldn't mean much without improvements on the graphics side of things - and while a lot of that is done right, some of it is done very badly.

The trouble is, computer games don't ever really get close up with cloth. The closest you'll get the camera is about three feet away, and from there only the most pronounced surface details will be necessary to render. A chunkily cabled sweater, for example, would benefit from the trick of bump mapping. Bump mapping is a clever means of faking extra detail; it involves making two versions of the 3-d model. One version is in stupendously high detail, and you spend hours calculating just how the light will reflect off it so you know what the surface detail does to the shadows on it. The other version is the low-detail version you'll use in the game; that, you colour in, and then you overlay the shadows you pre-calculated with the detailed model. The result is a model that's computationally cheap to render, but looks incredibly detailed; and that's what you want to keep gamers happy. Gamers demand pretty worlds, and they demand no problems with frame rate; these two demands are in opposition, since the prettier a world or an object is, the more oomph it takes to render it.

The trouble is, art sensibilities haven't yet caught up to the fact that you don't always need to use this trick. In some situations, a bump map can make things look worse. Two games that run into this are Just Cause 2 and XCOM: Enemy Unknown. In Just Cause 2, one of the notable NPCs is always shown in a suit, with a ridiculous bump map. It looks as though the suit was woven from garden twine. While tropical suiting is not generally as smooth as temperate suiting, it's by no means that rough! In XCOM, the problem is worse; one NPC in a labcoat has similarly overdone bump-mapping, while the NPC in a ribbed military sweater (the proper green wooly pully that so many British country people love for its durability and insulation) appears to have no bump mapping, even though it would be appropriate.

It's a shame we're in this hole at the moment. Most modern games are either close enough to allow suspension of disbelief, or stylised enough to not demand it; but we seem to be in the uncanny valley of clothes right now.

Monday, October 22, 2012

Further apologies...

Yup, once again, no new big post. On the plus side, we're getting everything straightened out, we've got the important mail coming here (although how remiss the post office is being at forwarding the previous residen't mail has us somewhat concerned) and the cats definitely feel like it's home.

The weather's been annoying, shifting between rain and shine annoyingly, and our air conditioner isn't wonderful. However, we're on a ridge and so we can get a good breeze going by opening windows. We're also in an end unit, which means side windows.

Monday, October 15, 2012

You've probably noticed...

Sorry, folks, no new post this week. The LA and I were moving, and it took a while for us to get internet back.

On the plus side, we bought this house. No more renting.

Monday, October 8, 2012

Why don't we have a moonbase?

Humanity has sent people to the moon and brought them back safe. This is a hell of an achievement, but it would pale in comparison to sending them to the moon and keeping them there. The trouble is, we're not using technology that can do that. We've gotten locked in by the related phenomena of local maxima and path dependence.

Local maximum is what you have when you're on a hilly landscape. There are lots of peaks, some higher, some lower. Any given point from which every direction is downhill is a local maximum, but there's only one global maximum in the given area.

Path dependence is what happens when you start using and developing a technology. We've done astounding things with the internal combustion engine; Otto and Diesel would barely recognise the marvels we have now, despite their using the same thermodynamic cycles and the same basic principles of operation. The trouble is, we're now at a point where the internal combustion engine is holding our technological development back; we could do great things, but we're tied emotionally and technologically to this bulky, heavy, smelly, inefficient contraption. Worse, our reliance on it has slowed development of other motors; modern electric motors are not far removed from the original designs by Tesla. We got locked into the path of improving the internal combustion engine, which path has now peaked; and at a local maximum.

The same thing has happened with space travel. When we first got interested in it, rockets were the easiest thing to try; and we got very, very good at rockets. The trouble is, rockets have abysmal payloads for the long haul, and they have vast amounts of waste in their construction; most of the Saturn V that took men to the moon was simply there to get them through the atmosphere. It took an incredibly heavy lift capacity to get three men to lunar orbit. We simply can't send up enough to make a moonbase viable that way. Rockets have reached their peak, and every other technology will require a step back down; something we're unwilling to take.

So we don't have a moonbase because we're an annoying combination of stubborn and idle. We don't want to take the time to develop technologies that can go further than rockets, because they won't be able to go further than rockets immediately we introduce them.

It wasn't always like this. The first guns for soldiers were far inferior to bows in utility; but we stuck with them, and now almost nobody would think of using a bow for war. We need to reignite excitement at potential, rather than pride in achievement.

Monday, October 1, 2012

Your car is probably lying to you.

Most cars have an array of gauges in front of the driver. There's always a means of indicating road speed, and usually a gauge for fuel level. What else there is varies depending on the target market, but nowadays a tachometer to show engine speed and a temperature gauge to show if the engine's overheating are normal.

Most of these gauges are fully functional, but one, the temperature gauge, tends nowadays to be a skeuomorph. It's not technically a temperature gauge (which in automotive terms is actually a suitably calibrated ohmmeter, reporting the varying resistance of a bit of wire that is the temperature sensor), but a multi-state indicator. This is called compensation, and it's annoying to me.

The major reason for compensation is to avoid worrying inexperienced drivers. When first sitting at the controls of a car, one sees this apparently huge panel of dials, very few of which are all that obvious in function. To avoid overwhelming the novice, much of what used to be handled by dials (oil pressure, electrical system health, and so on) has been relegated to a row of go/nogo "idiot lights". The temperature gauge was a candidate for this, but it turned out not to be a good idea; there is still a need for more granularity than a simple light can provide. However, by filtering the signal fed to the gauge itself, the needle can be held rock-steady.

Why is the filtering needed for a steady needle? Because engine temperature is affected by multiple factors working to both increase and decrease it. Demand more power, and the extra fuel will result in more heat energy going into the engine; it heats up. The thermostat opens, and it cools down; the electrically driven fan comes on, and it cools down further, closing the thermostat. Heat begins to build again. And so it goes, with the temperature confined to a surprisingly narrow range so long as everything's working as it should. If the filtering weren't there, the needle would move around, and an experienced driver would be able to see when the thermostat's opened, and so on. This would be useful should something in the complex chain of equipment stop working, since it would be reflected in the gauge's reading, making figuring out what's broken easier.

However, a nervous driver will be distracted by this wavering needle, wondering, not unnaturally, what they're doing wrong; and making the needle stay still is easier than explaining that "it's meant to do that". So in goes the filtering circuit, and the needle now has five positions. When the engine's cold, it's just off the stop, since it has to indicate that the engine is running (despite the tachometer; it's expected that a gauge will be "live" when the engine is running, so even if a cold engine should have the needle sitting on the stop, it's moved up); when the engine's warm, but not to full operating temperature, it'll be between there and the middle. When the engine's in normal operating range, the temperature needle will be rock-steady at the middle of its travel, since there's a strong mental association between "the middle" and "where it should be". Then there are "moderate overheat" and "severe overheat" positions, although the severe overheat will usually be heralded by a cloud of evaporating coolant and a cessation of drive.

But you're not seeing what the engine temperature actually is. Instead, you're seeing that it's within what the designers of the circuit deemed acceptable. This doesn't just make troubleshooting harder; it introduces another thing which can fail. The small circuit board that handles this for Volvo 240s is notorious for failing, and it's normal for enthusiastic owners to simply remove the board and substitute a short wire which restores the temperature gauge to being an actual gauge, rather than an indicator. Most vehicles built after the later 1980s will tend to have some degree of compensation in their temperature gauge; so unless you're driving a classic, it's probably lying to you about the engine temperature.

I'm not a fan of skeuomorphs in general. I much prefer that an interface be designed from the ground up for the device it's to be used on; skeuomorphs hinder accessibility and force compromises which lead to less powerful interfaces. It could be argued that skeumorphic design leads to less usable interfaces as clutter and non-functional elements accumulate.