Tuesday, September 8, 2009

First changes for 1.7.2

Just 2 things for now, one of them kinda important and the other firmly in the "nice to have" category.

Firstly, I've fixed an "illegible server message" bug; this is the one I posted a while back that only occurs in demos recorded by engines that have a non-standard handling of protocol 15. I don't consider it too important, as you can still play Quake despite it, and it only affects certain demos in certain circumstances. All the same, it's good to fix something that might cause trouble and/or confusion for people.

Secondly, I've transitioned a lot of file loading from fopen/fread/fclose to the Windows API. This has no functional change (so far) and does mean a loss of portability (which - by being Direct3D - I don't have to worry about), but it does mean that I can avail of lower level optimizations in file loading, and also do things like play nice with HSM, NTFS security and so on.

Windows API file IO functions are certainly a rather odd bunch of misfits, I do like the functionality they provide but the API itself has some fairly odd quirks about it.

One thing I think I want to implement is a "run from CD" mode, allowing you to keep most of your Quake data on CD and just have the engine, save games, screenshots, and anything else you might generate on HD. It may be a simple as adding extra search paths, but there may be subtleties to it which I haven't considered yet.

2 comments:

David said...

I love reading this blog of yours, I really, really do! Best thing about it is that instead of just saying "here's the next release..." you actually give us this wonderful insight into what you're doing with DirectQ as you progress; I love reading about it all, and playing the final result when a new version is released. I thought that this (MHQuake) was abandoned (I grumbled and switched to the "Dark Places" Engine with all of its external library bloat) but now it's evolved into DirectQ, a single executable with no other files needed! Thus, I'm back with you and eagerly following. Totally awesome project, friend. Thank you so much! BTW, does DirectQ support processing LIT files for colored lighting? I ask this because - last time I played Quake with your old Quake Engine, MHQuake, the lighting in that was fantastic, and I'd love to have that kind of lighting again. Also, are you going to add Quake II support, the ability to run both Quake and Quake II with the DirectQ executable?

mhquake said...

LIT files are there but disabled by default (for consistency with original Quake). I think it's r_monolight 0 that you need.

Thanks for the kind comments!