13 Dec 2004
Stranger
"Oddworld:
Stranger's Wrath" is finally winding up, after three years in
development. Three years is a long time; I'm pretty damn glad to see
the end of it. Towards the end of QA I finally actually played the
thing as it's meant to be played (without cheats or missing content or
broken code). I think it's a good game.
At the very beginning of the project, cbloom
advocated that we have tons of character dialog, since that has always
been one of Oddworld's strengths. That was a good call. The dialog
came out really well; the NPC characters are funny and have lots of
personality, and give a nice feeling of having lives of their own as
they wander around chit-chatting with each other.
The storyline is relatively coherent, the FPS stuff is playable and
not too twitchy, and the 3rd person melee stuff is fun. I wish the
FPS gameplay was less central, but hey, it works.
I'm pretty happy with the visuals. The lightmapping worked out
reasonably well. I wish I had done something better with chart
boundaries; it's one of those problems that doesn't appear to have a
good general solution. But we had talked about some kind of
optimization pass to adjust the chart UV's a bit. Charles'
cube-map/normal-map character lighting works nicely.
PSM mostly worked out right; we didn't end up with real resolution
problems. The one glaring problem with the PSM shadows is
double-shadowing in dark areas, and shadow bleedthrough on the backs
of receivers. We had a sweet shader solution to this, where we used
the lightmap color to control the PSM darkening. Unfortunately, it
was deemed more important for the characters to have dynamic shadows
on shadowed ground, than to get rid of those other problems. In other
words, the double-darkening was considered a feature, not a bug. So,
enjoy the double-darkening, and please ignore the bleedthrough.
The water came out nice for the most part. The particle and
atmospheric effects are often great. The depth-of-field and glare
looks good. Overall though, the art team deserves tons of credit for
making the engine look good.
Anyway, I hope you like the game, we worked hard on it.
Vacation!
I'm on vacation, and it is great. I'm suffering from bone-deep
tiredness and a glassy stare. I've been taking a drool-y coma-like
nap at least once a day. I plan to continue that regimen until I feel
halfway alive again.
Today I discovered that NYC seems to lack a technical bookstore.
Atman knew of a couple places ("Book Scientific", and the bookstore at
the McGraw Hill headquarters in midtown), which I visited, but both of
them are out of business. I assume killed by Amazon et al. There are
some gigantic bookstores around; maybe one of them has a good computer
section. The B&N near my apt is gigantic but absolutely terrible for
computer books. It's depressing to say this, but if I squint a
little, NYC looks like a very large, but not especially unique,
shopping mall.
4 Dec 2004
ea_spouse
My opinions on this
ea_spouse thing, in
case you care:
The game industry does indeed overuse "crunch time". EA seems to have
taken it up a few notches, deep into the zone of the ridiculous,
compared to most companies. ea_spouse has done a giant service to us
all by shedding light on the situation and forcing a public
discussion.
I don't know if the industry should have a union. Union or no, we
really need a concrete, specific set of "recommended labor practices"
that cover things like crunch time. Game projects drag on for years,
so there need to be limits. My recommendations would be something
like:
a MAXIMUM of two weeks "crunch time" per calendar quarter.
"crunch time" defined as a MAXIMUM of 72 hours/week.
the rest of the time, hours are limited to a MAXIMUM of 48 hours/week. Any week that exceeds 48 hours is a "crunch week" and
counts against the 2 per quarter.
crunch time hours beyond 48/hr/week compensated at double pay (so management has a good reason to try to avoid it)
(Those hour limits are set a bit high; the real average should be more
like 40-45 hours/week normally, and 60 hours/week during crunch. But
realistically there needs to be some flexibility depending on the
work.)
There are plenty of companies where management means well, and pays
lip service to the fact that too much overtime is counterproductive.
But when push comes to shove, crunch time is too easy to rationalize,
too devoid of short-term consequences.
The same thing applies to employees. You can get into a mode where
it's easier to just go to work, than to deal with your life. At that
point, you need some externally imposed limits on work.
Another totally crazy thing is well-intentioned companies that try to
make work as self-contained as possible. For example, there are
companies that have built movie screening rooms on-site, and invite
families in from time to time, so that employees can get some
recreation and family face time without leaving the building. Insane!
When the work hours are over, kick the employees out the door! Don't
fill the workplace with distractions, and then keep employees on-site
for extra hours in order to make sure the work gets done!
19 Nov 2004
Professional Grade
I always roll my eyes when that GMC truck commercial comes on and
proclaims their monstrosities "Professional Grade". I've seen some of
the jalopies that tradesmen drive around town, and quite often they're
not gleaming new GMC whatevers. If a professional uses it in their
work, is it "professional grade", and is that supposed to somehow be
good?
Even inside a trade, this disconnect persists. There's a common
fallacy in game programming that if some tool or technique was used on
a succesful and large commercial project, and someone from the team
says the tool was indispensable, then that proves that the tool or
technique is actually good.
In fact, if we're being honest with ourselves, a lot of our
"Professional Grade" tools and techniques are poorly designed,
unsuited to their purpose, buggy, inefficient, and hard to use. The
reason they are usable at all is that in a large commercial project
there are piles of labor and hardware heaped on every task, to make
sure it gets done. But there are too many tasks to optimize more than
a couple of the most critical, and there's pretty much never enough
time to do fair evaluations of several alternative tools or
techniques. As long as the job gets done in the time allotted,
regardless of how far from optimally, the tool could be considered
Professional Grade.
Examples:
DevTrack, or your homemade bug tracker. On Oddworld: Stranger's Wrath we've been using both, and they're both bad (in different
ways). We used RAID on Munch's Oddysee, and it was decent (but you
can't buy it; it's for MS use only AFAIK). Seeing as EA uses
DevTrack, it is being used in dozens of large successful commercial
projects as we speak.
Max & Maya. They both include the kitchen sink. Aside from that they're both awful, on any objective scale of application software.
Most commercial game projects rely one or both.
C++. C++ is probably the least terrible language for making games, and let's face it, it's terrible. Most commercial games are written
in C++.
XML. Lordy, what a turd. I mean, I'm glad OpenOffice saves in an XML format, but that doesn't mean your game engine should use it.
And yet, many large, successful commercial games have used it
(including Munch's Oddysee).
CVS, VSS. Perforce is actually decent. Yet lots of teams use CVS or VSS and manage to ship perfectly good games.
That's a whole heap of "Professional Grade" garbage.
3 Nov 2004
God
It looks like Bush has won the popular vote, although we still don't
know for sure who has won the election, thanks to the electoral
college system.
So... if there is a God, why doesn't He just strike Bush dead? The
only rational answer is that God is scared, as we all should be, of a
Dick Cheney presidency. Clever of Bush to keep Cheney on the ticket.
The fact is, God has a disappointingly poor track record of striking
down hypocrites. Bush and company are very bad, but God is very high
above. What little comfort I can get from religion at this moment
comes from the lyrics of The Rich Kids on LSD
song, Tell Me The Truth:
If He's up there like I think He is,
There's a hell that's hotter than piss!
For all the money hungry godly liars
Their reward... a lake of fire.
25 Oct 2004
Primer
I went to see the movie Primer last
night. Today, Julie asked me how it was. I thought for a minute,
then told her, "Terrible."
I really wanted to love it. The premise is right up my alley: some
engineers spending their nights and weekends in a garage, building
some curious experimental contraption (that turns out to be a time
machine). The nerdy dialog is right on pitch, no dilithium crystal BS
or gratuitous glasses and pocket protectors. The acting is not
amazing, but certainly good enough. The movie is raw and low budget
but manages to look cool, and the props really look like genuine
handmade prototypes of electromechanical thingamajigs. For the first
half of the movie, while the guys are building their device, I was
totally on board, even though it's a bit confusing and takes too long
to get to the point.
Unfortunately, the second half of the movie features a spectacular
failure of storytelling craft. I'm pretty sure some significant
things happen to the characters in the second half of the movie, but I
would be hard pressed to say what they are. There are lots of
interesting and curious tidbits, that completely fail to support any
kind of coherent narrative. Seemingly significant characters and
themes appear and disappear from scene to scene, with no explanation.
I'm left feeling very frustrated. I want the filmmakers to go back in
time to before the film was released, reedit the script until it
resembles a story, shoot a couple new scenes if necessary, record some
new voiceover that explains what the hell is going on, and release a
great movie.
Miscellaneous Sunday Night At The Movies Opinions From The Past Year Or So
Collateral is a really good movie. Eternal Sunshine Of The
Spotless Mind is fantastic, the best movie I've seen this year.
Garden State is very sappy, but still good. Sky Captain is
mediocre at best. Team America is mediocre but with a couple really
funny scenes, plus it's all puppets. Farenheit 9-11, as a movie, is
decent, but not nearly as good as Roger And Me or Bowling For
Columbine. Starsky And Hutch == funny. Troy is OK for a big
budget bronze breastplate epic. Return Of The King is great of
course. Kill Bill didn't do it for me; haven't seen the second one
yet. I really enjoyed Club Dread.
22 Jan 2004
Die Backslash Die
A little game programming rant -- I just have to get this off my
chest: backslash is a freaking terrible path separator. In C/C++ and
many other languages (such as scripting languages used by game
designers etc), you have to type it as "\\", because backslash is also
the escape character. Meanwhile, in input prompts and many config
files, you can't type it as "\\", because that means two backslashes.
Use the forward slash instead, always. The Windows API deals with it
just fine, your programs will be more portable, pathnames look better,
and you won't create unnecessary confusion for your team.
The one area of annoyance is that the windows command-line built-ins
are a little stupid about forward slashes. Do yourself a favor and
use a real shell instead.