…on Games

Starcraft: The Zerg Campaign

It appears that Andrew Lee has finished the Zerg Campaign in Starcraft. Amusement follows.

Overmind: Greetings underlings. I’m so cool I shit ice-cream. And I’ve got a new toy - this super important mega-death weapon thing that’s currently breeding in a Chrysalis. It’s a big big secret what’s inside but when she pops out, she’ll lay the smackdown on everything! I’m not telling anyone what’s inside the chrysalis so it’ll be a total surprise when she awakens. Also, since hot babe Kerrigan just died in Chapter 1, it can’t possibly be her. And if it is her (which it’s not), it’ll be such a cunning plot twist that you’ll wet yourself.

It’s like totally important that this Chrysalis thing is protected. So, amongst all my legions of creatures, I am going to choose… my most young and inexperienced Cerebrate to protect it.

All the other Cerebrates: Erm… boss… you sure about that?

Overmind: Of course I’m sure! I’m the Overmind! Okay… so little young cutie teacher’s pet newbie Cerebrate, there’s a few things you need to know before you begin your life as protector of the chrysalis… are you ready?

Newbie Cerebrate: Yes boss.

Overmind: Ok. This… is a drone.

All the other Cerebrates: Oh for fuck’s sake.

Overmind: And when you have enough minerals, you can build a Pwning Spool.

Newbie Cerebrate: Minerals… Pwning Spool… Got it.

Cerebrate Daggoth: Things sure are dull now that Overmind is cuddling Newbie over there. Hey Zasz, can I ask you something?

Cerebrate Zasz: Sure Daggoth.

Daggoth: So, we’re like masters of evolution right?

Zasz: Yeah.

Daggoth: So we can evolve from little larvae things to become anything at all right?

Zasz: Yeah.

Daggoth: So, we could look like… I dunno… Jessica Alba… or the Asian chick from Battlestar Gallactica… but instead we look like pulsating grey pieces of shit.

Zasz: Sucks dunnit. Anyway, that’s why Overmind nabbed Kerrigan. He’s been totally getting into Japanese tentantacle porn…

Daggoth: …

Overmind: And then you right click and build a Hydralisk Den. That let’s you build Hydralisks. That’s why it’s called a Hydralisk Den.

Newbie: Hey boss. I’m grateful that you’re taking the time to explain all this to me. But it’s been like 15 levels now and I think I’m ready to do a bit more. How about we push the storyline a bit.

Overmind: Ok. Go kill Terrans.

Newbie: (Kills Terrans)

Overmind: Go kill Protoss.

Newbie: (Kills Protoss)

Overmind: Go kill renegade Zerg.

Newbie: (Kills renegade Zerg) Script writers took a break on this chapter huh?

Overmind: yeah. Go kill more stuff till the Chrysalis thing hatches.

Newbie: Okay.

Raynor: Hey, I’ve been having these wacky dreams… as if Kerrigan were calling out to me. But I know that’s impossible because she died in Chapter 1.

Zerg Kerrigan: Hi everyone! I’m back. It was me in the Chrysalis. How cool and unexpected was that!

Everyone with IQ over 7: Shit me a brick! We all just wet ourselves!

Raynor: Oh my God. Sarah! What have they done to you?

Zerg Kerrigan: I’m a Zerg now. (wins Most Obvious Statement award)

Raynor: Well, I’ve still got a hard-on for you. So…are we going to bonk or are you going to kill me?

Zerg Kerrigan: Well, I want to kill you. But some strange lingering emotion inside me compels me to let you go. Some emotion stronger than any Zerg power over me. I… I don’t know what it could be. Leave Jimmy. Leave now.. before it’s too late. Must… control… (but how about we get together in the expansion set)

Raynor: Ok. Bye.

Zeratul: I’m an invisible Dark Templar Protoss. No one can see me and I’ve got this cool Jedi Lightsabre! I’m hunting Cerebrates… Charrge! (kills Zasz)

Zasz: Arrrggh (dies)

Overmind: Shame about Zasz. But when Zertaul shoved his light sabre up Zasz’s ass, I connected with Zertaul’s mind and now I know where the Protoss Homeworld is! Suck that Zeratul.

Zertaul: Bugger. (runs away)

Overmind: Cool, let’s go invade the Protoss Homeworld. The most important thing there is the Khaldarin Crystals, the source of all power!!! Since this is the most important thing ever after protecting the Chrysalis, I’m going to pick the Newbie Cerebrate again to take control of all my forces. Newbie, go to the Protoss Homeworld, steal the crystals and then kill all the Protoss there.

Newbie: Hey big boss, can I ask you a few questions?

Overmind: Of course my little cupcake:

Newbie: Well firstly, in Chapter 1, Mensk and Kerrigan turned on that one Psi-emitter rubics cube and “Zerg from across the galaxy” were lured to it. So how is it that the Protoss Homeworld, filled with 10 billion Psychic Protoss, is completely invisible to us?

Overmind: Err…

Newbie: And then there’s this thing about the Khaldarin Crystals. We only just found out about the Protoss Homeworld five minutes ago when Zeratul shoved his sabre up Zasz’s ass and you looked into his mind…so how is it that we know all about the Crystals and exactly where they are, so much so that we’ve set up a big friggin’ Neon Lit beacon over the beacon saying “BRING DRONE HERE”. But the Protoss, who have lived on the planet since forever AND who have a special upgrade called “Khaldarin Amulet”, don’t have a clue about the Crystals?

Overmind: Shut the fuck up. Now, go steal the crystals. Just look for the beacon.

Newbie: Yes boss. (steals the Crystals)

Overmind: Now do the Crystal Thing… and I can plant my fat ass down on the Protoss Homeworld. YEAH!

Comments

On D&D and C++

Quoteth Manuel Chakravarty:

Dungeons and Dragons is the C++ of role-playing games.

Comments

Starcraft: The Terran Campaign

One o’ me good mates, sent me an email recently with a rather chortle-worthy summary of the HumanTerran plot of Starcraft I. Without further ado:

Raynor: Oh shit, nasty alien things with big teeth. Let’s put our faith in the supremely experienced commander who will save us (after I teach him how to build a command center, barracks and use the ‘repair’ button).
 
Zergling: Grrrrowl! Yummm!

Raynor: (shoots gun from his cool looking vulture bike)

Zergling: Gah! (dies)

Duke: Raynor. You’re a bad bad man. Why did you kill that cute little Zergling?

Raynor: It tried to eat me.

Duke: Well, tough. You should’ve asked me permission first because I’m the big boss of the Confedration and on one can take a shit unless I say so. Off to prison with you!

Raynor: Help! Get me outa here!

Mengsk: I’ll help! (opens the door) Hi. I’ve got this terrorist label but actually I’m a nice guy. The Confederation are the REAL baddies. Just to prove it, let me introduce you to my hot babe assistant. Remember, only good guys have hot babe assistants.

Kerrigan: Hi!

Raynor: …

Kerrigan: Wha! you perv!
 
Raynor: Huh what? How did you you know that I was thinking about having hot monkey sex with you up against the side of my bike whilst wearing a ballerina’s tutu?
 
Mengsk: She’s a telepath.

Kerrigan: Well, yes. And you’re staring at my tits.

Duke: Erm… fellas? Sorry to bother you… my ship sorta crashed in the middle of all these Zerg and they want to eat me. 
 
Raynor: Suck ass!
 
Mengsk: I’ll save you.
 
Raynor: WHAT!?!?
 
Mengsk: Well… Raynor will save you.
 
Raynow: WHAT!?!?! Oh… ok. (saves Duke)
 
Duke: Mengsk? YOU! I hate you with the white hot intensity of a thousand suns. I teach children to eat the liver of your dogs. You are a blight on all humanity and the scourge of the universe. The Confederation will never rest until we destroy you entirely!
 
Mengsk: Join me!

Duke: Ok.

Mengsk: Cool… Duke, what’s say you and I go kill all your former buddies in the Confederation.
 
Duke: Ok.
 
Raynor: uh… what about the Zerg?

Mengsk: No no. Much more important to kill Confederates.
 
Raynor / Kerrigan: uh… why?
 
Mengsk: Just do as you’re told.
 
Tassadar: Hey guys. We Protoss honour, respect and revere all sentient life. Therefore, we’re going to incinerate your planet. 
 
Mengsk: Oh shit. That means we don’t get to kill Confederates. Kerrigan, go kill the Protoss so that I can use this Psi-transmitter gadget to lure Zerg to kill Confederates. 
 
Kerrigan / Raynor: Erm… is this making any sense?

Kerrigan: I must do as I’m told because I’m a hot babe assistant. Ok, off I go to kill Protoss and lure Zerg and plant this Psi thingy.

Zerg Overmind: Who’s the hot chick in the catsuit. She’d look even cooler with green blood. I”m going to infest her… this will be fun. (infests Kerrigan) (Then Zerg go on to kill all Confederates)

Mengsk: YAY! All the Confederates died!

Raynor: You suck Mengsk. You too Duke. I’m leaving and coming back in a later chapter filled with vengenace to whomp your sorry asses. I’ll probably fall in love with Kerrigan since I’m the obvious hero and she’s the obvious heroine, but she’s infested with Zerg blood now… but I’ll use love to reach into the depths of her heart and rescue her and turn her back to the light side.

Andrew, please finish the Zerg and Protoss campaigns soon; we’d love to hear more.

Comments

Goodbye, World

Yeah. So the other day, I walk into my local AppleCentre to buy myself a nice new STM bag. Of course, since I’m there pretty much every third hour of the day…

  • Me: “Can I have myself an André discount at all?”
  • Manager: “Hmmm… well, normally I would, but I can’t do that today. How about I throw in a free copy of World of Warcraft? Yes, that sounds like an excellent idea…”

Nooooooooooooooooooooo! Tom, I officially hate you. Do you know how long I’ve been trying to avoid playing this frigtard game? Goodbye sunshine, it’s been nice knowing you. If I don’t reply to any emails from now on, I’m either dead, or I’m playing this bloody MMORPG that I’ve been avoiding so successfully up until now. Bye all!

Comments

Next-Generation PC Games for 2007

I know that the Wii is all the rage right now (rightly so, too!), but some of the more “traditional” games that are coming out next year still look nothing short of stunning.

Sample the HD trailers of:

  • Mass Effect (developed by BioWare). The immersion resulting from the new dialog system just looks incredible. Having just finished Neverwinter Nights 2, I reinstalled Neverwinter Nights 1 again to see how it stacks up. It is amazing just how much more immersion the full-screen style cutscenes provides vs the NWN1-style textbox-in-upper-left-corner. (The fullscreen cutscenes being the same deal as those in Knights of the Old Republic I and II). Mass Effect raises the bar again with its immersive dialog system: it looks like it’s going to absolutely blow everything out of the water when it comes to character interaction in games.

    The tactical squad-based combat looks pretty cool, too: it looks like BioWare are taking some of the tactical aspects of D&D-style combats over to an FPS game. (No, really, D&D does have some tactical combat. Putting Mages In the Back and Fighters At The Front takes lots of brains, I tell you.)

  • BioShock (developed by Irrational: the X06 and Developer Walkthrough HD trailers are both great, although be warned that both of them really are mature content). Man oh man, Irrational were spot-on when they claimed that BioShock will be the spiritual successor to System Shock 2. It’s clearly Shock 2-influenced to the nth degree: the splicers in BioShock highly resemble the deadly Cyborg Assassins in Shock 2, for example. However, BioShock looks even more disturbing than its predecessor, more moralistic, and scary as all hell. Having mere monkeys and protocol droids scaring the crap out of you in Shock 2 was bad enough, but with Big Daddies running around in BioShock, I wonder if I’ll actually be able to play this game at night at all. The water effects, 1950s influence and mature target audience make for an atmosphere that will leave even Shock 2 for dead.

