The Haus

Saturday, December 18, 1999

Updated Linux Log

I've updated my Linux Install Log. I'm about a third of the way to The Haus/Linux. After that, I've got a lot of config stuff, but it's looking cool.

I'm REALLY impressed by mySQL and PHP. Excellent tools for database-driven/scripted websites.

Update 12/18/99 7:24pm IT LIVES! The Haus/Linux LIVES! Hehe. Okay, it's got a webserver now. Big deal :-)

DirectX 7A released

Microsoft has released DirectX7A. Whee. More bug fixes from the company that never seems to release a stable product. . .

But WAIT! I heard a rumor that Win2000 Workstation is more stable than NT4! My response, you ask?!?


Update by A.T. Hun, 11:35 A.M.: As of right now, the above link does not work. I went to M$'s site and found this information on the new version:
DirectX 7.0a is an update to DirectX 7.0, providing improved force feedback performance and the best compatibility with today's input devices. This latest version of DirectX also offers excellent graphics, faster frame rates, and more immersive audio when running and displaying programs rich in multimedia elements such as full-color graphics, video, 3-D animation, and surround sound. If you had an earlier version of DirectX installed on your system, you will see difference in available space on your hard drive, since DirectX 7.0a will overwrite the earlier version.
You can download the update from MS's home user DirectX download page. The direct link to the English version is right here (6,341K).

Q3A VM & Coding Notes

Zoid made an appearance on the q3coders mailing list with this interesting tidbit on coding mods in Q3A:
From what I've read you write your Q3A-mod in ANSI C using an API similar to the build-in functions in QuakeC. Then you compile it with the modified version of LCC that is hopefully released soon. What you get is a .qvm-file containing bytecode just like in the progs.dat from Quake. This file can be interpreted by the engine or it can be compiled to native code on the fly (works like Java's JIT?).
This is exactly right.

There are three virtual DLLs in the game. cgame for the client, qagame for the server and ui for the menu user interface. They are all written in standard ANSI C.

Quake3 will run any of these DLLs in one of three modes:

  1. A native binary (DLL for Win32, .so file for Linux, etc).
  2. Interpreted QVM (this works on all platforms)
  3. JIT Compiled to native code (only works on i386 and PowerPC platforms).
John developed the JIT code because pure interpreted code was very slow. With interpreting the QVM, we saw as much as half your framerate going away to handling the QVM. But with JIT, it's only a three or four percent hit as compared to a native DLL. That's pretty damn amazing considering that the QVM is platform independant.

When doing development and debugging, its best do it as a native binary. That way you can use standard debugging tools on your code. Once you'vetested it an debugged it, you then use lcc combined with q3asm to convert the code into a .qvm file.

The QVM file is 100% portable across all platforms that Quake3 will be available on. The JIT features are up to the implementation of Quake3 on that platform, not your code.

This method has many benefits--you can use a standard language when development modifications (ANSI C), but not lose the benefit of cross-platform compatibliy such as QuakeC had. You can you use native binaries to allow use of state of the art debugging facilities whiledeveloping your code as well.

John choose LCC since its a freely available retargettable C compiler that is very simple to use and modify. Writing a back end to GCC is no small task--though when the specifications for q3asm is released, someone could very well write a back end to GCC. The VM bytecodes are pretty language independant. This would result in stuff like GNU C++ being able to be compiled to the VM for example (this is not unreasonable!). That would be a pretty cool hack job tho. :)

Friday, December 17, 1999

Q3A Tweaks

In my never-ceasing quest to tweak Quake III Arena for a few more frames-per-second, I ran across this Q3A tune-up guide on nV news. Some of the information I knew already, namely that setting cg_gibs 0 and turning off dynamic lights give a substantial speed increase. What I didn't know is the dramatic effect turning marks on walls off and setting cg_draw3dicons 0 would have.

Here's my setup. I start with the "high quality" settings, then I set geometric detail to "high," filtering to "bilinear," turn off dynamic lights, and set cg_gibs 0. I ran some timedemos of demo001 with those settings (#1), then with marks on walls off (#2), then with both marks on walls off and cg_draw3dicons 0 (#3). Here are the results:
#1: 41.7 fps, #2: 46.6 fps, #3: 48.0 fps.
Not too shabby if you ask me. Try these settings out for yourself!

