Wednesday, April 14, 2010

Final Updates for 1.8.3

The final handful of new items have just been added. These include a minor bugfix to make disabled menu items draw correctly with the new faster conchars drawing routines, vertex stream filtering, and one big important one that needs some more discussion.

Early in the development of DirectQ I was in the habit of removing cvars and commands that I was no longer using: stuff like gl_ztrick, gl_flashblend and so on. This was fine but tended to spew a lot of "unknown command" errors to the console on loading a config file. Some mod authors also have included QC that sets cvars to what they think they should be (as if your own personal preferences didn't matter), which in the worst case could cause the the same "unknown command" errors to appear every frame.

Needless to say that I've since learned my lesson from this.

I've added a compatibility layer and have included all missing cvars and commands from both WinQuake and GLQuake into it. These don't show up in the autocomplete lists, don't get written to your directq.cfg, but just exist to silently soak up this kind of abuse. No more rash of errors that the old modem cvars don't exist when running default.cfg, for example.

One final bugfix that seems to be needed is that the +map command doesn't seem to work when included on the command-line. I suspect that the reason for this is that I added code to support map names with spaces in them a while back, so it's gobbling the next command and generating an invalid name (and causing the next command to also not work).

This was - kind of - reported by someone who just initially came out and asked me to "make command-line options work" without providing any more info.

A tip for anyone reporting a bug. If I could have one, just one tiny wish in the whole entire world, it is this.

Tell me what the problem is, not what you think the solution is.

You see, the actual cause of the problem might be a long way from what you think the solution is. In this case, command-line options actually do work in DirectQ, but one specific one had a very subtle bug in it that only occurs under very specific circumstances.

If I had been told "I ran DirectQ with the following command-line: '+blah -boo -yadda yadda +berkles 27' and the +berkles part didn't work, but I got the following error in my console: 'could not deflarbulate the convexotron'" it would have been at least 25,000 times as helpful (and 25,000 times more likely to result in a fix).

If I may be so bold as to ask for another wish: if you get an error message, tell me what the error message is. What it says. Error messages aren't just there for to spew gobledigook at people that they can ignore, they provide information to help them with reporting problems.

If I was made Evil Overlord of the Universe tomorrow I would make it mandatory that everyone reporting problems spend at least a year working on a Helpdesk. We would soon see an end to this kind of thing, bwahahahahaha.

Rant over. The next post should be the Release!

0 comments: