2007/12/10

True Story

Last night I had some time so I fired up Spellforce 2: Shadow Wars. I didn't buy it because there's a half nekkid dark elf on the box, (though I might have bought this one because of the box art). I think I'm about halfway through given the mix of races, the explored vs. unexplored portions of the map, and comparisons with the original (they both follow the same general plot and buildup lines).

Without getting into a lot of detail about the game or the setup, the two characters in question here are Bors, the fighter dood, and the hunter Mordecay who at this point is fairly new in the party. On my way back through a zone to take care of some side-quests I found a named baddie and proceded to open a can on it. It dropped a pretty good two handed sword. This was the resulting voice-over banter (as best as I can remember; I was kind of drunk):

Mordecay: "Hunter weapon."
Bors: "No it isn't!"
Mordecay: "Roll?"
Bors: "Bah!"

That's far too awesome.

2007/12/09

Two Book Recommendations

Since we've been crunching, I haven't had a lot of time to do a whole lot of development at home. So instead, I've been trying to catch up on my reading. As in the title, there are not one, but two books that I'm prepared to recommend to y'all.

The first one is by one Gerald Weinberg
Becoming A Technical Leader. He's the author of such classics as PL-1 Programming: A Manual of Style and
The Psychology of Computer Programming. (The former may not have aged quite as well as the latter for those keeping score.)

It's quite a good text; the kind that really makes you think if you're willing to.

The second is a bunch of stuff that I'd already read, handily polished up and put into dead tree form: Managing Humans by one Michael Lopp of Rands in Repose fame whose link you can also find over there on the right. Rands is the sort of manager I wish I had at my first three jobs but didn't (seriously). Ever wonder if you and your boss are speaking a different language? It's because you are and Rands will tell you all about it. It's good stuff and should be required reading for anyone who manages technical people.

2007/12/02

Mind the Rubble

The good thing about ridiculously long compile times is that you get time to do stuff like update your blog's template.

Carry on.

2007/11/21

Full of Fail

They say you shouldn't blog angry. You can add that to the long list of seemingly good advice that I don't heed.

So I've been in crunch for the last couple months which in general makes me crankier than normal. At some point in the last week or so I picked up the Supreme Commander expansion. You also might recall that I like Supreme Commander. It is, after all, being the spiritual succesor of one of my all-time favoritest games.

I verily took said expansion, installed it, ran it, patched it (multiple times) and for my $39.99 at that hive of scum and villainy otherwise known as Best Buy, I got this:

FULL OF FAIL

That's it. No indication of what's wrong in any kind of end-user-meaningful way. No clear recourse as to how to fix the issue whatsoever. Smashing. I'm going to guess that this has something to do with SecureROM. Ya know what? If my reward for buying the game is not being able to play it then maybe I shouldn't be buying your games! There's probably a workaround but the days of me having to fiddle around with that kind of shit should be way over. It isn't 1997 anymore.

Guys, I know software is hard, but would it be too much to let me play the game I just bought?

2007/11/20

Oh man...

Crap. Double crap.

So sad; I just bought one of these so I can't justify it (even to myself). But they're soooo coooool!

Stupid technology addiction.

2007/11/10

What You Should Know About Load Times

(cleverly abbreviated as WYSKALT)

If I have time to get pissed off and say "I can't help but notice that I'm not playing your game RIGHT NOW," then it means your load times suck and I'm probably wondering why I bought your game in the first place.

This seems bad!

Loading your game off media isn't rocket science. I'm going to assume that we're loading off some kind of disc with a 'c' media like in a console game rather than your hard drive like on your PC of choice. However, anything applied to optimize load times on disc-with-a-c will also optimize disk-as-in-hard-drive as well. I'm not going to cover everything with load times in this post, but this is the absolute bare minimum of stuff you need to know but I couldn't fit it in quite as catchy an acronym. There's lots more stuff that will make load times even better which I might rant about at a later date.

So at any rate, here we go.

Opening Files Sucks
Most times we don't notice this. Occasionally you run into something where you need to load N files which are kinda small but where N is something gigantic (like 1000). Then you notice--even if you have an uber fast machine. On this generation of console, N is usually on the order of thousands for a given level load for those who might be curious.

Fixing this is uber-easy: pack all your files into one giant uber-file so you only ever need to have one or at most a small number of file handles open. We often know of these as zips, wads, paks, pigs, etc. (The one I use for BEER is "keg". Clever, no?)

This makes load times suck less which is the goal. Sadly, they still suck.

Loading Non-Sequential Data Sucks
So now you've got your data all archived and it's time to load it. Surprise! It still takes a long time because you're constantly seeking around in your uber file. I can hear you smug Win32 people scoffing--but remember that your file mapping eats virtual address space and I know that since you're still using WinXP that you only get two gigs of VM. Ha!

This is pretty easy conceptually: stick all the data in your archive in order. The bad news is that depending on your particular data set and load time trickery, this might be really hard in practice. Chances are good that it leans toward the really hard side because you might only load some subset of your data and probably don't have a fixed order for it. If you can make your loading respect a fixed order then the problem moves pretty quickly to the easy side again.

I've found that in most cases the best we can hope for is that some subset can be made to lean toward "most" for fixed sequentiality. Sometimes you can change the loading code to do nicer things; sometimes you can't for <fill in the blank> reason that fits your situation. In either case you need to generate a sequence list for some set of your data then stick all the data in your archive in that order as best you can. Neither of these are particularly difficult assuming you have source code and enough time to do stuff and an archive builder that doesn't totally blow chunks.

Why does this work? Once file open issues are dealt with, seek time tends to be the dominant factor in unruly data sets. On discs-with-a-c, each seek is going to weigh in at roughly between 50 and 150 milliseconds depending on your particular hardware. So, if you're loading 10MB of data but seeking 100 times, your load bandwidth for that data can be no better than 1MB/s in the best case (assuming a flat 100ms/seek which is normal). If you try to load a gig of data with that bandwidth, then, well, I'll not be alone in returning your game.

So: if you can significantly reduce the number of seeks your game needs to do, you can significantly reduce the load time of your game. I've seen particularly poorly loading data sets extend the load time of a 100MB data set more than five minutes. For those in the audience reaching for calculators, that's a bandwidth of less than 1MB/3seconds. Glacial.

But Our Game Is On the Hard Drive!
Don't care. These will still make your loads better. Your seeks are still on the order of 8ms and your bandwidth isn't free. Wait till your users start fragmenting the crap out out their drives. Galactic Civilizations is a reasonably fun game but its load times are absolutely brutal. Why? Tons of tiny files none of which seem to be in easy-to-load formats just sittin' there on the disk. Lots of games are like this for the PC and it's a damned shame.

Oh! You did that for your modders, did you? Guess what; you can still put most of your stuff in order in archive. You can even give modders your packing tools so their stuff loads fast too! Sure, you have to design for it but you're already designing extra stuff in for modders, right?

Odds, Ends, and Disclaimers
As mentioned atop, this is the bare minimum you need to know about load times. There are lots of other things you can optimize to make your loads suck less but I'll save that for another rant.

This has been a public service announcement paid for in part by the "Your Game Loads Too Slowly" foundation of Maryland and made possible by viewers like you!

2007/11/03

Script-fu

Not terribly long ago, I was a self-proclaimed scripting hater. "Oh sure," I said, "You can do some neat stuff in script-land with your not-real languages and your dynamic types. But wow, my C++ can do all of that and uber-more!" Yeah. So it's time to fess up and admit that I might have, ever so slightly, been somewhat mistaken on some 'a that.

I've had this completely irrational thing for Ruby for, oh, about a year now which mostly manifested itself as not doing Ruby. This (irrational thing for Ruby) is mostly the fault of the blogosphere, notably one Steve Yegge who, despite often being somewhat long winded with a propensity for ten cent words and compilers, is also quite often terribly amusing and a lot of the time spot on. He's got loads of stuff trumpeting the awesome that is Ruby. So I bought a book and read some online tutorials and then got a new job and moved cross country and got tied up in godawful amounts of stuff that's not ruby and wow is that a pretty laptop I should totally get one of those while not doing Ruby.

I used to know perl in much the same way that most people who knew (past tense) perl once did. That is to say, I have absolutely no ability to do perl now because a) it's very obtuse, b) it looks like line noise, and c) it's so unbelievably obtuse that sane human beings flee in terror when confronted with it. Have I mentioned its obtusitude?* Some have described Ruby as "perl with the suck removed" and as I mentioned before, I have a thing for Ruby.

<yet another entry for the worst segue ever category>

I'm now in charge of making load times not suck on my current project. I'd built a couple tools to build giant archive files and to parse in-game spew to do various things that are reasonable and useful toward that goal. I'd built them in C++. This in and of itself is not odd since by and large, I'm a C++ programmer. What I did notice is how godawful difficult seemingly simple things are in C++. This also is not odd since by and large, I'd been noticing that on and off for the last, say, decade. So moving from "hey, I think I can fix our load times" to "holy sweet moby jebus, I have to fix our load times!" I decided that I needed better tools.

Enter Ruby, stage left.

So I used it in a real "have to get this crap working right now kind of situation...and it was good.

So now I gotta take back some of the mean things I said about scripting languages and the people who promote them. Uncle already. I may have been a bit hasty with all of that. Ruby has made the otherwise unbelievably daunting data mangling tasks I've got slightly less unbelievably daunting because now at my very fingertips I have the power to mangle data like never before! Data the world around, tremble before my gemstone inspired might!

I'll save some gory details and horribly contrived examples from Teh Real World(TM) for a later date. So, if you're like me and only really ever looked at your primary statically-typed language for solving all manner of problems, you might go and pick up a scripting language just cause. It might save you some unbelievably daunting.

*obtusitude is not a real word. I made that up, honest.

2007/11/01

HL2

One of the (many) things I missed out on during my two year long stint in WoW is Half Life 2. Despite being told how uber-awesome it is, I never got it since at the time I didn't have enough machine to really play it. So beta for the Orange Box rolls around and my co-workers are playing TF2 and I hop on the bandwagon...just in time for them to lose interest (bastards). TF2 is plenty of fun on its own but it also gave me a chance to catch up on otherwise missed gaming (brilliant move by the Valve guys).

I wasn't prepared. Half Life 2 rocked my socks. There are definitely things about it that I didn't like but overall I thought it was an excellent game. Add to that the two free-to-me episodes 1 and 2 and it ended up being even more excellent. I missed the whole "better than sliced bread" launch so I had to judge it on its own merits and I still think it's by far the best single player game I've played in the better part of two years.

If you missed this one, aren't totally put off by jumping puzzles, and enjoy a good action FPS, I highly recommend it. Can't wait for Ep3.

2007/10/04

Random or Not?

Here's a not-quite-hypothetical problem: you have a fixed size graph and want to arrange N points on that graph in a random manner. You could use such a thing for lots of different stuff not limited to distributing player positions on a map, etc.

So how do you do it? Feel free to code along at home.

Totally random.
First try: completely random. We'll just use our good friend rand() with some "proper" seed to choose X and Y values and mod them into the map space. Smashing. If you do that, it looks something like those on the left.

I saw the results and wondered where my bug was cause that sure as crap doesn't look random. Hint: there was no bug.

Small influence circles.
Hokay. Welp, I don't want those points to be within N distance of one another where N is something I can calculate easily because, er, I want it to run fast (not because I'm lazy--no not that at all).

Closer...

If you were looking for a point, you may have just found it: when I say random in this particular context, really mean evenly distributed rather than really random. In fact, truly random is not what I want at all.

Final results.
On the left here are my final results after a mess of hacky heuristics. It's not the prettiest code but it seems to give good results on every map I've generated and it has a calculable upper bound on computation time. As a final step not shown here, I jitter each position inside the grid line so even points that are on the same row or column on the grid appear a little less regular (left as an exercise for the reader).

Now, I freely admit that I'm one to run off and code something because a) I figure I might learn something, b) I need the practice, and c) I reall like coding. Try as I might I was unable to find a better solution than the hackery I came up with. Apparently my google-fu is not as righteous as I thought. I'm pretty convinced that there's some crazy technique to do this in like 3.47 instructions on a 68020 or whatever but I sure as crap can't find it. If anyone knows of one, let me know.

(If anyone wants the code, just ask.)

2007/10/01

A Year of BEER

Programming is pretty cool. It's one of the only disciplines where the tools are made of the same stuff the products are. In fact, the only other one I can name is blacksmithing and really, it's best that I don't try that one.

BEER
As of a couple weeks ago, the BEER engine is officially a year old. Sadly, I didn't notice until I went to update numbers for September. A good 35,000 lines and more than 200 hours later, I have to say that it's everything I wanted it to be and more. It's hard to say in objective terms how much I've learned in this endeavor and the (so far) three projects it's enabled, but I can say without hesitation that it's been a substantial amount.

2007/09/17

I Like Oats

If you take the oat, the whole oat, and take off the hull but leave the bran on and don't process it any further, you have a groat. When I eat groats I usually toast them in a little butter then simmer for at least 30 minutes. These are good but chewy and take a while to cook. They're good but take a lot of effort, sort of like brown rice. I hear they're good in haggis too, but I'm far too chicken to try one.

Scotch oats, Irish oats, or pinhead oats are what you get when you take a groat, remove the bran, then send it through steel cutters. These are also called steel cut oats. I love these: toast in butter until they smell nutty, then simmer for a while adding salt and cream at the end. What you get if you do this is a pretty awesome hot porridge which I think is pretty magical--tasty, kinda chewy, with a nice creamy texture even if you don't add dairy.

Take the same groats, remove the bran (usually), then mash 'em flat and you have rolled oats or "old fashioned" oats which is typically what we think of when someone says "oats". You can cook them in the microwave but they've lost the awesome; convenient but iffy. If I have to, this is what I buy when I want oats and can't find any steel cut oats or don't have the time to cook them (say, at work). These are great for things like oatmeal cookies and granola which I almost always make myself because it's a) dirt cheap, b) kinda fun, and c)I have a nut allergy.

"Can you process them more? Well, sure!"--Alton Brown

"Quick oats" are those that are cut, par-cooked, then mashed even flatter. They blow away in a stiff wind. They cook in a tiny fraction of the time, like a couple minutes of nukeage. They don't get nutty. They don't get creamy. They don't, in fact, taste all that good at all, these "instant oats". I'm not sure they're terribly good for much of anything beyond being convenient. I hate these and almost never buy them.

I almost never buy them. In an attempt to eat healthier, I bought a big carton of Quaker Oats. Guess which kind I got.

2007/09/11

Free Software

I'm always on the lookout for stuff that will make my computing experience better. And Lo! I have found not one, but two such things in times recent.

The first, is paint.net which is a wonderfully full featured image editor. It reminds me a lot of an ancient program I used to use called PhotoFinish crossed with an equally ancient version of Photoshop (3.0). It does layers and has an unlimited command history. Want the source code? BAM. How bout a blog with details of the development and business side? Got that too.

If only I'd known about this before I'd shelled big cashmoney for CSR2. MS Paint quakes in its boots in mortal terror.

The other one is ToDoList which is exactly what you might expect from a program of that name. As it turns out, this kind of thing is pretty rare in the software wild for whatever reason. This one has all manner of sorting and searching and you can set recurring tasks and priorities and all 'a that. It's swank. The only downside is that you'll need codeproject.com logins. Goodness lives here.

I'm using this to track features, bugs, and development of my home projects as well as tasks at work. And for those of you playing buzzword bingo: it stores its files as XML.

2007/09/04

Beyond the Big Bang

Spacetime. Nuts, isn't it? One thing, not two. You've probably heard of the guy who came up with this.

The History Channel seems to be at the end of it's series
The Universe, which is both fascinating and well written. If you have more than a passing interest in this kind of stuff, I highly recommend this series (yes, I just bought it).

2007/08/31

Technology Gone Horribly, Horribly Wrong

From my inbox:
As someone who has purchased or rated books by OpenGL Architecture Review Board, you might like to know that Red Letters: Living a Faith That Bleeds will be released on September 1, 2007. You can pre-order yours at a savings of $2.80 by following the link below.

I could be missing something here. I'm not properly caffeinated yet (yeah, it's Friday, give me a break already), but I gotta say: W. T. F.

I got this from Amazon. Amazon?!

Book DescriptionIn many Bibles, Christ's words are set apart with a red font. It should be obvious, but this distinction helps remind us that when God becomes Man and that Man speaks it's probably something we cannot afford to miss.

I can't make this shit up.

2007/08/09

Elements of Computing Style

Usual disclaimers apply here: I'm not an authority on, well, anything, so take away what you will from any of my postings.

I also fully realize that not everyone is a computer enthusiast of the same 7th dan that I am. I always expect to have specialized machines around to do whatever nefarious bidding I require and use specialization as a reason (excuse if you prefer) to have a bunch of machines around. So with that as a setup, I have to say that I vastly prefer small laptops. Or notebooks. Some people prefer "notebooks". Feel free to do the appropriate mental substitution. There's just something magnificent about a machine that you can take with you.

Aeronauts, Unite!
One Andy Carra is particularly more responsible for my views on laptops than most. He introduced me to this machine. Yeah, I know that it's far more en vogue to use a pop can for scale but, I, um, didn't have one. Luckily, MacGuyver isn't my patron saint for nothin'.
Who sez a 486 can't be awesome?


This was before I really understood hardware or how to make it go. The Compaq Contura Aero is a 486sx 33MHz with a base 4MB of memory expandable to 20MB (max). It came with a 170MB or so hard drive, a proprietary PCMCI floppy drive, and a 7.8" 640x480 16 color passive display LCD. It weighs in at about 4 pounds with a footprint of 10.25" x 7.5" x 1.5". It's a thing of beauty.

It's surprisingly solid for such a small machine with a plastic shell. The trackball is tiny but still manages to be usable. The screen is compact but still readable. It has no internal fan so it's completely silent beyond the hard drive and the clicking of the keys. When you use it for a while and it starts to get warm, it has a very distinct odor--not an unpleasant one, but also not one that you'd expect to come from a computer. Most of the other Compaqs that I've encountered over the years have been junk, so I usually refer to the Aero as the "Greatest of the Compaqs". I don't think you can sum up in words what all makes the Aero cool, but if you sit down to use one, you know right away that it's a quality machine.

I bought one and modded it. It should be noted that the guts of the Aero were never intended to be mucked with by mere mortals. At some point I broke the infamous right hinge. For a short while anyway, I held the record for the biggest hard drive ever put into the tiny Aero (6GB circa about Y2K). I can't be mad at the guy who beat my "record" since he put up a kick-ass site about the Aero.

