Dispatches From Neverwinter

A journal of my progress as I (attempt to) learn how to build modules for Neverwinter Nights.

Name:
Location: United States

Started playing Neverwinter Nights back in November '05 and got hooked. Tried to write my own module, but I just didn't have the time. Maybe I'll try again someday.

Monday, October 30, 2006

Bad Weekend

Had planned to do a lot of work on the module this weekend, and ended up doing very little. Slept late on Saturday, and then my allergies took a lot out of me. I didn't start until the evening, and hoped to work out the music-switching problem following the suggestion of scripting a user-defined event for the area. However, I wasn't quite able to figure out what to do. I still don't really truly grasp the logic of scripting, and so even though I read the lexicon entries over and over again, I couldn't quite figure out what was going on. This sent my frustration meter through the roof. I tried to switch over to item scripting, using the scripting guide, a sample script I lifed from a module, and a script generator. Problem is that they all seem to be doing things differently, and I couldn't figure out how to do exactly what I wanted, so finally I just gave up.

The next morning I tried again, and I figured out how to do item scripting, so I made a couple of custom items and placed them in the module. That's all the work I did. Next weekend is a 3-day weekend for me, so hopefully I'll get more caught up.

Tuesday, October 24, 2006

Small Steps

Got to do a little work on the module last night, though I got distracted and didn't get as much done as I would have liked. Still, I accomplished two new things last night. First, I set up a transition that works if the PC has accepted a quest. If the PC hasn't, it won't work, and it'll display a floaty message instead. The second thing I did was create a trigger that only works if the PC has a variable set to a specific value. Yesterday I said that I couldn't see why this wouldn't work. I learned that just copying a script that works in one module doesn't mean it'll work in mine. I didn't really look at what was in the script, and so it didn't work. When I took another look, it become obvious why it didn't: in the module I stole it from, the variable being called was stored on the module, whereas in my module, it was stored on the PC.

I also tidied up a script, cleared out some of the placeables from the cutscene area, in hopes that it'll clear up some of the problems with the NPCs not running offscreen at the end, painted all the placeables in another area, and discovered that the orcs are too much for a first level fighter to handle. I'll have to stick to goblins and hobgoblins early in the module, until the PC reaches a point where they're likely to be at 2nd level.

Monday, October 23, 2006

Back to Scripting

Got in some work on the module this weekend, though not nearly as much as I would have liked. There are a bunch of things I want to do, so I'm having to force myself to be methodical. Since I've been doing lots of area painting lately, I decided to put that aside for now and get back to scripting and dialogue. I specifically focused on the scene where the PC encounters Crissa being menaced by a pair of orcs. Because of the faction weirdness in NWN, that was tougher to do than I thought. I made a custom faction for Crissa that was 100% friendly with every other faction, but when I attacked the Orcs, she turned against me. So I used the "herbivore" script as her onspawn script and took out most of her other scripts, but that just meant that I couldn't talk to her after the battle - she didn't attack, but she was still hostile. Finally I lowered her friendliness to hostiles to 50%, and that seemed to work.

There were other issues to contend with though, such as making her cower and say random things like "help" when being menaced by the orcs. I also wanted to have a crying sound play. I recycled and tweaked the cowering peasant scripts for this, but I couldn't get the sound to play, or so I believed. Actually, it was just that I couldn't hear it over the music, so I just took it out. I also modified the script for the orcs, so they would taunt her verbally and play the taunt animation. It works, but the taunt animation doesn't look good, so I'll probably change it to the laughing animation. I might also increase the frequency at which they say things.

I also started working on her conversation, and the associated journal entries, and I can see this is going to be complex, since I have to account whether the PC meets her or Jocen first, and which quest he takes first: the PC could meet Crissa and take her quest, or he could meet her, refuse her quest, and then meet Jocen and decide to help after all. The reverse is true too. Also, I realized there's another snag: the quest is supposed to end with the PC leading the kids to Jerym and he volunteering to look after them. However, it's possible that the PC could refuse Jerym's quest or even kill him, and still go to the village. As such, I'm going to have to figure out to only have the transition work if the PC takes the quest, and have a message appear if they don't. Fortunately, I know a module where this happens, so I can check it out to see how that author did it.

Other than that, I ended up laying down a lot of waypoints, so that when the monsters spawn from an encounter trigger, they don't just stand in place. I also set up my first trigger with a variable: if the PC refuses Crissa's quest, then when he leaves he'll trip a trigger that'll spawn some monsters. I haven't tested it yet, but it's a short script that I stole from another module, so I don't see why it wouldn't.

Tuesday, October 17, 2006

Continuing to put in time on the module here and there, rather than in one big chunk of time. Most of it has been area painting, which is becoming tedious. Partly that’s because I’m a perfectionist, and partly because I feel like my selection of placeables is limited, despite the huge amount of placeables in the CEP. I really, really wish that placeables could be rotated 360 degrees, instead of just on the horizontal. That would go a long way toward the “ransacked house” effect I’m looking for. Instead, I can only use what’s available – broken furniture, toppled chairs, broken plates, garbage… speaking of which, I wish there were more garbage placeables, as using the same one over and over again doesn’t look all that great. Also, I’ve just been spending a lot of time trying to get the right look in general by creatively using and positioning placeables. This involes a lot of placing of placeables on top of each other, which is a time-consuming process. I blame this on Almraiven: playing it has really opened my eyes to how good a module can look, and I’ve been trying to recreate it in my own area design.

