5/28/2004

5-28-04 - 1

5-28-04

Ode to developing on the Xbox - O sweet fixed platform! O knowing I can just use SSE without checking the processor! Having full control over the disks and memory - storing game data in the frame buffer memory and then doing direct DMA writes from there!


When you get bug reports you have to consider the utility of examining them. How likely are they to just be user error? Users have to realize that when they "cry wolf" a lot by reporting bogus bugs, they're going to get ignored more because it becomes quite likely that the bug is not worth exploring.


The thing that games in general (and software in general) don't do is to let people control their experience, *and* make the default smart. My thinking in software design is always like this :

The default should be what the *stupidest* user will want, because they don't know how to do anything else. Options that semi-savy people will want (like resolution changes, etc.) can be a little bit harder to get to. Options that only a power-user would want can be very very hard to get to (eg. only in a .ini file or only in script language, etc.)

That way your average dope installs it, all the fancy options are totally hidden from them, and they get a decent game/tool/whatever. Then your more power users still have the ability to make it how they like it.

Controls are a classic example of this - the controls should always default to what the mass-market least-savy user will want. That's true even if you don't think those are really the best controls!!! If the best controls are more "hard core", put it on an option. The hard core people will find them, the mass-market will never touch the options and be happy.


A good way to do development would be with "flash squads" for features. Someone coordinates the squad, generally I would recommend it should be a programmer. The squad is one or a few people from each department, as needed. The squad works together to make the feature; they can brainstorm and talk and try things and get it done. They still get scheduled and such, but they have more freedom to talk to each other and work cross-department. The point here is that the org chart is temporarily changed. Rather than having director/leads/producer assign tasks to each department, and then have the various people doing the work report to their leads & producers, you have the director/producer assign the task to the flash squad; then the people in the squad report to the coordinator; the squad can agree to change up what they're doing, etc. and the coordinate controls it; he's responsible for scheduling and reporting progress up the chain. In the end the whole squad is responsible for the quality of the result, you don't get a situation like "we did our work in code and the artists just didn't make it pretty" or whatever.


The Law of Conservation of Complaints. When I was in physics we used to make a lot of jokes about fake conservation laws. It seeems to me complaints are conserved. The better you make things for people, the more shit they'll find to complain about. When things are really good, people find really dumb little things to be annoyed by. In fact it often seems that people in good situations are more prone to complain because they have the time and energy to do so; people who are really in the shit don't have the time to bitch about what's wrong.


I hate the way people show "direct lighting" vs. "radiosity" screen shots, and they show the direct lighting with no freaking ambient (like here ). Hey dumb-asses, if you used like a bipolar gradient ambient, you'd have 95% of the radiosity affect there. The actual thing that radiosity gets you over decent non-radiosity lighting is a 2nd order effect, it's the subtle darkening in the deeper folds, etc. (affect/effect !)

No comments:

old rants