With Jade Empire PC, Command & Conquer 3, and Unreal Tournament 2007 coming out next year, 2007 is looking like a pretty tasty gaming year indeed for those of us who are stubbornly staying off console games.

Comments

Neverwinter Nights 2 Is Here

Well, it seems that Neverwinter Nights 2, Obsidian1’s next kick-ass roll-playing game, is out in the USA. Unfortunately, it’s been delayed in Australia until November the 16th. Whaaaa? That’s… like… next year! Muaahaha, thankfully I’ve managed to wrangle some contacts and download the thing from Direct2Drive, so I’ve been gleefully playing it for the past few nights. Well, OK, make that the past few days, nights, and early mornings…

First impressions are good, although the game engine isn’t particularly medal-worthy: Obsidian could use some better game engines programmers, that’s for sure. It’s not in the same league as Oblivion, for instance. The user interface also isn’t quite up to NWN1 standards. However, the spell effects do look very pretty, and more importantly, the story looks quite promising, and possesses the same moral and ethical ambiguity that is the hallmark of Obsidian games. None of this bozo so-obvious black-and-white good-vs-evil crap. (Mind you, I’m playing a slightly evil character at the moment — slaughtering the Neverwinter City Watch might be somewhat evil… but it is so much fun. Besides, the Watch is weak and not doing its job, so I don’t see anything wrong with the Thieves’ Guild controlling the city streets since they actually have the resources to maintain peace and order better than the Watch. Just ensure the local shop keepers pay their taxes to the Guild and everyone’s happy… )

It also looks like an even more hackable game than the original NWN, although I’m unhappy with the toolset using the same dock-o-rama type of user interface that Visual Studio is famous for. Dockable windows are OK, but I still think it’s far inferior to using multiple windows and a decent window management tool such as Exposé. Still, it took me about 30 minutes to write some small chea… uhh, scripts, to help with some in-game things.

So far I’ve probably pumped about 20 to 30 hours into the game, and I think I’m about 3/4 of the way through Chapter One, with there being three chapters in total. If I don’t reply to any emails for the week or two, uhhh, I guess you know what I’ll be doing!

1 Obsidian are makers of the best computer role-playing games in existence, end of story. (None of this World of Warcraft or Final Fantasy VII crap, thank you very much.) If you disagree with me on this, that’s OK, I’m not really into Pokemon anyway.

Comments

USB Numeric Keypad

If you didn’t know, you can use the numeric keypad to select options that appear on the radial menu (that appears when you, for example, right-click on your character). Of course, the numeric keypad is in an inconvenient spot: most gamers have their left hand resting on the left-hand side of the keyboard on the Quake-inspired W/A/S/D keys, not on the right-hand side where the numeric keypad is. On laptops, it’s in an even more inconvenient spot—like, it doesn’t exist and stuff. D’oh.

If you’re willing to fork out a bit of dough for a game, drop $50 on a USB numeric keypad, and put that to the left of your keyboard. Your enjoyment of Neverwinter will go up dramatically. It’s also useful for Alpha Centauri if you’re a laptop person :-).

Comments

Disable the Splash Screens (Introduction Movies)

Add the line:

Disable Intro Movie=1

to the [Display Options] section of the nwn.ini file in your Neverwinter Nights directory. (This tip’s fairly widely known: it’s described in the NWVault FAQ, and it’s also a topic in the BioWare NWN forums. I mostly have it here for my own reference.)

Comments

Suggested Neverwinter Nights Additions

Hakpacks

Note that all hakpacks can be used in any modules—including the standard BioWare campaigns—by extracting the data in them and putting their data files into NWN’s override\ directory. In fact, that’s what I do with all the hakpacks listed below.

Comments

Use HakPaks in the Standard Campaigns

If you extract the files from a .hak pack and place those extracted files in Neverwinter Night’s override directory, you can use that hakpack in any of the standard BioWare campaigns (with the usual disclaimer that hakpacks may break stuff, you will actually need to put in new merchants to use any of the new items, etc.) This is very useful for non-intrusive hak-pack changes, like the jiggly hi-poly human torsos models.

You can use tools like NWN Explorer or NWN Viewer to extract the files from a .hak pack.

Comments

NWScript Dissassembly

After Neverwinter Nights just came out, I started dissembling the NWScript bytecode that it uses internally for its game engine, with the intention of writing a command-line script compiler some day. I since stopped work on it since I had a few other things to do. It seems that the great Torlack (who now works at BioWare) beat me to it, but I thought I’d put up my results for download anyway. For budding dissasemblers (like myself :-), I’ve also put up all the scripts I used to try to figure out the bytecode, which may be more important than the bytecode itself for some people.

Note that BioWare provides their own command-line compiler now anyway, if you have a version more recent than 1.40 or something like that—see utils\clcompile.exe.

I find it interesting that BioWare chose their own scripting format for NWN considering that they used the very flexible and extensible Lua for Baldur’s Gate I/II (which is also used in a number of other games; in fact, one of the Monkey Island games had a bar named Lua as a dedication to the Lua community for their great efforts). While NWScript is OK as a language, I certainly wonder why they didn’t stick with Lua …

Anyhoo, feel free to download the results of my peeking and poking.

Comments

Auto-Save Every 5 Minutes!

Play in multiplayer all the time, even if you’re just playing single-player mode—and turn on the auto-save option and set it to save every 5 minutes or so. That’s saved my arse a few times now!

Comments

Session 2 Summary

Babylon Campaign Summary for Session 2 (18/3/2003)

by André Pang

The last session ended with our five valiant heroes mercenaries fighting to earn a place in the Thel’s Warriors, and they greatly impressed Thel and XXX by ripping their opponents to shreds whilst also smelling like minty freshness.

