One thing I'm learning by fighting with a different project that has nothing
to do with UE3: modern 3D graphic APIs are really friggin intimidating.
I'm really growing to hate both DirectX 9 and OpenGL 2.0, which is
unfortunate considering there isn't really any part of UE3's renderer that
doesn't concern itself with DX9-level tech. This makes me grumpy. I feel like
the Unix equivalent of those two old dudes in the balcony on the Muppet Show.
(If you want the Apple/VoIP patch source code, it's on the mailing list, but
not in CVS as far as I know. Check the openal-devel list archives at
Latest CVS builds and runs on Solaris/x86 (and presumably Solaris/sparc, too).
I get a lot of questions about MacOS X: the game _does_ run on OSX, there
just isn't a nice installer or anything at the moment, so you have to
compile it yourself. When there's time, I'll put together a shareware-based
installer, and, if I can find a copy, one that works with the Mac retail disc.
(It was a driver bug. An Apple engineer squashed that mofo in a heartbeat.)
I spent some time fighting with vertex_array_range. We don't cache static
data at all in UT99 at this point, so I figured the brute force method would
be worth a try. Allocate a big-ass buffer, point glVertexPointer() at it,
and treat it as a sort of push buffer...instead of using a small range and
pushing various bits of it to card, we do our work in that range and memcpy
the relevant bits to the next bit of available VAR space, which is feed to
the card. When we hit the end of the VAR, we start at the front again,
assuming that that bit was used many many frames ago. If we were really
smart, we'd flush the range when wrapping around, but that could only result
in a slowdown, and is totally worthless, as long as you have enough VAR space
to stay ahead of the GL.
In practice, this actually resulted in a slight (less than 1fps) slowdown
in my benchmarks. Which frustrates me to no end. I guess there are no
magic bullet GL extensions without significant work, although I really feel
like I spent a lot of time on this for no benefit.
I think for now I'll just disable the VAR path and focus on CPU optimizations
ala Shark before returning to this again. I'm really not relishing the idea
of diving into 5-year-old code to figure out how to seperate out the static
geometry and redesign the rendering abstraction to support this.
Unreal Tournament 2003:
There's an exploit in the ut2003 network code, so here's a new build.
The Linux one has about a million changes over the stock 2225, since it's got
all the MacOSX work on top of it. Consider it beta. The Mac version has one
or two fixes, so it's worth updating.
Unreal Tournament 2004:
All the different downloads were getting complicated. I've written up a
summary of what files to get for what platform depending on what you're
looking for (new demos, Bonus Pack stuff, Mac, Linux, etc.) http://icculus.org/news/news.php?id=2192
Linux dedicated server work starts. In relation to AA, Spearhead, and
Breakthough, the codebase is...well, unrecognizable. They changed a LOT
of code. We'll see how this goes. Should-be-easy projects that turn out
to be a lot of work is becoming a recurring theme in my life recently.
Call of Duty:
This is a 1.4 server with an exploit closed. Admins should all upgrade: http://icculus.org/betas/cod/COD-lnxded-1.4-07252004.tar.bz2
The latest and greatest United Offensive Linux server shows up here first: http://0day.icculus.org/cod/
Postal 2 Share the Pain:
Postal 2 for MacOS X is now gold! Details on how and when you can get a
copy are forthcoming. Stay tuned for other surprises, too.
2.2.0 for Linux and Mac will be coming along shortly. There's a minor bugfix
on the Windows side that we're waiting for before I get this wrapped up.
Firefox (the web browser) wants to take out a full page New York Times
advertisement. It's an interesting idea.
The details: http://www.spreadfirefox.com/
Make a donation with me as your referrer: http://www.mozillastore.com/donations/?campaign=newspaper&user=24771