I still have this machine and it still works. It currently dual boots Win95 OSR2 and OpenBSD 2.8 (I think). Watch this space! for future hackeries with this, one of my favoritest machines.

Dark Sony Days
My first laptop was a godawfully heavy 13.3" Toshiba Satellite which I bought in grad school. It was (roughly) 12 pounds which doens't sound heavy unless you need to carry it around all day and with textbooks. With the right clutch of my Aero out and sans a battery that could run it for more than 15 minutes, I really really wanted another machine that I could take with me. At the time, and I did my homework for this one, the Thinkpads and the Vaios were the big names in subnotebooks. I bought a Vaio and it served me well. Specifically, a PCG R505DL boasting an at the time impressive 1GHz P3, 30GB hard drive, and 384MB of main memory. It's got a 12.1" 1024x768 passive display and sans docking station, weighs in at roughly 3 pounds.

I hate Sony, but make an exception for their subnotebooks.  Or laptops.
This Vaio is a lot larger than the Aero but at the time, I don't think that Sony sold a smaller one (10" screen) with the appropriate power for a reasonable sum. It's a very full featured machine with a single PCMCIA slot, a DVD/CDRW, a floppy drive, built in Ethernet, a couple USB ports, and a Sony memory stick slot that I've used exactly twice in seven years. The dock and battery can be hotswapped in Windows if you're so inclined.

For as sleek and thin as the machine is, it's amazingly solid. The corners don't give, and you don't have to baby it to move it around. The base with all its ports is nice for folks who want to leave the optional bits hooked up to a workstation and take the machine for strolls. The base itself isn't terribly heavy so if you want to take the entire thing on a trip, it's not a big deal. The keyboard is compact but not too tiny to type on effectively and has a really nice feel. As an interesting data point to that effect, I think I've written more code on my Vaio than on any other machine I've ever owned including two engines and probabaly seven games/prototypes/tech demos.

It's a good machine, and I'm a little sad to be retiring it. Except that it means I have a new machine.

Humanizing Technology
With the sale of my house in Wisconsin, and a burning desire to buy something cool, I bought one of these. It's 10.6" x 7.5" x 0.9" with an 11.1" 1366x768 display and weighs in at less than 4 pounds. It's a low voltage core 2 duo and currently has 1GB of ram and a 120GB hard drive. The memory upgrade is already on the way though I suspect it'll be a while before I try to replace the drive (solid state drives need to come down in price a bunch).

Stylish.  Portable.  Gawd, I sound like a marketer.
Now, I'll be the first one to say that I was skeptical about the leather binding thing as well as Asus' current marketing campaign, but I have to say that the S6Fm is a high quality machine and it really wouldn't seem as cool without it. They really went out of their way to make it exceptional and that's something I can definitely appreciate.

Given that there are exactly two machines that fit my specifications available right now, I think I made the right choice. I thought that the price was high until I received it and found that with the machine I also got:
- a high capacity battery in addition to the normal one
- a matching optical mouse
- a mess of accessories which are by no means necessary, but definitely very thoughtful of them to have included

It's light, solid, and reasonably powerful for its size. Everything is built in and modern. I've got very few complaints. Course, I did just buy it and I haven't really had a lot of time to get used to it either, but I'm happy to have found an appropriate spiritual successor to my beloved Aero.

More than a decade of computing excellence is displayed before you.

2007/08/01

One House Off the Market

In a stunning display of complete and utter ineptitude, my house is now officially off the market. I'll save up the ranty goodness for another day because right now, I hold in my hands a check the size of which I've only seen once (not coincidentally, when I sold my last home).

Like any good geek coming into a pile of money, visions such as these now fill my every waking moment.

2007/07/26

Hack: Impossible?

[insert theme music here]

Your mission, should you choose to accept it, is to hack the following upgrade card into a workable machine sizing less than a breadbox and drawing under 50 watts of power at idle. Said machine should be capable of running OpenBSD 4.1 as a server or WinXP.

The target: one Powerleap upgrade card. Model: PL-Renaissance/R370S fitted with a 256MB stick of PC-133 SDRAM and an Intel 733MHz Pentium III Coppermine processor.
ISA card...PC upgrade...you decide!

You have as much time as you need and a budget of $200. Beyond that, you may scrounge for parts around your workshop.

Good luck.

2007/07/17

Old Hardware

Most of the people who read here know me well enough that this isn't a surprise, but for everyone else out there: I have a problem with obsolete computer hardware.

The problem is that I seem to accumulate it at an alarming rate (i.e., greater than zero) and have a real hard time getting rid of it. Currently I own seventeen machines in various states of disrepair. The vast majority of those are functioning but without a real purpose. I never take a machine that I don't intend to use for some purpose of varying nefariousness and while I did use most of them, most of those uses are no longer necessary. That makes me sad, not in the least because I get bitten by the "must have new hardware" bug about every four months.

I don't think there's anything that depreciates in value quite like computer hardware except maybe automobiles and my stock options. Computer equipment just doesn't die that often if you take care of it. Oh sure, you'll have a hard drive or two die but for most parts just don't stop doin' they thang. Some of my (vast) collection I still have uses for but that leaves about a dozen machines I need to offload.

This is where y'all come in. I need help getting rid of these but I'm particular about where they should go. I don't want them in a landfill; I want them in the hands of someone who will put them to use doing whatever or at the very least recycled. So if you know of a good or even slightly disfunctional home that could use an old machine or three, drop me a line.

2007/07/11

Betterer Followup

Don't try this at home. Make sure you download the full version (about 30 megs) rather than just watching the preview.

And if you absolutely must watch it in crappy low rez, well, I feel for ya, but here ya go. You won't get a lot of the more subtle effects; just sayin'.

No hobbits were harmed in the making of this film.

2007/07/02

Bad Followup

As it turns out, I've been kind of busy lately, but not with anything that could have prevented me from posting something meaningful here. I just didn't know how to follow the last one. So here's a whirlwind update of what's gone on in the last two months.

Stuff:
- Looks like I'm finally selling my house in Madison
- I'm finally able to exercise my Activision stock options
- Got my fast machine in a proper case
- Playing Civ IV (for obvious reasons)
- Played Vanguard
- Played LOTRO