Thel Achila congratulated Amber and the party after the fight, and told them more about the Thel’s Warriors. She informed them that wounds suffered by any of the stable’s fighters are tended to by their healer named Papparasmus, a man not particularly known for his social skills, but was nevertheless good at what he does. Thel also mentioned that she was now in retirement because of the “Ankheg incident” —- several of her fighters were gored to death in an unpleasant manner in an ankheg pit during one of the fights. In fact, apart from the Ankheg incident, many of her warriors were dying during the middle of a fight in the veins; they would mysteriously keel over with no signs of warning. In particular, her greatest gladiator, a shambling mound who went by the name “The Golden Shambler”, died in this fashion. Thel wants the party to find out who or what is responsible for killing all her gladiators, and is offering a 1000 gp bounty to solve this puzzle. Thel suspects that a rival stable, the Sandnets, may have something to do with the deaths. Led by Vulpone Sandnet, a hulking minotaur who savagely cuts down almost all opposition, the Sandnets have never been on the best of terms with Thel’s Warriors. However, our heroes’ first intuition was to follow up on the strange minty smell that Torr picked up in the battle to prove themselves to Thel. Thel mentioned that Flug, the arena janitor, uses some cleaning fluid which may have been a bit minty.

After their conversation with Thel, the crew of five descended beneath the gladiatorial arena: the Underveins. The Underveins, featured on a very cool Dragon® map, was home to Papparasmus the healer. Papparasmus was about as pleasant to deal with as everybody suggested: that is, not very. He did do his job though, and healed everybody back up to their optimal health. One thing that our heroes managed to get out of Papparasmus was a name: Tiberius, apparently a master healer and cleric who was responsible for raising the dead.

The heroes then went to visit Thel again; upon asking Thel about Tiberius, Thel became defensive and refused to talk to the heroes about “her father”. Instead, she laid down the rules of gladiatorial combat in the Veins:

  1. No magical “buffs” before a match; e.g. no Mage Armour, no Protection From Normal Missiles and Other Pointy Things. It’s perfectly okay to cast those spells once you’ve started combat, though.
  2. There’s a 50gp entrance fee for each fight, and the 1st such fee is paid for by Thel. This fee can also be waived if you’re particularly (in)famous.
  3. One can take “raise dead insurance”, which costs (50gp + 10 * your fame score). Once you’ve taken the insurance, if you fall in combat, you will be raised for the mere price paid for the insurance.
  4. If you have no “raise dead insurance”, it costs 200gp to raise you lest you be decapitated, arrowed, sworded, or otherwise burninated (to the countryside).
  5. Winning a gladiatorial battle nets (50gp + 2 * your fame score). XXX: This doesn’t seem like much, given that the entrance fee takes 50gp out of that. Andrew?
  6. Good performance in battle and/or good crowd entertainment nets a gladiator more fame.
  7. A gladiator may appeal to the crowd with either a Charisma check or a skill check (DM determines difficulty), at their choice.
  8. Inflicting massive damage, such as one would expect from a critical hit from a scythe, increases a gladiator’s fame.
  9. Performing a Fatality to kill your foe(s) increases your fame.
  10. Having “spice” in a battle (and presumably winning that battle) increases your fame. “Spice” can be a number of things, such as having an ankheg pit present, a random basilisk peacefully wandering around the arena, or random landmines.
  11. Doing “cool things” in combat increases your fame, where “cool things” is subject to interpretation by Mr. Dungeon Master.
  12. To perform a Fatality, a gladiator must kill an opponent with a critical hit, or must kill an opponent with a -6 penalty to their attack roll.
  13. Once you hit 0 hitpoints in the arena, you’re gone. Dead. Burninated.

Armed with this valuable information, our astute heroes then took a one week break, with 45gp spending money courtesy of Thel, to prepare themselves before their first battle. The group separated for the week, and each mercenary had their own story to tell.

Kane and Arjanne were visited by the PsiCore: darkly-dressed people with scary-looking hoods. Fascinatingly, neither of the two could tell whether the PsiCore members were actually male or female. In fact, the PsiCore look quite … inhuman. They were taken to some sort of temple where they met the PsiCore leader, another average-looking PsiCore members who told the two psions to “side with them when the time comes”. After agreeing because they didn’t see much choice (being surrounded by about 50 PsiCore members at the time), they were escorted out of the temple and were immediately met in by other mysterious men, dressed in white, claiming to be part of a group called the “Freeminders”. The Freeminders, like the PsiCore tempted the two champions to join their side when the time came, and also said that the PsiCore were “corrupters”. Of course, since they were wearing white, Arjanne and Kane dismissed them as being pansies. Mind flayers The PsiCore are obviously much more fun to be allies with.

Amber couldn’t sleep for the week. Her sleep was being haunted with nightmares of ghosts, who kept telling her to “open the door”. When confused little Amber asked what-the-hell-door they were talking about, the “Earthbound” ghosts simply stated “There is only one door. Don’t you understand?” Obviously, Amber didn’t —- at least, not for now …

Our favourite drunken monk, Grasshopper, decided to talk to Rifius, the little boy with the large golden belt. Rifius ran an errand for Grasshopper and managed to get a jar of the cleaning fluid that Flug used to clean the arena; unfortunately, Grasshopper’s keen sense of vapours didn’t detect any minty freshness in the fluid. Grasshopper also met another girl in Thel’s Warriors named Stiletto, who at the moment seemed to be what meta-gamers call a “standard NPC”, but will no doubt turn out to be significant later on in the campaign a nice young lass. Grasshopper gained a fame point from saying Hi to the ladies, and also learnt that the commons hold a “Blood Bowl League” —- this week’s game was between Super Nashwan (of Xenon II fame) and Brutal Deluxe (of Speedball II fame), and it was looking like a good one. Bets are welcome!

Torr met a fellow named Mountain Musso who had some kind of “angry potion”, fought him in a wrestling match for it, and promptly lost. Stupid Torr.

After the one-week break taken by the heroes, they were approached by none other than Tiberius Achila. He looked like a very streetwise old man, and claimed that Thel was a criminal, and “stolen from Nathaniel” (whatever that means). Tiberius also warned the heroes that he’d be coming to take half of their arena winnings, and if the heroes refused, they’d be in for all sorts of trouble.

