CodeImp
Moderator

Posts: 1495
Registered: 12-03 |
Ladna said:
I guess there's a number of issues here:
- File Size/Read Buffer Size
You can use stream compression. ZLIB and LZO are well-suited for this purpose, and while they don't reach the insane ratios that LZMA (for example) does, they still go a long way (ZLIB is 3:1 on average).
- Memory Usage
This is just what happens when you remove limits, kind of UDMF's fault but not really.
- Lump Caching
It's probably not so hard to do [byte index of 1st chunk | byte offset of lump | chunk count] instead of [byte index of lump] if you're trying to keep memory usage down by purging cached lumps when you reach a given memory threshold. Stream compression tends to emphasize decompression speed and low CPU usage, so the additional read time is probably negligible, but hard numbers would be nice here.
All these are no issues IMO. Memory is not an issue today and (as has been said) the UDMF format (compressed or not) is streamable in case you want to save memory.
What does need discussion (IMO) is the Strife support. If this is only some field additions (which Quasar mentioned above) then I don't see the issue. And I definitely don't see why I would have ever been against it (what Quasar said). Link the post where I said that so I can back it up with reason, because I doubt I would be against something without any decent reasoning.
What I am quilty of is the lack of preserving the unknown "block headers"... Doom Builder doesn't keep any information outside the 'big five' (but note that it DOES preserve all unknown fields inside the big five blocks even when it doesn't know what the fields are, these appear in the 'Custom field' in the user interface). I have noted this and I think I should some day make a solution to keep all unknown blocks to write them back when saving. This is the UDMF guideline and it makes perfectly sense, so yea, noted.
|