« A Blast From the Past: Deep Thoughts on Christianity, Harmonic Oscillators, and the Nature of Friendship | Main | Five words... »

Of Deadlocks, Differential Geometry, and Jedi Knight

Christmas is now upon us, and in that spirit, perhaps it would be best if I looked back at everything that seemed to dominated my life last quarter, and take some time out to reflect on everything...


Did I say everything? It's more like the only thing...

Well, it isn't too hard to name the one high-level thing, because I took four CS classes this quarter. Yep, it was a CS quarter for me.

Indeed, I have to admit one thing that was a result of my Herculean load these past few months -- the consistency of updating this thoughts page has been less than impressive lately. But wait -- I can explain using my newly-gained knowledge from those very classes (ironic, isn't it?) See, I think that my personal scheduling algorithm is a classic priority-based model, and my neglect of this page demonstrated the concept known as starvation pretty well, where I get new tasks of greater priority than updating this page into my priority queue, and thus the updating never gets done. Maybe I should try implementing the STCF (Shortest Time To Completion First) algorithm next quarter, which is of course starvation-free. Ha!

(Did I ever mention, yep, it was a CS quarter for me?)

Another example: deadlock. My operating systems textbook defines it in terms of resource allocation graphs, cycles, and whatnot. Well, all fine and dandy of course, but I've found that most of us like to have some examples to de-abstractize everything. In that light, my definition of deadlock would be:

Definition: Consider five brothers in FiCS where each of them will not go to a certain major dance unless the other four brothers go. Now that's deadlock!

Now of course, this is purely hypothetical and made up, right...? Any resemblence to actual people, living or dead, places, or events is purely coincidental and blah, blah, blah, yadda, yadda, yadda, =)


Another interesting anecdote worth sharing was that I was on the way back from the joint FiC at KCPC at the end of the quarter, and someone (I think it was Dave Hong, as is usually the case) asked some question, one thing led to another, and soo n the topic of our discussions found a new direction - that of dreaming in languages other than English. I think Keith mentioned that he occasionally dreamt in Cantonese, and Val mentioned that she dreamt a few dreams auf Deutsch. Then I chime in, and mention that, hey, I've dreamt in C before, and I think Dave Hong became more revulsed and wore a greater expression of amazement and disbelief than I have seen in a LONG while. Tense.

At this moment, the up-to-now quiet Bev mentioned that she did too, and she did it "all the time!". At least I know I'm not alone now! Un-tense!

Fortunately, the languages in which I have dreamt I think are for the most part restricted to C. I don't think I've ever dreamt in C++, although I think I had a dream in Java once. I have two claims: the other languages I've come across, like LISP, ML, Tcl, Perl, assembler and various other esoterica, I think are just too weird to have a dream in. The other claim is that I myself will present the first counterexample to claim number 1 sometime during my academic career.


Another spice class that I took was CS448: Mathematical Methods for Computer Graphics. Our final topic of the quarter was differential geometry, which is basically the study of the nature of curves, and surfaces. The last lecture, we learned about the mathematics behind caustics: if you look in a swimming pool, notice how there are shimmering patterns of light across the bottom. Those are caustics. Anyways, the surface of the water, being curved, is actually acting like a lens. At each point of the surface, you can fit a sphere, and the center of that sphere turns out to be the point where light is locally focused by that surface. So, locally, the surface of the water is acting like a magnifying glass to focus incoming light into brighter points, and if you know the curvature of the surface of the water, you can calculate the areas where light is focused the most (it turns out to be some type of surface), and you can intersect that surface with a plane (such as the bottom of the swimming pool) and voila - you've got your caustics. It's pretty dope stuff.
Finally, CS221. The interesting thing was that class gave me, for the first time since Phil 160A, a opportunity to pull all-nighters with Mr. Chai. We learned about things as path-finding, game-playing, decision theory, and other dope things. The final topic, robotics was the spiciest, though.
Well, as you can probably guess, the past quarter didn't leave me with a lot of free time, to either fellowship with my friends, nor to indulge in my childhood pasttime of curling in front of a computer and loading up some computer game to be immersed in a virtual world for a few hours (or longer).

As I ponder this latter point, my mind flashes back to earlier, more halcyon days: Although by no means my first entry into computer gaming, I remember when I first played Wing Commander I in eighth grade on my 386/16 in 16 color EGA graphics, and I was just in awe by it! One year later, I got a original 8-bit Sound Blaster sound card, and upgraded my system in time for Ultima 6: The False Prophet, which supported 256-color VGA, and the ability to use a mouse, instead of having to type commands in! Anyways, the thing I remember most about that game was the music - basically, the plotline involves two races, human and non-human gargoyle-like creatures warring against one another. The anthem of the human race is this piece which resembles the old British anthem a lot, and the anthem of the other race is a haunting melody which turns out to be a harmonization of the human anthem! This becomes very apparent in the ending where the two races are at peace, and the two songs play simultaneously, each perfectly complementing the other! It was a most interesting touch, and one that you had to have a sound card for - since the PC speaker can only play a note at a time, the effect is simply lost without a adequate audio system.

