I think I've got the last piece of ugly Hipnotic and Rogue hackery behind me. The weapon layouts proved to be less painful than I'd feared (I seem to remember last time round I actually understood what was happening in the Hipnotic layout, which is a worrying thing). No idea how well or badly it's going to behave when I start testing out customization of the layout, but time will tell.
I can easily see one possible reason why ID moved the HUD layout into the game code from QII onwards - "let's not have any of that again".
I seem to have another bug in alias model verts. From time to time they go a bit wacky on me, and it's not consistent. I've reverted the code here to the old store-as-byte-plus-translate-and-scale method; seeing if that was the cause was one reason but memory usage was the main one. Anyway, no joy, occasionally one frame will go totally weird. I'm afraid that I'm going to have to put an MDL viewer into the engine to get to the bottom of this... oh well.
Speaking of memory, I'm moving a lot of the storage over to dynamically allocated so that I can remove a lot of the old static arrays and their attendant hard limits. What I'm aiming for is a bit more than just a "high capacity" engine; more like an "unlimited capacity" engine. Of course there are going to be protocol considerations which will restrict how far I can go with this, but the initial goal of removing limits on client-side capacity has gone well so far. After I release I'll probably do server-side, then worry about joining them up after that again. I'd already done most of the groundwork for this in the GL engine, so a lot of it is just code-porting.
Current heapsize requirements for a typical ID1 map is in the order of 15-20 MB, but that includes all models and sounds, entities, efrags, and a lot of other stuff that was previously static.
Sunday, January 4, 2009
A lone voice cries in the wilderness
Posted by
mhquake
at
11:55 PM
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment