id Software Lead Programmer
John
Carmack updated his .plan discussing memory usage in Q3A, his forays into
PERL, and a new worklog. Here are a couple of excerpts, in the first he mulls
the possibility of implementing a skeletal animation system at this late stage
of game development:
Loading a large map with full resolution, 32 bit
textures and mipmaps consumes almost 40 megs of texture space. The default of
picmip 1 and 16 bit textures reduces that to six or seven (not all images
observe picmip) in theory, but some OpenGL implementations keep a 32 bit version
of the texture around even if the card only uses 16 bit (I consider this
inapropriate), so it may still be twelve or more megs just for the images.
I have been able to save a couple megs off of the true capacity requirements by
not rolling through some larger buffers when not needed (not smp and not
dedicated server), and several megs more of one-time data mostly by moving a lot
of static tables to dynamic allocation.
I can probably save another meg of true capacity and I think three or four megs
of initialization data. The big thing that I might be forced to do is go to a
skeletal animation system. I would hate to do that at this late a point in the
project, but it would save about two megs per player model in the game.
In the process of chasing down the static memory hogs, I finally got around to
starting something I have needed to do for years: learn perl.
The update
goes on to describe John's experiments with PERL, and give his latest worklog
mentioning tweaks to lightning damage and machine gun ammo in teamplay. Here's
the worklog:
* save 2.5 megs by reworking shader allocation
* save 1 meg by not double buffering backend if not smp
* convert all tr. arrays into pointers
* don't allocate as many snapshotentities when non dedicated
* new shader option: deformvertex move
* stackable deformvertex
* reduced lightning damage by 10%
* light emit from two sided surfaces
* reduced starting machinegun ammo in teamplay to 50 from 100