I also finished up the cutscene, which is to say, I’m at the point where I just have to accept that it’s imperfect, because I can’t fix the flaws. I reduced the size of the area and changed the camera movements so that it starts right on top of the player at about waist level, then slowly moves up and back a few feet in a short, slow pan. I also crowded the combatants into a small area, reduced their numbers, and shortened the length of the cutscene overall. The result is that it kind of looks a little more like a crowded battle, and the camera doesn’t seem to stutter. However, when the retreat call is sounded, some of the combatants on both sides inevitably get stuck in place instead of running. Also, there are still sometimes instances of the combatants jumping from one place to another. And finally, I still can’t get the camera to change to the top-down position when it transitions to the next area.

Been working on a lot of small things too, such as adding in birds and having them fly to different waypoints, then putting the herbivore script in their OnSpawn event so that they don’t attack the goblins, and also changing their flight path so that they don’t fly into the characters. I started placing a bunch of things like grains and flour and sugar and so on in various containers, then realized that opening up all those crates and finding a bunch of worthless junk, however realistic, would be annoying, so I went back and took most of it out. I did, however, create a few custom items that actually are useful, which I’ll use in the module. I wanted to create some things that had both a positive and negative effect when taken, but in order to do that, I’ll have to learn how to script in the game. The script generator might be able to handle most of it though.

And speaking of scripting, I feel like I’m starting to forget how to do it, because I haven’t done it in so long, so I’m going to try to get back to it by tackling both the find-the-mule and the find-the-girl subquests. I decided to put Crissa in one of the houses and have her cornered by a pair of orcs. I re-used and modified the script I used for the pleading peasants to have her cower and cry for help, and changed her faction so that the orcs wouldn’t attack her (I just want them to taunt her). I’m thinking of adding in sound to make her cry as well, but it has to turn off at a certain point. I can do this in one of two ways: the first is to script it so that it shuts off when the orcs are killed. That’s more sound, but I’ll have to figure it out. The latter is to set up two triggers, one of which turns it on and the other of which turns it off. If I put the trigger around her, then the PC probably won’t trigger it until after he kills the orcs, but it isn’t guaranteed. It’s not a big issue though, so it’s really a matter of how much I want to challenge myself. I also have to decide how I want to handle the orc taunts. I could set up a triggered conversation like I did with the hobgoblins, but then once it ends they’ll just stand there, so more likely I’ll just have them randomly say things. Or maybe I’ll set it up so that the speech of all three characters takes place in one triggered conversation, and then they’ll attack Crissa at the end of it. Since I made her immortal, it’s not like she can be killed (though maybe I’ll just give her a ridiculously high AC, to simulate the fact that she’s quick and nimble).

Tuesday, October 10, 2006

Fun With Items

Since I didn't have the time to put in a full day working on the module this weekend, I instead decided to work on it in spurts. I'd open up one area and add in all the placeables and such, and then be done. I managed to finish up five areas that way, although I'm not 100% happy with the results - the outdoor areas are kind of dull, because they're all flatlands. Still, there isn't much I can do about that, since the terrain is supposed to be flatlands. I also put off redoing the cutscene for the time being; I'll probably work on that this weekend, when I have more time.

I did, however, end up spending more time on the module than I expected, because I got caught up with making custom items. Specifically, I realized that the CEP opened up a vast array of possibilities for clothing customization. I must have spent an hour or two making and tweaking various peasant outfits. This was partially because even though there are a lot of clothing options, most of them don't look right for a peasant, so it took a lot of fiddling to create something I was happy with. The good thing is that now all my peasants don't have to dress identically. I also got obsessed with making custom items - specifically, with creating various foods. I made about eight different items before I realized that Sharon's 1600+ Module Items, which I'd already downloaded a while back, already had all that stuff. Why do the work if it's already been done for you?

Wednesday, October 04, 2006

Disappointing

I finally finished up the cutscene tonight and tested it and... it was disappointing. First, the camera motion stutters as it's swooping in for the first couple of seconds, probably because there's just too much going on in the scene. All the soldiers and creatures attack each other, but once they've killed their opponent, they tend to just stand around instead of attacking someone else (esp. the ogrillions). And when they do finally break and run, at least a half dozen of the creatures just stand in place instead of pursuing.

I think the problem is that I just have too many NPC's in the scene, because I need to fill up the battlefield. I'm going to have to cut a bunch of them, which means the battlefield will look fairly empty. To compensate for that, I'm going to try reducing the size of the field. Also, instead of having the camera start high above and far away and have it swoop in slowly, I think I might set it closer to the action and have it swoop over the action slowly at a fixed height and angle. I may also shorten the scene. Hopefully, if I pack things in tightly, it'll create the illusion of a crowded battlefield.

Monday, October 02, 2006

It's Finally Out

CEP v2.0 was finally released this weekend. Unfortunately, I wasn't able to download it until fairly late on Saturday, so I didn't get much chance to use it. Most of the work I did was on the opening cutscene, as I finally started painting down all soliders and monsters in the battle. I decided to use some of the orcs included in v2.0. They're actually the same ones that were in 1.0, but I selected some models that looked good but didn't obviously look like uruk-hai. I painted everyone down and began updating the script for the battle, but I made the mistake of not keeping track of who was put where. Since I'm dictating everything that happens with the script, I need to be able to give specific instructions as to who attacks whom and who goes where. Now I'm pretty much going to have to go through the tedious effort of repositioning everyone and noting the specific tag of each creature, and writing their directions into the script as I go.

Other than that, I also worked on enhancing the existing areas. This included painting some additional animals into the first scene along with trees and foliage. I also finished up the storage room where the PC will meet one of the children. I still have to finish up that whole subquest as well.