My Experiences with UTDemo's Netcode

It's a slow news day (and I'm trying to avoid doing actual work). Therefore I decided that seeing I have tested Q3A and Q3ADemo's netcode quite a bit, I should become more familiar with UT's. I've been playing a bit of UT online and have found a couple of things to be true. I was on one server with a ping between 230-280. It was close to unplayable. The weapon firing animation is client side, but the actual firing is not, so you see your weapon kick, then a smidge later the rocket/plasma/whatever fires. Very disconcerting. When I began to drop some packets I got the "warping" effect where the server would inform my client that I really hadn't run that far yet so I'd be yanked backwards as soon as my client updated. Blech. Both of these make it very hard to compensate for lag.

On the other hand, I was on another server and my ping was between 150-180. There it was very nice and very playable (despite the one j@ck@$$ with auto-taunt turned on who was shooting everyone in the back). Since I haven't played UT enough, I was thinking about which weapon to use way too much and getting picked off too easily.

I guess that if the connection is bad (200-300 ping) I find it easier to compensate for lag with Q3A than with UT. With a sub-200 ping, both games play very nicely and very smoothly. Kudos to the guys at Epic for taking Unreal's abysmal netcode and turning it into something rather nice!

The Master comments: From what I'm reading on the Q3ACoding mail list, the UT network code feels like an intermediate Quakeworld, which is pretty cloes to what A.T. is describing. That's still a huge step from Unreal.

Daikatana Chat

PlanetDaikatana has posted an edited transcript of last night's chat with ION Storm's John Romero and others. One of the coolest aspects of Daikatana is the ability to play through the whole thing in co-op mode. You and two of your friends can go through the whole thing and the server will save where you are. Pretty slick. Hopefully it will be out in time for the lucrative Groundhog Day shopping season.

UT vs. Q3A: Update!

I've been having an email conversation with a man by the name of Edward H. who read my UT vs. Q3A article and took a bit of umbrage with my comments on UT's bots being "cookie cutter" bots--essentially all the same. He pointed out that when you start up a practice session or network game, there is a button called "Configure" under the "Bots" tab that lets you adjust some settings for the bots, including weapon preference, accuracy, alertness, camping, strafing, and combat style. This does offer you great control over the bots you play, but unless you change the settings yourself, all the bots will be essentially the same on any skill level. Notice that I didn't say that was bad, mind you, because UT's bots are quite nice. I plan on updating that commentary (or maybe writing a whole new one) once I have the full version of UT.

Thanks to Edward H. for his comments and insight!

Domain Names for $13?

Tucows has announced that they will be offering domain name registration to ISPs in real time for $13 per year through their new openSRS website. Recently, Network Solutions (formerly Internic) lowered their price to $35 per year. Isn't competition great? It looks like they may need to get those .biz, .web, and other subdomains going though since everyone and their dog will have their own domain. It also looks like it may be time to register!

Thanks Slashdot.

Past Two Days' News

Recent Headlines

January 5, 2015: It Returns!
August 10, 2007: SCO SUCKS IT DOWN!
July 5, 2007: Slackware 12.0 Released
May 20, 2007: PhpBB 3.0 RC 1 Released
February 2, 2007: DOOM3 1.31 Patch

January 27, 2007: Join the World Community Grid
January 17, 2007: Flash Player 9 for Linux
December 30, 2006: Darkness over Daggerford 1.2
December 19, 2006: Pocket Tunes 4.0 Released
December 9, 2006: WRT54G 1.01.1 Firmware OK with Linux/Mac

All original information on this website is copyright © TheHaus.Net, 1999-2005. The use of original images, text, and/or code from this website without expressed written consent is prohibited. The authors of this site cannot be held responsible for any damage, real or imagined, which comes from the use of information presented on this site. All trademarks used are the properties of their respective owners. This site is not to be used as a floatation device (but if you try, I want a video tape of it).