The leaderless heroes now needed a leader for their combat group, named “The Jackson Bitches” (with a 3-2 majority vote, thank you, drive through). In order to determine who would be their fearless leader, they diplomatically beat each other senseless until one was left standing. Of course, the Cleric won that fight (thanks in no small part to a small glowing celestial doggy); Amber now leads Torr, Grasshopper, Kane and Arjanne in their search for monsters to kill and stuff to take. Each of the heroes earned 200 XP in the gladiatorial challenge.

At this stage, the heroes relaxed for one more day before their first fight. In the day, they could visit the markets to buy some new equipment, or speak to Thel, Papparasmus or Flug about their investigation. At the end of the day, the heroes could then go to the Bloodbowl match to watch lots of humies beat the living crap out of each other. Hooray!

Most of the heroes decided to go to the markets, except for The Monk (XXX: is this correct?) Grasshopper talked to Thel and told her that the cleaning fluid wasn’t minty. Thel basically said “ahuh” in response to this. Upon asking Thel about her father Tiberius, Thel claimed that Tiberius and her were no longer blood relatives.

At the Bloodbowl stadium, our heroes learnt that the Orcland Raiders won last year, and in this match, the odds were 3 to 1 for Super Nashwan vs Brutal Deluxe. Brutal Deluxe ended up winning (XXX: is this right?); as a result, Kane lost 7gp, Arjanne lost 10gp, Amber won 12gp, Torr lost 10gp (stupid Torr), and Grasshopper lost 66.6666 silver pieces.

At this stage, life was suspended in the Babylon universe, and mundane daily life returned.

Comments

Character Sheets

Here are some character record sheets for use with the Babylon campaign:

Comments

Fixing Corrupted Modules

Introduction

One of the very irritating downsides to the Aurora Toolkit is that it has a nasty habit of corrupting modules:

Uh oh.

Virtually none of us have the discipline to keep backups of the last 10 saves of the module in case the latest one becomes corrupted, which means that we can lose hours of work. (Some unfortunates have probably lost hundreds of hours of work thanks to these corruption bugs.)

There was a “sticky” thread on the BioWare boards about how to recover these corrupted modules, which involved messing around with the temporary directories that the Toolset creates, but that was a bit too hacky for my liking. So here’s another method to recover them.

Recovering Corrupted Modules with NWNViewer and NWNPacker

You’ll need Zoligato’s NWNViewer, an invaluable program for NWN hackers. The NWNViewer application actually has the NWNPacker program inside it, so there’s no separate download for NWNPacker.

Here’s the procedure:

  • Use the “File menu -> MOD HAK ERF Open” command to open your corrupted module
  • Right-click on any name inside the “File List” pane (the left-hand-side of the NWNViewer application) and pick “Extract ALL” from the context menu
  • Extract all files to a Directory Of Your Choice
  • Start NWNPacker by going to the “File menu -> NWN Packer”

Here’s the fun bit: the “File” menu is completely irrelevant to the NWNPacker application. Everything in NWNPacker is controlled by the icons in the NWNPacker window. So …

  • Click on the “New Document” icon (the piece of paper with the folded corner) inside the NWNPacker window, and select the “New MOD” menu entry. (You can’t go to “File menu -> New -> New MOD” to create a new MOD file, because there is no “File menu -> New” menu entry!) The directory browser inside the NWNPacker window should now allow you to navigate directories and add files to the left pane.
  • Add all the files which you previously extracted to your new module, by dragging them from the file selection window in the bottom-right to the list of files in the module in the bottom-left.
  • Use the disk icon in the NWNPacker window to save your new module.

At this point, your module should be openable (is that a word?) in the toolset.

  • Open your new module up in the toolset, and delete any invalid resources in it. If you’re lucky, the Toolset won’t give you those fun “invalid pointer” error messages as you’re doing this. Save this new module as your final module, and you should be able to continue work from there.

Optionally:

  • If you’re paranoid (like moi), you may want to then open up your final module and repeat the process with NWNViewer/NWNPacker, to make 100% sure that the module file is packed properly.

I’d add screenshots to this to make it more understandable, but hey, I’m lazy. If you care enough about recovering your corrupted module to email me about it but can’t understand this procedure, email me so I can put up some screenshots for you.

Possible Explanations for Corruption

If you try to open up your corrupted module in NWNPacker (instead of NWNViewer), it will complain about insufficient memory. My intuitive guess is that one of the length fields for the resources inside the module is wrong, which would also explain the invalid pointer operations performed by the toolkit.

NWNViewer appears to be more robust than NWNPacker and the toolkit, and seems to deal with such corruption better.

Have the appropriate amount of fun.

Comments

Barkskin VFX Removal

The Barkskin, Stoneskin and Greater Stoneskin spells are all great, except that they make your character look like a brown or stone-like object. I dunno about you, but I prefer staring at a character which doesn’t look like a tree.

So, I modified the “skin” spells to use the visual effect used by the “Premonition” spell. The actual spell effects don’t change, of course, just the visual effect that appears on your character.

Download:

Extract this file to the directory where you installed Neverwinter Nights, and you should end up with a few new files in your override directory. Have fun oogling at your character.

Note: This is for NWN HoTU 1.61. Untested on other versions.

Comments

Subraces and ECLs

Neverwinter Nights has all the standard 3E races: Humans, Dwarves, Elves, Half-Elves, Gnomes, Halflings, and Half-Orcs. (I do wonder who at WoTC decided that half-orcs should be a core race; whether this is a good or bad thing is left as an exercise to the reader.)

However, NWN doesn’t implement any of the additional races found in the Forgotten Realms sourcebook, which you might’ve expected, since Icewind Dale (II) does. In case you have no idea what I’m talking about, the Forgotten Realms sourcebook adds quite a number of player character (PC) races, including Sun Elves, Gold Dwarves, Tieflings, Genasi, and the infamous Drow.

So, here’s to extending NWN to support those new races.

Download

(n.b. These files aren’t really meant for public consumption yet. Do. Not. Expect. Them. To. Work!)

Grab the above file and unzip it to your modules directory. This module allows you to pick a non-standard race.

