Friday, May 05, 2006

Oblivion

So I haven't been blogging lately, because Oblivion doesn't have that feature. On the plus side, though, I've been leveling completely out of control because I was stupid enough to have Athletics as one of my primary skills.

If you don't know what I'm talking about, consider yourself lucky. As in, your luck attribute is maxed at 100. Because the game is so damned addictive that when you're not playing, you wind up looking outside and thinking "man, that lighting model is really realistic!" before you remember you're not actually playing at that particular moment. And then you get all bummed, because you're not playing Oblivion.

Oblivion is the latest in a series of very long games called "The Elder Scrolls", from Bethesda. It's a single-player first-person RPG, or "Role-Playing Game" for those of you who've lived under a rock for the past 30 years. RPGs are a genre defined by its immersively intense realism. For instance, when you're hurling fireballs at vampires, you can hardly tell them apart from real fireballs and vampires.

Bethesda called this latest incarnation "Oblivion" because it sounded better than "core dump" or "segmentation fault", but it has the same basic connotations. "Oblivion" is where the game sends your Windows sessions, at least if you're unfortunate enough to be running the game on any computer manufactured before the year 2017.

Anyhoo, the frequent crashes are tolerable, because the game lets you save anywhere you want, and you can tell when it's getting ready to crash by watching the frame rate, which goes from frames per second to seconds per frame. The game also has a nice autosave feature, so that when a mountain lion rips your throat out, and you're lying on your back trying to subdue the lion by spurting blood all over it, the game reassures you with: "Autosave successful."

For those of you who played Morrowind, you'll find Oblivion to be comfortingly similar. There are a few differences, of course. One is that Oblivion's countryside is beautiful, whereas Morrowind was a hideous island dominated by volcanoes and disease storms and mud flats and rotting undead zombies, much like a C++ users convention.

In fact, walking around in Oblivion is one of the most appealing aspects of the game. You get so caught up admiring the beautiful flowers and trees and birds and ancient ruins and whatnot that you usually fail to notice the lightning bolt from the imp behind you until it fries the back of your head. Fortunately, you can always revert back to that autosave with the lion.

On the other hand, while Oblivion's scenery has grown breathtakingly lovely, the increased realism hasn't been so kind to the NPCs (Non-Player Characters, for you Rock People) in the game. The graphics have improved to the point where you can now see every last throbbing vein and clogged pore in their wrinkled, hung-over faces. And they all have a nasty habit of standing too close to you when they talk, so you also get an insider's view of their nostrils. Why did they have to make everyone so ugly? It's like the soap-opera director said of Moe the Bartender: "I wanted Mary-Ann-on-Gilligan's-Island ugly, not ugly ugly!"

Plus, in order to achieve the realistic facial expressions during conversations, they evidently had to make all the characters look vaguely alike, as if they all had one parent in common. So they're worse than merely ugly: they're ugly relatives. The game's supposed to be an escape from reality, but at times it feels more like an escape to Arkansas.

But it's cool that they have such realistic facial expressions when they talk to you, so I suppose it's worth it. The NPCs' expressions generally change to match what they're saying. And, just like in real life, the characters will often seem to be staring fixedly at a zit in the middle of your forehead, because yes, you guessed it: you're ugly too. That is, unless you spent a long time customizing your character's face before you started playing, as I did. My wife and I spent well over an hour agonizing over every last detail of my (female) character's face, and she turned out pretty cute. But most of the in-game characters are just plain old fugly.

In addition to painfully realistic characters, the game also has extensive voice acting. Every single interaction with every character in the game is voice-acted, which is truly amazing, at least at first. Eventually it becomes a little annoying because there are only a few voice actors, and you quickly start recognizing their voices. "Oh, it's Mr. Rogers again." "Oh, there's Boris from Snatch again."

And for some reason many of the voice actors, particularly the men, apparently think they're sounding dramatic when they randomly and violently modulate their intonation. In practice, however, when a voice ACTOR does this!?, with UPs and doooowns and lows and *sudden* -HIGHS-, it sounds more like he or she has a choke-chain tied around his or her testicles, and he or she keeps tripping on it.

But really... aside from the frequent crashes and frightfully ugly characters and comical voice acting, the game is just awesome. They do all kinds of things I've never seen in a video game before, and you probably haven't either.