My, long long ago it seems. Now all this dynamic change that has been brought upon the personal computer industry -- while it might be a drain on the bank account, it's also a perfect illustration of how the world of computing is one that always seeks to push the technological envelope, always expanding and never resting on its laurels. And what drives this forward motion? Well, I dare say that most of it came across became it was the games that were pushing the hardware to the limits.

You know how computers first came about because of the military, the Manhattan Project to build the atomic bomb, and all that stuff? Well, a lot of things these days came across because of us computer gamers! I think it's a pretty safe bet to say that 3-D acclerator cards, MMX Pentiums, and other didn't come about because of Microsoft Word or Excel! This, believe it or not, is why I wanted to go into CS in the first place. Yup, games rule. And sorry, but if anyone comes up and says that, say, relational databases have sex appeal - I think they're beyond help. =)


So, back to the future: one night I stopped by Keith and Paul's room. Now their room, besides having the distinctive air-freshner/colonge-induced Keithlee/Kisoo smell, is always several degrees hotter than the other rooms in Bob, doubtlessly due to the heat dissapated by the several kilowatts worth of electronic gear that are in their room. Tonight, some of that equipment was being put to good use:

Keith was playing none else but perhaps one of the top-threee anticpated computer grames of 1997: Jedi Knight. Having been tantalized with the beta versions being shown at E3 Atlanta this summer, my interest was immediately piqued, and soon I was playing, being drawn into the 3-D world woven by the designers at LucasArts Ltd., Lightsaber in hand and ready to use the Force to prove my mettle against my other faceless adversaries across the Internet.


Games aren't just restricted to us time-ripe undergrads. A few of us in the graphics group are involved in some projects which aren't exactly official research projects sponsored by faculty. For those of you who think that grad students in CS just sit in front of their computers and talk about celluar automata, genetic algorithms, or something, I have but one bit of advice: to check out our web page on the Stanford Quake Project. But beyond that, one of the more esoteric projects involves trying to construct an interface to a Nintendo 64 through a computer - th plan is to build a circuit that can be controlled by a computer and interface to the N64's controller port, and also, to pipe the video output through a SGI O2's real-time video digitizer to be transmitted over the net - the effect is a shared, remotely-accessible Nintendo 64 that you can play over the network. Now there's fodder for someone's Ph. D. thesis topic!
Anyways, that was a bit tangential. Where were we - that's right, Quake. The SGI version of Quake is a poster child for "spice." You think you've played Quake, with your dinky little Pentiums, and $100 3-D accelerator cards. No, until you've played it on a $400,000 Onyx^2 InfiniteReality system with 4 195 MHz R10000 processors, YOU HAVE NOT BEEN PLAYING QUAKE.

So, my big question is - why don't they have more games for SGI (Silicon Graphics) machines? In particular, since George Lucas seems to be at the forefront of technology as his special effects group, Industrila Light and Magic is concerned, why not carry this pioneering spirit of pushing the technological envelope to his computer gaming division? Yep, that's right folks:

Jedi Knight for SGI. Jedi Knight for SGI. Jedi Knight for SGI.

Given SGI's recent spate of financial woes, personally I'm surprised that SGI hasn't explored what seems like a new and viable market segment: the niche of ultra-rich gamers who want only the best and who have the globs of disposalbe income to throw at their hobby. This I would say is the computer gaming equivalent of people who drive Lamborghinis, Rolls-Royces, or Ferraris, the people who buy Faroudja or Meridian components for their home theatres, the people who fly the Concorde on their trips to Europe... well, you get the picture.

Hey, the business of fun is serious stuff these days. And who cares about supply and demand? Here's an area where I think the principles of economics and business should temporarily take a back seat to just pure fun, both from the player and yes, the programmer as well, and establishing a beachead on new technical territory which will become familiar ground in the years ahead for millions. The pioneering spirit of computer gaming lives on more than ever, and here, us students at colleges with our workstations are the fertile unexplored country, people who are and will continue to be connoisseurs of any game that developers might see fit to port to free their marvelous software creations from the technical shackles of the Wintel platform.

So may the extreme gamers raise up a new battle cry:

Jedi Knight for SGI!
Jedi Knight for SGI!
Jedi Knight for SGI!

And to all a good (k)night...

TrackBack

TrackBack URL for this entry:
http://www.markwang.com/cgi-bin/mt/mt-tb.cgi/16

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About

This page contains a single entry from the blog posted on December 30, 1997 4:39 AM.

The previous post in this blog was A Blast From the Past: Deep Thoughts on Christianity, Harmonic Oscillators, and the Nature of Friendship.

The next post in this blog is Five words....

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.32