The last two are deserving of posts of their own which I'll leave for another day. The first two mean I don't have to eat ramen and mac&cheese every day (assuming all goes well, anyway).

Also: tasteh.

That is all.

2007/05/03

Thoughts of WoW

If you don't like long posts, you can stop reading now. It might get a little sappy in here: you have been warned.

I'm in the process of fixing, reinstalling, rearranging, etc. all my machines. On this particular machine (laptop) I found the WoW videos I'd downloaded seemingly ages ago. In the process of going through them deciding which to keep and which to toss, my thoughts were again drawn to far away Azeroth.

I played nigh unto religiously for a really, really long time but only now many months after calling it quits have I finally come to terms with it. At one point I changed servers to Greymane with a few good friends. We were kind of fed up with all the BS that goes along with dealing with people and just wanted to have fun again. At some point we got into PvP and did a whole lot of it.

This time around, I played a mage which is pretty atypical of me; I usually play tanks or healers and had just come off a year gig as a paladin (yeah, sorry). For those who haven't played WoW, mages can be kind of squishy and for a good spell in the 30s and 40s brackets, I had been having kind of crappy luck and really seriously considered rerolling or finally quitting for good. I mean, shit, it had been a year and a half and it's not like I didn't get my money's worth.

I don't remember where I found it (probably the uber-useless mage boards) but I found this video and everything changed. Cliche, but true. I mean, jeez, that guy rocked. He has some serious gear to be sure, and a build that's all about making highlight reels, but still--daaamn. I figured I'd never see that kind of gear ever (I was wrong) but if you could do that, then it was something to shoot for; something far beyond the doom and gloom of the mage boards.

I respecced, busted up to 49 and we hung out there for a good couple months and went pretty much undefeated. I even made a PvP video (I'd link it here, but FileFront isn't playing nice this evening). We met a lot of great people and had a mess of fun. And little did I know it at the time, but that was the platform upon which the rest of our success would be built.

HRG showin' the alliance how it be done

Me, Zura, and Vain were the last of the few that came from our previous server. If you look close, it's us three and a couple others in group 2. Despite my rantings and ravings and general malaise, they stuck with me (for better, I'd say). We did a lot of awesome things and got a lot further than anyone thought we would, myself included. These were the folks I counted on to stay sane when nothing was going right (pretty frequently, as I remember) and who sadly took most of the brunt of my bad calls (of which there were many).

This particular shot was just as we'd gotten some success in raiding; before it got too busy to PvP often. This was the second match we'd won after I dinged Exalted with the Defilers so I was sportin' some nice shoulders and an Ironbark: some of my first epics. Greymane was pretty godawfully one sided; if you smacked an alliance weenie real good, they'd just about rain epics like a goddamn pinata. It was terribly frustrating to lose because they had better gear which made our wins over such teams that much more satisfying. For months I'm sure I grated on folks nerves with: "What are those chumps gonna do when we start gettin' epics?" The above screenie contains the answer.

Me & Hypo doin' what mages do best:  kicking ass
This is me and Hypo kicking ass in AV. The thing to realize is that even though the horde in general had better PvPers, they almost never showed up to AV once they got their shineys and the alliance (in general) had way better gear. The end result is that we lost a lot--but we looked damn fine doing it. I owe the top part of whatever skill I had to Hypo since he always pushed me to play better than I really could. He's an uber mage; probably the best I ever played with. Favorite story: at one point he respecced to fire like I was when we were working through MC to up our raid DPS.

Our MT was so uber, Kia named a truck after him.
This is probably one of my favorite raid shots. We had our raid firsts of Ragnaros and Onyxia pretty close together which established our position of prominence on our server. What you can't see in that shot is how we struggled through personnel issues when we couldn't get 30 people together to do a big raid or doing Lucifron shorthanded with only two priests (sorry, but you kind of have to know that encounter for the significance of that to sink in). You don't see the hours of frustration as we wiped due to server lag or just plain bad luck or the infighting that eventually drove the group to split up after I'd gone. You don't see the blood sweat and tears that went into the organization or the flak that we took for "just a game".

In the end, you don't see a lot of things in that shot, but that's the HRG I remember, the one I led: mature, determined, unstoppable.

My days as a mage came and went--memories that I might not have had if I hadn't found that one video. I met a lot of great people, many of whom I'm still in touch with today. Maybe Azeroth isn't as far away as I thought.

2007/04/29

Hazards of the Infrequent

A long (long) time ago, I did 3D modelling. It was a long forgotten day when my 386 with its 16MB of system memory and 4.2GB of disk was a serious amount of computing power.
...in a galaxy far away...
By today's standards it's pretty weak, but in a day when hardware acceleration hadn't quite reached consumers it was pretty awesome.

Hazard: I have these stored in RD4 format (I upgraded). Nothing in the modern era seems to be able read these files. God knows that even if I had an install disk for the program that made those that it'd be a miracle to get a machine together that will even run it.

The good news: the files are in ASCII. The bad news: the format was written by a "real programmer" and is unintelligible. Yeah. Awesome.