Unzip all the files in the ECLs.zip archive to your override directory. This will implement proper ECL support.

Comments

Neverwinter Nights First Impressions

The one-word summary? Wow.

I’ve read many reviews on this game, and I was in slight disbelief as review after review refused to rate this game at any less than 90%. Now that I’ve got my hands on it though, I know why.

Keep in mind that this is a first impression. It’s not an extensive review, and no doubt my opinion of the game will go down as I encounter bugs, or realise that the single-player plot is about as boring as Baldur’s Gate. However, BioWare looks like they really have done what no other company has ever done before: taken the D&D concepts (not just the rules), and faithfully implemented them as a computer RPG.

They got 3E right

For hardcore D&D players, NWN is everything that you’ve been waiting for in a computerised version of D&D. It’s not perfect, but it’s so good that you just won’t care about the insignificant shortcomings.

Part of the reason that it’s so good is simply because it’s the very first game to use the 3E mechanics: it’s the same D&D that we know and love (or hate), and it’s a huge improvement over the 2nd edition rules that previous D&D games used. Yes, you can multi-class in this. Yes, every feat that’s in the Player’s Handbook is in the game, and they’re all implemented perfectly.

Sure, some bits were changed around to suit the nature of CRPGs better; for instance, the Rogue’s “Disable Device” skill has been split up into “Disable Trap” and “Set Trap”. But those changes are small, and they’re Done Right.

But really, for all intents and purposes, this game is 3rd edition Dungeons & Dragons. Perhaps this won’t dawn on you until you see all the skills and feats that you can choose at your character generation, but this in itself makes the game worthy of buying. The amount of attention paid by Bioware to implementing every single last detail in 3E is truly staggering; if they got nothing else right about this game, I wouldn’t care. The 3E implementation is just so good that any hardcore D&D fan would be impressed with it. (Hey, if Ryan Dancey’s happy with it, it has to be That Good).

So what didn’t they quite get right with the 3E rules? It’s not extensible enough. You can’t add new feats, for instance. If you want to create a new weapon model, you’re going to need 3DSmax. But before you sneer, the Aurora engine which Neverwinter Nights uses is extensible enough that you can simulate everything that you’d ever want in a computer RPG just by using various types of items.

And on that note, let’s talk a bit about the Aurora toolkit.

The Aurora Toolkit

Forget everything you know about level editors, map editors, and anything else related to modding games. The Aurora thing is so usable and so friendly that it makes creating basic modules fun, and not a chore.

There’s a little bit to learn, but considering the worlds that you can craft with this thing, there’s very little to learn. Put it this way: the section on the toolkit in the manual is less than 20 pages long. The toolkit’s interface is so good that it just makes creating modules trivial.

For instance, take the conversation editor. You can add new dialogues for NPCs by using this tool. You click the ‘Add’ button and type in “Greetings! What’s two plus two?”; the toolkit automatically tags that message as being spoken by the NPC. You click ‘Add’ again and type in “1” as a possible response, and the toolkit immediately tags that as being spoken by the player’s character.

If you want to add more things that the player character can say, just click on the “Greetings” message, click ‘Add’ again, and type in “2”. This can send the player down a completely new conversation path, which implies that it might be complex to handle. Not at all; the conversation’s represented as a simple tree, which makes it trivial to insert new conversation items.

As I said before, the core engine doesn’t let you expand feats or races. Is that a big oversight? No. You can simulate almost of these things by using items which grant the characters whatever abilities you wish.

For example, I was disappointed that I couldn’t play an Aasimar, one of the standard Forgotten Realms races. So, using the half-elf template, you can give the character an invisible, intangible item called a “skin” which grants her those Aasimar qualities. Change your subrace name to “Aasimar”, and bingo, you’re an Aasimar. You just added a new race.

So while the game engine doesn’t allow the extension of some core 3E ideas such as classes and feats, you can do a lot with the toolkit. I imagine that implementing prestige classes and new feat-like things won’t be out of the question at all. Of course, you can create new items, weapons, armour, magical staves, rods and spoons with ease.

So, the toolkit makes doing all the standard things easy. Of course, if you want to do wacky stuff, the Aurora engine is driven by a programming language called NWScript which you can write stuff in. Don’t be mistaken —- this isn’t a play-language. From what I understand, it’s fully OO, and gives you full access to the internals of the game engine.

What’s even better than that is that Bioware realised how powerful NWScript is, and provide you with a script editor right in the toolkit. No more whipping out that sorry-ass excuse for a text editor (notepad.exe) to change things around; all your development tools are in the toolkit. Effectively, it’s a small IDE (integrated development environment): the toolkit can edit scripts, debug them and compile them. This makes things so much more accessible than fooling around with two dozen text files. (Civilisation, anyone?)

If you’re a DM and have never done programming before, well, now’s a good time to learn. The toolkit is so good that you could use it as a basis to build a module that you wanted to play in table-top RPGs. That’s really cool.

The network effect

Now we get into romantic territory. Fasten your seatbelts!

By itself, the flawless implementation of the rules doesn’t mean all that much. By itself, an easy-to-use toolkit doesn’t imply that much. By itself, the DM client, which allows you to dungeon master a module that you’ve created, isn’t a big deal.

However, combine these three things, and the effect is exponential: I kid you not, this thing is a truly viable alternative to tabletop RPGing.

Read that again, just in case it hasn’t hit you yet. NWN could drain away as much of your time as regular D&D does, or perhaps even more. (Although in the case of our current gaming group, draining more time than our D&D sessions isn’t all that hard :).

I’m not saying that it should replace tabletop RPGing, or dethrone it as the RPG method of choice. I’m saying that’s NWN is an alternative to tabletop RPGs; it’s an alternative because it offers a completely different experience to tabletop RPGing.

Computer RPGs vs tabletop RPGs

Let’s get something straight, first: computer RPGs will never be able to compete with tabletop RPGs. They never have, they never will.