For one thing, the monster AI is exceptionally good. Enemies use all sorts of evasion tactics and generally fight almost as well as human opponents. And they no longer stay in their areas: they'll chase your ass right out of the dungeon and all the way into town. I know this because my character is a "light armor" specialist, which means I get frigging pounded (and I mean *hard*) by everything in the game, including sewer rats. I honestly don't think there would be any detectable difference if I took off all my armor and fought with the nude mod applied. So I specialize in fighting while running backwards at top speed, which generally moves us into a new area where I can attract even more monsters.

The cool thing is that when monsters run outside, they'll fight pretty much anything that moves. If an Imperial Guard is riding by, or some random townsperson, or even another monster, chances are pretty good that the monsters chasing you will suddenly be chasing them. I've even stopped my horse to watch an Imperial Guard romp on a troll. I'd have offered to help, but... you know... I had this, um, excuse.

For the record, Trolls in Oblivion are just green apes. They evidently went through the whole Zoo (I've encountered rats, wolves, bears, and mountain lions outdoors so far), and then at the last minute they decided that trolls are cooler than apes, so they turned 'em green and that was that. It's sort of a sad take on Tolkien, if you ask me. Or Norweigian trolls, which are even further removed from their Oblivious counterparts.

Anyway, as you can clearly see, this is one of my it's-Friday hence let's-get-hammered rants, so I didn't really have much of a point, except to say that if you're not playing Oblivion, then I highly, nay strongly recommend that you don't start, or you'll suddenly develop an aversion to Real Life, and who knows how long it'll last. Probably until you're fired, I'm guessing, at which point Real Life will become at least passingly interesting again, although not in any happy way.

Oblivion is... what can you say? It's a great game. A great, big game. A big, crashy game. Yes. Oblivion is a crashy game. It's a case study in why the world shouldn't be using C++. But in spite of that, they did a great job. As is always the case in the game industry, they spent too much time on the graphics and not enough time on the gameplay — I still think I'll ultimately log far more hours in Nethack than any Bethesda game — but it's still very cool, and I'm having fun with it.

It's not their fault, of course: they have to impress critics in a very short time, during the first conference where the game is demoed. So everyone spends their time making the game look realistic. Fortunately, there really is a game behind Oblivion, and it's a fun one: graphics can't carry a game on their own, no matter what the 12-year-olds might claim on the newsgroups.

You'd think single-player games are on the decline, but MMORPGs haven't figured out that the vast majority of their potential market hates subscriptions, and yet would gladly pay their life savings for cheats and hints and ways to differentiate themselves in the mass of unwashed players. Someday they'll get this, maybe, and the massivey-multiplayer game industry will be based off advertisements and micropayments, the way everything else on the internet is these days. Someday. Maybe.

But also don't forget: single-player games have the distinct advantage that they're, well... single-player. They're all about you. Like my friend Brunson says: when you hear an NPC talking about the exploits of some hero, you know it's about you. You don't have to deal with all the assholes you run into in multiplayer games, and believe you me, I don't use the term "asshole" lightly. MMORPGs bring out the worst in 12-year-olds, or perhaps they bring out the 12-year-old in adults. Whatever. The point is that when you play a single-player game it can have a plot, and you don't have to compete for resources with anyone but yourself, and there are definite plusses there.

I wonder if someday someone will figure out how to combine the best of single-player with the best of (massively) multi-player. Who knows.

Anyway, um, if you don't hear from me for a while, you know where I'll be. Working for my employer on stuff I'm being paid for, of course! Jeez!

Only two more working days 'til Monday... I think I'll go clean out some goblin caves. Know what I mean?

I have the Xbox 360 version but I basically never play that. Actually, I take that back. I played it enough to get out of the initial dungeon, put it down, and haven't picked it back up since. Why? Because I'm never inspired to go turn on the Xbox 360, and when I am, someone else is using the TV.

So my question is, would it be worth getting the PC version? I don't actually have a PC, but I have an intel iMac that runs Windows (in which I play WoW and HL2). I've heard people saying the PC version has marginally better graphics, and I know with a PC game I'd actually play it more, since I don't have to go anywhere to do so (as I'm already in front of my computer). So would it be worth re-buying in PC format?

The Elder Scrolls 3 had the crashing problem too. Obviously programming these games in something more modern would have helped, but could they really have maintained their framerates. (I honestly am curious) The way I see it the big problem with writing a game in a nice garbage collected language is that the garbage collector tends to run in an inconsistant manner. Sometimes it hogs the CPU, sometimes it does nothing, meaning that graphics alternate between jerky and smooth. Are there languages / implementations that have fixed this problem?

There are actually some fairly neat things being done with Java towards gaming now- there have been openGL interfaces to it for a while but people are starting to build useable 3D engines from them. The main thing tying people in the mainstream industry to C++ is that everyone in the mainstream industry uses C++. Ultimately you are going to have to solve the problems of Garbage Collection and the like at some point, no matter what environment you are using and it can save a bunch of time and effort if your system does that for you. There is a worthwhile (and currently quite high signal-to-noise) community over at www.javagaming.org for anyone interested in that field.

I believe Microsoft is doing something similar with C# and managed DirectX but I have less experience with that.

I've been a big fan of the Elder Scrolls series for years and I've found that Oblivion runs passably on an AMD 3000+ processor with a gig of ram and a 128mb 6600gt video card. I had to double my ram from 512 meg because that just wasn't enough and I would think if your pc is any slower than that you would be hard pressed to have much fun with it. I bought my wife a whole lot of new hardware for her birthday, mostly so she could play it. It was an entirely worthwhile investment.

Haha! How nice that you're hooked as I am. And normally i'm not the gamer type, but since i play it together with a friend, i do have more patience.

I'll play the 360 version and despite the missing mouse and keyboard (man, those analog sticks are just not made for first-person stuff) it's playable (and it only crashed once).

BUT: I do have the german version (yuck) and it must be a bug introduced while translating, but the save game system is the worst the world has ever seen! For one, it's not sorted (you always have to search for your files) and gets resorted sometimes! So you know yout save game position, and after the next save it's at a completely different location!! argh?

btw, we started with a gal as well and it was horrible at first, since we experienced the same problems. Always dying because of a bad look. ;) But since we jumped and sneaked our whole Oblivion-life, we're now nearly invisible, are faster than anybody else and can jump really high (to kill the enemies from above)... :D

/* [Peter Schombert]The way I see it the big problem with writing a game in a nice garbage collected language is that the garbage collector tends to run in an inconsistant manner. ... Are there languages / implementations that have fixed this problem?*/

There are several garbage collection schemes out there that are supposed to handle this. Java's hotspot compiler (which is now the free compiler) uses a "train algorithm"

Steve would recommend OCaml, which uses two garbage collection schemes (one for short-lived objects, the other for longer-lived objects).

The saddest part of the story is that C++ does allow garbage collection, and that GCC ships with a good collector turned on by default.

peter schombert said...Obviously programming these games in something more modern would have helped, but could they really have maintained their framerates. (I honestly am curious)

Keep in mind that the effective frame rate has to include, in the FPS ratio, the number of S my computer spends down each hour from having to cold-reboot it. I'd estimate it's about 10 minutes per hour, so the effective frame rate is only 5/6 the advertised one.

As for garbage-collection pauses: the game has huge pauses all the time, and it's not garbage-collected. It frequently has to swap in areas and do all sorts of other management cruft. As long as the pauses aren't letting monsters romp on me, then I don't mind them. I suspect that using a garbage-collected language wouldn't change the play quality at all.

I do all my games programming in Java because I know I'm never going to be pushing the metal with my limited endeavours ( as programmers we like to think we're important to games but the models, animations and artwork are what takes the time, there are hundreds of very capable APIs to do almost anything you want but a well-textured and original model is hard to come by ) and because even if I do manage to crash my JVM I know my entire system won't go with it. That can be very convenient when you're exploring new coding avenues and don't want every mistake to throw your PC to the floor and jump on it.