Sooo....my options are looking like:
  • fiddle through the data to try to piece together the geometry
  • keep looking for something that can import them
  • rebuild the models from the source sketches assuming I can find them

    Woo.
  • 2007/04/19

    Half a Rant

    I got a package today. This has learned me four things:
    - the mail carrier chick is hot
    - either my angry calls to the post office or my judiciously applied handwritten nametag worked
    - my doorbell also works (didn't know I had one, the random assortment of pizza doods that have been here always knock)
    - my legos are no longer lost in the mail

    That would be all except for my half a rant.

    I spent two days trying to get Linux installed on a spare machine to be a) a non-windows platform to cross compile on, b) an always on place I can drop the multitude of files I want to keep, c) an X server I can break (no X on my firwall). Gentoo did not play nice. This morning after many hours of not being able to get xorg and fluxbox installed properly, I got pissed off and installed OpenBSD instead. It was installed with X before lunch with xorg and fluxbox no less.

    Gentoo definitely seemed cool after about an eight year hiatus from anything Linux. If I cared more about the operating system, I probably could have spent another couple days getting it to work. Then I realized that I'm old and cranky and have got better things to do and...hey! Durn kids! Get off my lawn!

    2007/04/18

    Adventures With Legos, Part 1

    This one is dedicated to Mr. Brian's weiner cat who sadly can't play with legos due to a distinct lack of opposable thumbs.

    Look, ma!  I can't draw with perspective!

    Step 1: Pretend to be able to draw with any kind of perspective (yes, the torso part was hacked from a different scan to save your eyes some pain).

    Step 2: Get drunk off your rocker and watch TV for five days straight in a pile of legos. Kids: get your parents' permission first!

    Step 3: Build:
    Don't fall...don't fall...don't fall.....DAMNIT!


    Depending on which one you saw first and/or your particular loyalties to the respective brands, this is either:
    RFL3N-Rifleman from Classic Battletech

    ==OR==
    Raidar X Battloid from Robotech

    ==OR==
    ADR-04-Mk.X Destroid Defender from Macross


    I swear that I've run across a blurb about how FASA settled in court with the Macross doods on Classic Battletech but for the life of me, I can't find it now.

    Action pose!
    It's not trying to hug you.


    And just in case you think I'm way out there, this dood will actually sell you a lego mech.

    2007/04/06

    Stupid Ebay Tricks

    A sane person might think that paying rent in one state, mortgage in another, and being out of work for the better part of a month would prevent me from buying crap on Ebay.

    Ebay is evil; that is all.

    2007/04/02

    Now Reporting LIVE From Maryland

    For those wondering: I did indeed make it though not in record time. That said, I'm pretty glad I took two days to make the trip with a totally loaded car than just doing it in one.

    Since arriving in town late afternoon yesterday I've scouted out the appropriate places:
    - an appropriate establishment to buy beer
    - a place I can get food
    - the local EB Games
    - Chipotle

    The cable doods were here this afternoon and I've appropriated one 72"x30" folding table and a folding chair on the cheap so it's almost like civilization again.

    2007/03/29

    I Hate Moving

    So Monday they came and took most of my stuff. That means I have no chairs or tables which means that I've been either sitting on the floor or standing for the last five days (ow). Even worse yet, today the carpet cleaner guys came and things won't be dry until sometime tomorrow. So now I can't even sit on the carpet anymore and I've had to relocate my sleeping accomodations to the kitchen (hey, it was either that or the bathroom).

    Fun. And by that I mean "not".

    I'm so buying furniture when I get the keys.

    2007/03/25

    Moving Miscalculation

    Today the movers came and got all of the stuff that I won't be tossing, putting in storage, or taking in my tiny little car. The house is now mostly devoid of anything but dirt, spiders, and cobwebs--perfect for the kind of cleaning that I need to do (well, minus the spiders anyway). The bad part, the miscalculation from the title, is that I have neither a proper desk, nor a proper chair, and my microwave is now on a semi bound for Florida. I have no idea why Florida is on the way to Maryland but hey, I don't drive a truck either.

    So I can't really warm things up to eat without firing up the stove and my back is rapidly cramping thanks to the contortion that I'm doing to type and see the screen.

    I had a grand plan of cleaning and playing a few days of Supreme Commander. The cleaning part is sadly unavoidable, the last part I just don't see happening anymore.

    2007/03/18

    850 miles is a hella long way

    It's 850ish miles from Madison WI to Towson MD for anyone who's interested. That's a long goddamn way. I managed to make it in roughly 13 hours including stops (tolls, food, etc). I've done this kind of driving before; it's about the same distance from Fairfax VA to Madison as well--yet another set of one day drives I don't recommend to anyone.

    How did I make it so fast? Suffice to say that if I had gotten just one ticket for every state I travelled through today, that the total citation sum would be two to three times as much as I'm paying to stay at this crappy hotel for two nights. At least the hotel has wireless.

    I think I'm going to pass out now.

    2007/03/12

    Daylight Savings Sucks

    ...and I get to do it again in another month when I move from CST to EST...again.

    That is all.

    2007/03/10

    Moving

    It occurs to me that I've neglected a couple of things. The first is that I'm switching jobs and moving cross country (again). The second is that this is the reason I've not finished February's game or done another thousander club update. This isn't probably news for the majority of people who read here, but for everyone else: now ya know.

    The majority of February was spent studying, interviewing, making plans, and generally being very nervous about the whole thing. This is not conducive to getting any real work done. March is so far going about the same as February minus the studying and interviewing parts but with the addition of furious cleaning and fixing of my house to make it more marketable.

    Selling my house is going to be a pain; I imagine that it always is. Dealing with the pile of crap that my dad made me take now that he's in his "get your shit out of my house" phase is also going to be a pain. Normally, I'd agree with him since it's my junk, after all. This is fine as long as there's space to put said shit, but moving from a 3 bedroom w/basement and garage house to a 1 or 2 bedroom apartment is already unfun. So I'm going through stuff and seeing what I can toss and otherwise get rid of as much as I can stand.

    I will very likely need both storage here in Wisconsin for the stuff my dad can't pick up but still wants (my parents are in their Arizona home at the moment) and in Maryland where I'm landing because I'm going to have roughly 1/3 the space I currently do. Yay. House selling issues asside, I'd rather not be paying rent as well on storage space.

    Probably the biggest difference than the last time I moved is that I'm probably going to go with movers this time. I just don't want to drive a big honkin' truck through Pennsylvania again. I'm hoping like hell that this is going to be within my budget and that they don't destroy my otherwise already destroyed stuff. Maybe I should hope that they don't destroy it any more than it's already destroyed.

    2007/03/04

    Total Annihi...er...Supreme Commander

    Way back before the dawn of time (i.e., the year 2000) I played a mess of RTS games. One of the most notable of these was Starcraft which I played an undue amount of. What killed it for me was when I realized that I was losing matches because I didn't micromanage the first minute well enough. That sucks.

    Enter Total Annihilation.

    I dunno if the time was right or whatever but I ended up playing even more TA than I did Starcraft and I never really bored of it (just got distracted with other games, then jobs). In fact, from the time I started playing TA, I've upgraded my main machine in these denominations over the last decade or so: Celeron 300A, PIII 733, Athlon 1333, P4 2533. Each of these has subsequently been ground to a screeching halt by that one game released in 1997 and modded to the moon and back. And it's still fun. Lots of people didn't like TA, however, because it was less action, more strategy, and was 3D rendered in software right around the time that everything had to be 3D accelerated.

    Enter Supreme Commander.

    Supreme Commander (for those who have no idea what I'm talking about) is the spiritual successor to TA headed by the same dood (one Chris Taylor, not to be confused with my recent student of the same name) but at a different company and with uber modern requirements. I suppose that as a true spiritual successor, it will need to bring yet another three generations of machines to its knees and by all accounts it does so.

    So after having pre-ordered it, I built a new machine. In fact, I got the game before I got the parts. The final upgrade straw was that my old machine wouldn't ever have enough video card to run the game (GeForce 6 minimum). This is the first reasonably cutting edge machine I've ever owned to the tune of about $2K (running Vista, but that's a rant for another day). I built it yesterday, got it all configured and downloaded and patched and almost usable and went to play Supreme Commander for the first time. After roughly ten years of antitipation I've now been stuck in the patching portion (done in the background) for, oh, the last two hours. On a blazingly fast machine. That was built specifically to play this game. On my extra premium 3Mbit connection that's normally really nice.

    I'm convinced that the universe hates me.

    2007/02/25

    Just a Bit

    How much snow did we get, you ask? Ho boy.

    Never in my life have I moved more snow in one day and remember that where I grew up, we stick spigots in trees.

    This was my front door this morning.

    Survey says:  don't go the fuck out!


    I caught the culprit in action. I didn't get a shot of the other machine but it was pretty awesome too.

    Toldja it was a front loader.


    This is the left side if you're looking out my front door, checkin' out the uber corner there. My study's window looks out that way if I ever had it not shaded. Note the position of the fire hydrant and how far up it the snow goes.
    Observe the Midwestern Fire Hydrant in its natural habitat.  This one hasn't shed it's summer coat yet.


    In this shot, you can barely see my mailbox. Don't worry, it gets worse. On the left of my mailbox, you might not notice my driveway. This was before that other gigantic machine pushed a neck high pile into the bottom there.
    Sometimes I park my car here.
    So, there's your begin pictures. It might look cold out there and it was, just not as cold as it has been. In fact, I spent most of the next five hours clearing without a coat on. Never in my life have I been more happy that I'm covered in a layer of insulative blubber.

    Being realtively warm outside had the benefit of making the snow sticky so it tended to stay where I put it. This also means that there's probably not going to be a lot of drifting--an uber good thing for tomorrow. The bad news is that it was wet. Hella wet. That means heavy and I've got the back strain to prove it.

    Note the hydrant on the right. Also note that my lazy neighbors couldn't clear their sidewalk (pansies).


    That's a lot of Sidewalk.


    Somewhere in there, I have a mailbox. Hopefully I can't get fined for that.


    Where's Waldo?

    2007/02/24

    I Hate Winter

    Seriously, I hate it. For those not in the know right now, the midwest is under siege from winter and it's not supposed to stop until late next week (stupid winter).

    I left for my class as is my saturday habit at ohgoditsearly o'clock and almost got stuck. Odd, though, because the snowplow doods hadn't done their dumping on my drive yet. Arriving home at just before 4:00 this afternoon, shock, then amusement, then horrification played over my face in what I can only assume is a suitably comic manner. I was too busy being shocked, then amused, then horrified to properly notice.

    Sadly, instead of just taking off the top layer like they've done all season long, the doods did two passes--one for the top layer, one for the harder, dirtier, nastier crap that gets packed down when you drive over it. Might I add that this is the heavier bit.

    To add insult to injury, they'd also managed to run what I can only assume was a frontloader up onto my curb depositing yet another waist high pile of the aforementioned heavy snow onto the corner of my lot. Now, for those who don't live in the fine state of Wisconsin, as a resident of the City of Madison, I'm required (by law) to clear the sidewalks in their entirety within 12 hours of snowfall lest I get fined. They don't give warnings. I have a corner lot.

    Half an hour later, I deposit my car in its rightful place in my garage. An hour and a half after that, and I fulfill my duty to the City of Madison for another day (ow), at least until it snows like crazy again tonight. And tomorrow. And the day after. And the day after that. And the day after that. And if we're lucky, the day after that. That's right, kids, it's supposed to snow every day up until and including Thursday.

    Note that my driveway is not clean. Oh no. They won't fine me for not clearing my driveway. When I was done, though, you coulda eaten off that sidewalk. And now, a mere two hours later, it's already covered again.

    I'm so moving somewhere tropical.

    2007/02/19

    Roddenberry & Lucas

    These days I don't watch a lot of TV and don't see many movies but that wasn't always the case. In fact, I whiled away many a youthful hour locked up in the vivid scenes conjured from someone else's imagination. Most of those years have been subsequently locked up away from my own prying eyes in the bustle of daily existance. So well, it seems, that I can barely recall much of my pre-college days--probably for the best.

    It's been a long weekend (thankfully) and I caught two shows on the History Channel. Yesterday was Star Wars: Empire of Dreams. Today was Star Trek: Beyond the Final Frontier. I don't know what it was about those two productions but it reminded me of the wonder I had of cinema and TV that I've all but forgotten. Maybe it was Wil Wheaton's Blog which I discovered a couple months ago (it's on the must-read list). Maybe it was his commentary on ST:TNG. I dunno.

    The prevailing theme through all of that was that those two pieces of fiction changed the world. I'm not sure that anyone who lived in this country who were at least as tangentially aware of popular culture as I am would argue against that. So what happened? The only thing I can think of that comes even close was the Lord of the Rings trilogy but even that was written a really long time ago (I doubt many people realize that it was originally written in the WW2 era). Are we so focused on the glitz and the glam that we've lost track of the bigger picture?

    I don't know when the hell it was that I got old, but I find myself longing for simpler times; the kind of times that I barely remember.

    2007/02/06

    A Tale of Pastries And Danger

    Unless something terrible happens this month, I'll be building a game (yeah, I decided). Here is a snippet from the design doc:

    3.1: The Story
    You play the part of Thomas Eugene Howard Chuck, otherwise known as T.E.H. Chuck.

    T.E.H. Chuck is Head Cakey Taster at the Intergalactic Cakey Tastes Corporation and has just been asked to oversee the Chocolate Covered Sponge Cake (With Tasty Cream Filling) plant on Alpha Nebulon 3. Alpha Nebulon 3 has a large native population that sustains itself on the very tasty chocolate veins that run through the planet; hence the Chocolate Covered Sponge Cake (With Tasty Cream Filling) plant located there.

    The good news is that since chocolate is available in a mining state in great quantity, that it greatly reduces ICTC’s production costs and allows for a large degree of automation. The bad news is that the indigenous inhabitants of Alpha Nebulon 3 are both extremely hostile and not very happy about the corporation stealing their foodstuffs . Hence, any ICTC personnel found in the field tend to meet a terrible fate.

    The plant on Alpha Nebulon 3 is in a remote area near a particularly rich chocolate deposit but the rest of the planet is undeveloped. Luckily, the surveyors left limited range transporters around in random places that can be used to move back and forth between the survey areas. Not so luckily, ICTC, in a further attempt to reduce costs, had the sentry guard systems in areas around the transporters installed by interns who weren’t very careful. So instead of installing a sentry guard system to protect the loyal employees of the ICTC, they instead ended up installing a veritable obstacle course of deadly disposition that isn’t quite smart enough to pick out human targets to not neutralize.

    On the way to the plant, T.E.H. Chuck crashed his large shiny black sport utility spacecraft on Alpha Nebulon 3 while backing up trying to park. Luckily, the ship crashed a short distance away from the plant. Not so luckily, it was a short distance for a spacecraft which is quite a long distance for a Head Cakey Taster through a dangerous environment filled with hostile creatures who dislike the whole “stealing their food” bit.

    2007/02/04

    Baked Beans; Avocados

    I realize that few of y'all cook...but...

    If you cook and you like baked beans, you should totally go out and get a crock pot and make a batch, right now. Google has a veritable cornucopia of recipes vying for your attention. The batch I got going right now includes maple syrup because, hey, I like maple. I'm almost convinced that if slow cookers didn't end up with food at some point that they'd qualify as bona fide torture devices.

    Also, avocados rule.

    That is all.

    2007/02/02

    1KClub Update

    January started out pretty good but ended up kind of flat. This month's contribution broken down by category:
  • 44 hours: BEER updates

  • 7 hours: GWA updating (to reflect BEER updates)

  • 4 hours: artwork

  • 12 hours: studying advanced topics

  • Total: 67/83.33
    Grade: B-

    That's not so good.

    I could make a bunch of lame excuses but it's not like I didn't kill at least 15 hours in front of the TV instead of doing something productive. I'm going to try to do better this month.

    The good news is that I've finally received my small fortune worth of software. Well, most of it. I hope to be moving to VC2K5 and Photoshop CS2 very soon. I don't know that it will help my productivity (in fact, if I'm honest, I expect it to hurt), but it makes me feel better so that's something.

    For this month, I was planning on doing a game. I should, but I'm on the fence about spending another month refactoring BEER which would certainly be beneficial.

    2007/01/28

    OMGWTFWireless

    I hooked up my wireless again for the first time in roughly 6 years. I have no idea how I lived without it.

    That is all.

    2007/01/27

    Mmm....Paaaaah

    Forgot to upload this last weekend when I made them. These would be no-bake chocolate mousse pie. There's a thin layer of ganache at the bottom and a thick layer of mousse on the top. They were pretty awesome. I just thought I'd share.
    teh awesome

    2007/01/11

    WoW Drama

    I learned today that the group of friends I left behind in WoW who subsequently guilded has broken up. Even though I've been gone for about 3.5 months, I'm still pretty shaken by it all. So suitably, I'm more than a little drunk right now but if/when I gather my thought sufficiently, I'll write up something more meaningful.

    Edit: I've decided against making a follow up post. Maybe sometime in the unforseeable future.

    2007/01/07

    Thousander Club

    The Thousander Club is a challenge issued last year by some of the folks at the Low Poly Coop based on an article on GBGames. Original article here with 2007 followup here. The basics of the article was that you need roughly 10,000 hours over the course of 10 years to achieve basic mastery of a subject. Numbers aside, this doesn't seem unreasonable so long as those putting in the time are actually trying to learn, get better, don't get their brains smooshed by aliens or whatever. So the Thousander Club is a group of people trying to put 1K hours into their choice of things to practice while posting their progress in a public place.

    I ran into this last year and was fascinated by it, but the ups and downs of stuff and the lateness in the year (Octoberish) meant that I wouldn't put up big numbers. I did manage to log 187 hours total from September 14th to December 31st, notably the first day of BEER development and the last day of GWA. So this year I've thrown my hat in the ring with these guys to see what I can do. I expect that this will be a hard year working two jobs and working through a year of crunch so, sadly, I already forecast a pretty major failure to hit 1000. Nonetheless, it'll be an adventure and I'm looking forward to it.

    2007/01/02

    GWA2006 Release

    I ended up not finishing the postmortem until very late and wanted to read it over when not falling asleep. Here are two links that you can use to download the game and/or the docs courtesy of filefront:

    Download gwa_v100.zip from FileFront!
    Download gwa_docs.zip from FileFront!

    The first is just version 1.00 of the game (about 1MB). The second contains the original design doc, the annotated design doc, and the postmortem in MS Word .doc files.

    Excerpts from the postmortem, "Lessons Learned":
    - Reliable and expedient tools are a MUST.
    - Keeping the deadline in mind when evaluating new systems is crucial.
    - Being able to throw features out or rework them is key.
    - Reinventing the wheel is a lost cause.

    January will be off of doing a game; I need some time to finish up some housework and to fix some of the issues of my engine. I expect to try again in February.

    2007/01/01

    Happy New Year

    Welp, another year has come and gone. Here's hoping that y'all had an awesome holiday season this time 'round.

    I know it's a tradition to list your New Year's Resolutions somewhere (like, say, your blog) but I'm not going to. Oh no. Given my past track record for sticking to them (exactly 0.000%), I'm not going to jinx it. Instead, I'll be keeping them private, thanks much, in order that I might actually accomplish some of it. Though, to be painfully honest, they're the same things I've been working toward for a while so it's not like you're missing any huge bold statements or anything.

    For the few people that are wondering how last month's project went, I present the following screen shots:
    I hate writing UIs.

    OMGWTFKABLOOIE!
    If all goes well, I'll be following this post with a download link and more information. Contained within "more information" would be a postmortem of the project selections of which will be posted here. Also therein will be two versions of the design doc, one as designed, and one old version annotated with my notes.