Echo... Echo... Echo... Echo...
Yeah, it's been a good while since I've said anything here. I could complain that I can't keep the world up to date about Gwynneth because there's just too much, and how I just keep not finishing that next technical article I was writing, but the fact of the matter is I've been spending the time I could spend blogging doing other things. Among those things is starting but not finishing a couple of interesting KawigiEdit and other TopCoder projects, sometimes I've been just playing an assortment of video and computer games, but most of the time has been spent increasing my rank on this list from around 120th to around 20th.
The Sphere Online Judge (or "SPOJ") is a very well-run online judge with ICPC-style problems of a variety of different types. On the whole, most of the problems are fairly hard, but there's also quite a few that are chances to try implementing several well-known algorithms (Dijkstra's algorithm, Prim's algorithm, Ford-Fulkerson, Knuth-Morris-Pratt, Matrix-Tree theorem, Extended Euclidean algorithm, etc). Sometimes the hardest part of such a problem is figuring out that it is "standard" and what the known algorithm for the problem is.
Anyways, I've been slowing down on there a little (I volunteered to put the problems from a different contest up on SPOJ, and some people passed me up lately on the rankings by solving those problems, which I apparently don't get points for), so I've been thinking I should come out and bug you people again.
Last week was Thanksgiving here in the USA. For those who aren't familiar with it, it's basically a chance to get together with friends and family and eat too much. It's actually a pretty big deal, mainly because most businesses (including Microsoft) give their employees two days off for it (and it's pretty safe to guess that not much exciting is going to happen that whole week unless you're in retail). My wife and daughter and I went to Denver (or thereabouts) for the whole week, and we had a great time. I'd spend a few paragraphs explaining all the crazy stuff that's going on with my parents and moving, but my sister has already done all that. I'll leave it at "Gwynneth was cute, and her grandma was happy".
One thing that happened when I was in Colorado is my dad and two brothers-in-law and I went to Best Buy. The reason we went was my dad was interested in looking at TVs (apparently their 43" plasma is seeming small in their new room), but we all looked around at other stuff for awhile while he talked to people about 1080p.
I found a gem, myself and decided to buy Ultimate Quake for a mere $20. I think the general idea with this package is that the Quake trilogy were instant classics, and selling them all together as Quake 4 is launching is a great tribute (and a fine way to get a few bucks off of old software :-) ). I admit I've been watching the software bargain bins checking to see if the original Quake was in there in some form, waiting for me to spend $10 on it, and I've been disappointed (probably because I didn't start looking until the game was already about 7 years old). Sure, if I REALLY wanted it, I could try getting it off of Amazon, but shipping? Bah.
For those of you who don't know about my video gaming habits, when Quake was big, I didn't own a computer :-) I played a little bit of it on other people's computers, but my real game of choice was the legendary Warcraft II (of course, it wasn't the "Battle.net Edition" yet), which I still think is probably nearly the best multiplayer game ever made. First-person shooters really hadn't caught on with me until around 4 years ago when school and most of my other hobbies involved a lot of thinking. At some point in time, I downloaded the demo for the original Unreal Tournament, and I learned to appreciate a good deathmatch with the easy bots and a bunch of rocket launchers after a long day. Since then I've bought Unreal Tournament (bargain bin) and Unreal Tournament 2004 (full price), and now the first three in the Quake series :-)
I've installed all the games now (they were pretty small compared to a lot of newer games), but I've only played the original Quake much. Maybe it's the nostalgia, maybe it's just the great general feel of the game. A couple days ago (maybe Wednesday or Thursday?), I finished the one-player mode for the first time on the "Easy" difficulty setting. Now I'm starting out on the "Hard" setting. No reason in particular to skip "Medium", except maybe to save time :-) (and I don't want to go to the "Nightmare" level just yet).
The best evidence that computer gaming has changed since Quake is that GLQuake runs faster and smoother than the original Quake with software rendering at the native resolution of my screen. On the other hand, I couldn't get GLQuake to effectively not crash on boot in that resolution without recompiling it (no changes, note that Quake is open source under the GPL) and deleting the "opengl32.dll" that the installer puts there. It still crashes at the end of a certain level for no explainable reason, but other than that it works fairly well, and (as I said) it runs faster than regular Quake (and looks better, of course). The reason for the difference is obviously wider support of hardware acceleration that just didn't exist when Quake was made (you'd spend hundreds of dollars for a 3D accelerator that would still be very primitive by today's standards).
Another observation I've made is that Quake is really the classical implementation of a truly 3D first-person shooter. Its predecessors placed you on a 2-dimensional world with a simple 3D projection that allowed the vision that you were in the room, but allowed the renderer to make certain assumptions so that the game ran smoothly. The most basic feature Quake had that had never been done before in a real-time computer game was the ability to look up and down. I'm not even sure if Doom and Wolfenstein 3D allowed you to jump or not. While Quake was revolutionary in its time, id Software had no way of fully knowing how it would be played, and as such, they made some decisions that could almost be considered mistakes in retrospect. In reality, though, the game is so powerfully customizable that with a little bit of effort, you can configure it to play like a more modern FPS.
The first "booboo" is that the "mlook" option is off by default. It was expected (I assume) that either people would prefer to look up and down with the keyboard, or that most people might be playing without a mouse anyways (but that even seems before its time). To make it so you can look around with the mouse (like most current FPSs), open the console (with ` - many other games have imitated this console, I don't think any have had nearly as many options) and type +mlook, or add +mlook to a file %Quake%\Id1\autoexec.cfg . The second was assuming that strafing was expected to be the exception rather than the rule (which is related to the whole mlook thing - obviously the left and right arrow keys would make you walk sideways rather than look sideways if the mouse was supposed to be used to look around). Another strange decision was that the right mouse button would make you walk forward. I think this probably was inherited from earlier FPSs, and I definitely used it that way when I originally learned Quake, but now it just doesn't make any sense to me. I bound the right mouse button in my autoexec.cfg to toggle a custom zoom (or "scope"), like the sniper rifle in Unreal.
Anyways, I recommend the game and if anyone has it or gets it and wants to set up a good old-fashioned deathmatch, let me know :-)