If you're a bit careful with when you create objects and when you pool them you're very unlikely to have gc related pauses on a modern machine and if you do find they are emerging you can probably design them out if you look at your structure carefully. Its quite possible to program badly or well in any language. You can also get irritating language zealotry for any language* - every now and then Javagaming gets a thread along the lines of this:

newbtroll: U cant program game in java cos it's slow lolz!!!!!1one

regular: It's not, we've had this conversation before and no-one cares.

newbtroll: but its slow lolz! There was a benchmark of doing 1++; a million times! You should use C++

regular: But the site is called called JAVA gaming. It would be stupid if we were all using C++. And anyway there has yet to be a meaningful benchmark for any language.

/* I do all my games programming in Java because I know I'm never going to be pushing the metal with my limited endeavours.*/

I feel somewhat timid posting on this, because while every so often I dream about writing a game, I don't have the kind of team needed to put together a decent one (average number of developers on today's games: 30; average time in development: 2 years; yeah, I think I'll write one by myself on weekends). I used to have a subscription to Game Developer Magazine, but since I wasn't actually writing games I dropped that.

Steve's right to say, "the game has huge pauses all the time. ... It frequently has to swap in areas and do all sorts of other management cruft." Some of the smarter games do that piecemeal, but even then you don't necessarily know where the player's going to go (for that matter, your operating system may pre-emptively load up memory pages that it thinks you'll use, but there's no telling if you'll actually use them).