However, now that NWN has been released, something has emerged which I thought never happen: computer RPGs now offer something which table-top RPGs don’t, and never will be able to: the feeling of being immersed in a computer game created by friends. The graphics detail in NWN is good enough that just seeing the environment makes for a completely different experience from conventional RPGs; the fact that you will play your DM’s module just like any other computer game also makes for something different.

If you’re a DM, you can prep the entire module before the session starts, watch your players walk through the world, talk to them as you would over a table, and then watch with glee as that pretty NPC they picked up is actually a succubus and teleports them to hell. You get to see all that in vivid graphical detail, in a campaign you wrote, on a computer game that your players are playing, and you’re watching them do this as they’re playing*.

Think about that for a second. Come back and read the rest of this when you’re done.

Thought about it? Good. Now imagine that you can have multiple DMs controlling a session. This is unfeasible in real-life RPGs, but it’s actually recommended for NWN. You can have a DM/PC ratio of 1:1; for every PC, there’s a DM. DMs can control NPCs to say exactly what they want, and the human players on the other end will just think it’s all part of a computer game.

That staggers me.

So, first impressions of NWN? Awesome. If you’re a D&D player, buy this thing. Right freaking now! (And I mean buy, not pirate.) If you’ve got the computer to run it, it will provide you with as much joy as any D&D book does, and at least from my point of view, that’s possibly the highest accolade that I could ever award to a computer game.

Comments

Implementing Subraces and ECLs

There are two big problems with putting new PC races into NWN: implementing the racial traits, and implementing Effective Character Levels (ECLs). At first glance, it seems that implementing racial traits can’t be too hard (hey, BioWare even provided a custom “subrace” option for your PC!), and ECLs are much harder. Experience has shown, however, that it’s the other way around.

Racial Traits

Each race has a bunch of unique traits; for example, Aasimars have a +2 ability modifier to both Wisdom and Charisma. They can also cast the Light spell once per day, and have a few energy resistances (e.g. 5/- for electrical). How do you implement these?

The method done by all the modules I’ve seen give the character a skin. Skins are normally only given to monsters, but there’s no reason you can give them to a player. Think of a skin as an invisible, intangible item which the player possesses, but can’t access in her inventory (so she can’t drop it or trade it to other players). The skin can then have the properties usually associated with magical items, to simulate the racial traits: e.g. an Aasimar Skin would grant them +2 to Wisdom and Charisma.

However, there is one large problem with this: ability modifications are not part of the character herself. Some things in NWN, such as feat prerequisites, are based solely on the character’s real, permanent ability score, and do not take into account the ability modifier given by the skin. The full list of things which use the character’s unmodified ability scores are:

  • Feat prerequisites. e.g. if you have a Str of 12 and a skin which gives you a +2 Str adjustment, you should be able to access the Cleave feat, which requires a minimum of 12 Str. You can’t.
  • Spellcaster levels. A Druid or Cleric with 17 Wis and a skin which grants a +2 Wis adjustment will still only be able to access level 7 spells. The same applies for Sorcerers and Bards with the Charisma ability, and for Wizards with Intelligence.
  • Intelligence modifier for bonus skills. A character with an Int score of 10 and a skin which grants a +2 Int adjustment should receive 1 bonus skill point per level, but instead receives no bonus.

You can sorta overcome this restriction by giving the character a specially tailored-skin and picking an ability to adjust which doesn’t affect your character, but that solution’s not very satisfactory.

So far, there doesn’t seem to be a way to modify the permanent statistics of a character via NWScript, which means that even if you find another way to give ability adjustments instead of skins, it won’t make a difference.

NWN also seems to have some protection against character editing: changing the ability scores of the various .BIC files in the localvault directory will make your character invalid if the total ability points don’t add up to 30. So you can’t use a character editor to adjust your character’s ability scores (yet). This makes sense, otherwise it would be very easy to use a super-character to cheat on multiplayer servers.

So, unless there’s a way to permanently adjust ability scores, using skins is a hack which works, but doesn’t really work well enough. The other solution would be for Bioware to patch NWN so that it uses the adjusted ability scores, rather than the permanent ability scores. Unfortunately, doing it either way has its share of implementation issues.

ECLs

Effective Character Levels, or ECLs, are a way to compensate for the traits of the more powerful races. The average drow, for example, has a whole bunch of fun abilities that make them far more powerful than the average human. To compensate for this, some dude came up with the concept of an ECL.

Drows have an ECL of +2, which basically means that they’re two levels lower than other races at the same amount of XP. For example, a human with 11000 XP would normally be level 5; a drow with 11000 XP is level 3. ECLs “lag” your character behind by a certain number of levels, to compensate for your more powerful racial capabilities.

I’ve managed to implement ECLs in NWN. The solution is quite elegant in some ways and pretty ugly in other ways, but as far as I know, it’s the first complete ECL implementation done to date.

You can always have a look at the NWScript code to figure out what’s going on, but since all programmers are lazy, here’s a rough idea of how it works, and why it’s been written that way.

A first attempt at an ECL implementation

(Warning: deep knowledge of NWScript and 3E/ECL rules (or serious crack) will be required to understand what the hell I’m talking about here.)

Conceptually, an ECL changes the XP progression table. The PC is treated as if she’s some number of levels higher than she actually is, only for the purpose of determining the XP required to level up. If you try to translate that concept directly into code, though, you’re doomed.

Initially, the most obvious way to implement ECLs is to use a module’s OnPlayerLevelUp event. Every time the player gets enough XP to level up, take some amount of XP away, so that she has to earn more XP to go up that level. Yeah, that will work, but it presents two nasty problems:

  • The OnPlayerLevelUp event is triggered after the player actually levels up. It’s not triggered when you hit the amount of XP required to level up. That means that if you decide to take away some XP, it will be done after the player has picked all their classes, skills, etc., only to have that level immediately taken away. Raaather annoying. This first problem isn’t solvable, but if you’re really intent on having ECLs, but you can live with it if you really want to.
  • If you take away XP when the player levels up, how do you know whether you’ve done this before? This is easily solvable by storing local variables on the PC object.
  • Since you cannot store any persistent information on a PC object, you don’t know whether you’ve taken away the XP before. What if the character has had her XP taken away before, then exports her character for use on another server, only to find that when she levels up, her XP has been taken away again? Unfortunately, this problem is unsolvable, and it’s a showstopper: users will not accept XP being taken away from them unnecessarily.