Stevie's Drunken Blog Rants covered some of how programming for Amazon was different from the programming you study in school. Game programming's apparently diferent from both of those. However, I have a strange feeling that OCaml would be a good tool for some of the math-intensive graphics stuff, if OpenGL and DirectX didn't already own that field.

And, please, realize I *like* C++, although I'm sad to see so many people use it without paying attention to modern development practices (eg., smart pointers or garbage collection instead of new/delete (or even worse, malloc/free), functors instead of function pointers, RAII (which you don't get in Java, and which is on my list for not liking Java; and no, finalizers and finally blocks aren't an improvement), using OOP when it makes sense, and only when it makes sense (my other big reason for not liking Java)).

Please note, I don't like C++ because it's perfect, but from what I can see, it's the best of a bad bunch. Then again, I haven't done much programming in functional languages. I'll admit I'd like OCaml more if it's syntax was more C-like, and I'll admit that's a silly position to take. Then again, I like Perl.

Just taking a break from hunting:-) This is sure one of the most addicting games I have ever played, boy am I glad I don't have much of a life right now! Got it 12 days ago, played for almost 100 hours now without even attempting the main quest, oh the joy!

A friend of mine is playing it on the PC as well and was also complaining about some bugs. The only bug I have encountered on the Xbox 360 is that it claims the disk is unreadable when I play for more than 4 hours straight - time to check email LOL

Is cabochon.com coming back? I wanted to add a link to your slightly too vicious Ancient Languages: Perl rant to Wikipedia's Perl article, in the Related Links subsection of the Con section, but the link is broken. I saved Google's cached version in case Cabochon isn't coming back and you give me permission to republish it somewhere, but it is coming back, isn't it?

I'm Oblivion free now after spending about 235 hours finishing most of the quests (main, faction, etc.). My employer only wishes I could be as productive in the time I spent at work over this period. But, to that I say, work is nowhere near as fun. On my 1 1/2 year old gaming rig from Falcon Northwest, I was surprised it held up as well as it did, only a few crashes to desktop over that massive amount of time. A testament to spending some extra buxx with my fine feathered friends at FNW. And for all the rest of you in Oblivion, it's fun to rail on it a bit, but I'm left in shock and awe, feeling melancholy, thinking back on the things I did in the game. Beth did themselves proud, tip of the hat.

I wound up getting an Xbox 360 after writing this entry -- bought it for $250 from a friend who won it in a drawing. Had the disk drive, wireless controller, the whole works.

Then I bought Oblivion for it. Yep, wound up paying full price twice, but I suppose it's worth it.

It's WAY better on the XBox 360 than on any PC I've seen. That's corroborated by friends with recently-constructed gamer PCs. The XBox 360 is the first device I've owned that can actually drive my plasma TV in HD mode (up to 1080i), so the graphics are astonishing. And the game is very smooth; the pauses are tolerable.

The XBox 360 version of the game DOES still crash at incredibly annoying moments. For instance, it had about a 25% chance of crashing right after you closed an Oblivion Gate, as it was loading the outside world. Ouch. That's a ton of lost work.

However, it crashed at those points so reliably that I just started saving my game right after grabbing the Sigil Stone. And (to their credit), the save games never got corrupted, and always took me back exactly to where I'd saved. So it made it tolerable.

On the 360, the game crashed for me about once or twice a day (not counting the tower-closing crashes). That's loads better than on my PC, where it crashed about once an hour, requiring a painfully long reboot. (The XBox boots pretty fast by comparison.)

In any case, I finally finished the game. There's a ton of stuff I didn't get around to doing, but after having played Morrowind, I knew I would get bored as soon as my character became near-invincible, at high levels. Takes all the challenge (and adrenaline rush) out of the game.

So I got to 25th level (32nd at the very end), pushed through the main quest in about a week, and then quit cold turkey after logging, oh, somewhere around 130 hours. Haven't looked back since then! It was a great game, but rather humorless -- the game takes itself way too seriously. Ironic that they try so hard to be "realistic", but then have vampires and minotaurs and spellcraft. Ah well, that's the general trend for Tolkein-inspired fantasy these days. Fun for a while, and then I escape back to the always-fresh, always-quirky worlds of Anime.