Statefulness and persistence

The core issue with the third problem is that it relies on state. (Functional programmers, don’t you all feel good now?) It relies on being able to store information with the character that can be used at a much later time; if the character is exported before that event occurs, things go completely screwy. So, any ECL solution that is done must be stateless, or at least executed quickly enough that there is no practical chance for such a race condition to occur in practice.

Another view on ECLs

There’s no chance of implementing ECLs if we don’t alter our concept of how to implement them. i.e. we have to think outside the box.

We know that an ECLed character requires more XP to go up one level than a non-ECLed character. One way to think of this is that the PC requires, say, 25% more XP than usual to go up a level. As an example:

  • a non-ECL character requires 2000 XP to advance from level 2 to level 3: you need 1000 XP to get to level 2, and 3000 XP to get to level 3. However,
  • a ECL +1 character requires 3000 XP to advance from level 2 to level 3: you need 3000 XP to get to level 2, and 6000 XP to level 3.

So a ECL +1 character requires 50% more XP than a non-ECL character to advance from level 2 to level 3. While we can’t change NWN’s XP progression table to support this (at least not without evil hacking of 2DA files), what we can do is penalise the XP that the PC earns to make it equivalent to the progression table used by the ECL character. This is similar to the XP penalty that is introduced when you multiclass and you don’t keep your non-favoured classes within one level of each other.

So, if we require 3000 XP to advance a level instead of 2000 XP, our ECL implementation will work if we penalise all the XP earnt by the character by a factor of 1/3. Instead of earning 90 XP for killing a monster, the character earns 60 XP. Where she’d normally get 300 XP, she gets 200 XP instead.

While NWScript doesn’t allow you to say “give a PC n% of the XP that she’d normally get”, what you can do is subtract an amount from the XP that the character has earnt. So, when the PC gets 900 XP, subtract 300 XP. When she gets 60 XP, subtract 20 XP. If you do this at a frequent enough interval (e.g. every second), then you have an algorithm which executes fast enough that it’s effectively stateless.

This is the way that the ECL script works. We replace the nw_c2_default1 script, which is called whenever an animation update occurs, so that the XP check is done very often (on average, probably once every three seconds). Previous attempts tried to trigger the script so that it ran once every second, but that can’t be done unless there’s a way to set a variable which only lasts for the duration of the current play session. (See the Scripting page for more information.) As long as players aren’t cheating dramatically and exporting their character within time between animations are updated, it’s all good.

There are a few downsides to the current approach:

  • Do all players need to put the new nw_c2_default1 file in their override directory, or does it only need to reside on the server?
  • The nw_c2_default1 file may need to be updated whenever a new patch is released.
  • There should be a stronger link between the thingy that grants the character the racial abilities, and ECLs, so that if you don’t have ECLs active, you should not receive the racial abilities. (That’s only fair!)
  • It would be better to have a consistent, short time interval between XP checks. It’s good enough right now, but it’s always better to be perfect …

I’ll treat these problems as a TODO list: they may go away as I find workarounds. The ECL scripts, however, work, and work well.

Comments

Quirks

The following is a short list of quirks that I’ve found with NWN, as of version 1.19/1.20. Keep in mind that future patches may fix some of these quirks.

Double weapons are Good

Double weapons (two-bladed sword, dire mace, etc) don’t seem to induce a two-weapon fighting penalty at all.

i.e. If you have two-weapon fighting and ambidexterity, and your normal BAB is +5, you would expect that using a two-bladed sword induces the -2/-2 penalty for the two attacks, so you would attack at +3. However, it seems that you still attack at +5!

This obviously makes double weapons far, far more powerful … can you say “Uthgardt Ceremonial Blade”? It also means that munchkins (like me) who pick one level of Ranger for the dual-wield feat don’t have to, if they only want to use double weapons (also like me).

Druids don’t have weapon restrictions

The Druid’s weapon restriction isn’t.

If you are a Druid, you are proficient with druidic weapons, but you are not restricted to them. While the Druid class cannot learn any non-druidic weapon proficiencies, other classes that your PC has can.

i.e. If you multiclass, the Druid’s weapon restriction disappears.

Put this together with the quirks above and below, and you can have a L1 Fighter/L19 Druid specialising in a two-bladed sword, with no attack penalty. Nasty!

Weapon Specialisation with a Level 1 Fighter

(This may or may not be a deviation from the standard 3E rules, but it’s obscure enough to be a quirk.)

Any PC can take the Weapon Specialisation feat as long as she has one level in the Fighter class. The feat is only available if:

  1. You have Weapon Focus on a particular weapon
  2. Your BAB is >= +4
  3. You are levelling up in the Fighter class

The last one’s the doobie: even if you have Weapon Focus and your BAB is >= 4, the feat is only available to Fighters, and thus only shows up if you are levelling up as a Fighter.

The quirky thing is that it doesn’t matter what particular level of Fighter you are to obtain the feat. You can be a level 4 Ranger (and thus have a BAB of +4), with weapon focus on, say, Bastard Sword. If you then level up to a L4 Ranger/L1 Fighter, you can then pick the Weapon Specialisation feat.

Hold down mouse button 1 to move the character

So call me a gumby, but I had no idea this handy feature existed. (And I’ve read the manual, what, fifteen times? Nehh.)

Instead of cli-cli-clicking on the map all the time to move your character around, you can hold down the mouse button and drag it around the screen, which allows you to control your character’s movement and direction. Much easier.

Using Lore potions to their fullest

  1. Drink lore potion to increase your Identify skill.
  2. Pause game.
  3. Identify everything you want (all 3000 armours from “The Dark Ranger’s Treasure”, heh heh). The Lore potion won’t expire since the game is paused.
  4. Unpause game.
  5. Profit.
Comments