Jump to content

The Black Scourge of Candle Cove -- Tchos' development diary


Tchos

Recommended Posts

I set up the bard companion. He's a gnome, but not like Grobnar. I went back to the 2nd edition of D&D, which had more interesting and distinct gnomes, based more on gnome folklore, with the pointy red hats and curly-toed shoes, living in hollowed trees and in cavern kingdoms and such. No red pointy hats in this game, though, alas, at least not that I've found. But that's fine for this character, anyway. On my wish list for the future would be more gnome faces, fanciful beards, and several styles of the pointy hats. The Yeomen of the Greenwood clothing pack actually features a tunic that looks quite a bit like some of the outfits of the gnomes in the Complete Book of Gnomes and Halflings, but the rest seems to want making.

 

Next I set up the fighter, who's a dwarf. Dwarves have kept their identity pretty well through the editions, I think, unlike the gnomes and halflings. Halflings used to be much more hobbit-like in the oldest material, before they started trying to pretend they weren't hobbits and tried to make them into anything else.

 

I finished putting all of the text triggers in the cavern, both DM text and companion barks. As I play some of the older RPGs in my collection, such as Pool of Radiance, The Magic Candle, and Dark Heart of Uukrul, I see that they did a lot of descriptive text like this, and I like it very much. It adds a great deal to the experience. I'm also playing Avernum: Escape From the Pit, which is a 2012 game which also has that sort of text.

 

Next I placed the text triggers and map pins in all of the lighthouse areas, then the forest, then in the ship's belowdecks, and finally the undersea areas. I left it until now to decide whether I'd revisit the pearl quest in the second underwater area, and finally decided against it, because of the sheer complexity and importance of the conversation associated with the one who would offer it if I were to include it. I think it's for the best, even though it results in one purely search/exploration-driven area with nothing else to interact with besides the one goal.

 

Just the companion conversations and interjections to finish now.

 

 

The Hatsplosion wizard hat might be more gnome-like without the brim.

 

Yes, it could probably do for one variation. I'd also want at least one where the point angled toward the front instead of the back, and another where it was better starched and didn't flop so much. :)

 

Beware the scope faeries, they are not your friend. I seem to remember you were at this stage once before biggrin.png

PJ

 

Well, I think the situation before was that I had only one conversation to finish for the quests, and I did finish that. That scope creep is a killer, though, I agree.

 

If one looks at my journal, the introduction starts as: "With the release of my work coming closer..." And that was some year ago. Talk about scope creeps. But in my opinion, since we are all here because we love what we do there is no rush to finish. I mean, yes, there is the desire to get our work out there, but on the same time there are other modules released every now and then. So, whenever is out, is out. Polishing is the most confusing and time wasting work in my experience, because one simply feels like there is no progress at all. Until a point when he feels that there is no more to be done smile.png.

 

My earlier estimates of how much longer it would take are a bit embarrassing, but after I had decided to make this a really polished piece with a lot of custom content instead of a quickie release, I didn't even want to give a time estimate at all, though I did give something when I was asked enough times.

 

My modules have depended on scope creep as they just start with an area and I never know where they're heading ! Or is that story creep ?

 

What you're talking about is a creative process, which in writing can be called "discovery writing" as contrasted with "outlining". I'm more of an outliner, myself, and this whole thing was outlined at the beginning, though I added a lot of side content as discovery writing.

Link to comment
Share on other sites

  • Replies 254
  • Created
  • Last Reply

Top Posters In This Topic

This may not be the best time for a diary entry, considering the IGN Vault has recently started redirecting all links to a wiki for the Neverwinter MMO, but I have some module work to report.

 

I found one more small miscellaneous thing to do in the module, which was to add custom token journal updates to the fishing quest, which was one of the earlier quests I did, before I started using custom tokens to display quest completion lists showing which parts had been completed. It was the only quest which didn't provide that information, updating the journal only when all of the objectives were complete. In the time since I wrote it, I've written several multipurpose quest scripting systems, one of which is perfect for this kind of quest, but I opted to simply add the necessary lines to the existing structure I had in place for this quest, rather than switch it to a different system.

 

I continued on with the companion talks, and fixed up the fighter's convo structure to match the rest of them -- a structure that works for all of the hiring, firing, waiting, etc. By the time I understood how to use the roster and about things like campaign roster members and pre-loading everything, I had already done half of the companions using the method given in Kaldor Silverwand's sample campaigns. It works fine, but it would have been easier to manage as many companions as I have if I had done it a bit differently. I have 7 companions to choose from, of different classes, and varying alignments, though they're all compatible with a basically "good" party, which is all I can really justify for this plot.

 

I've opted to use the same reputation system with the individual companions as I developed for use with individual NPCs and whole factions. It's similar to the influence system in the official campaigns, but more nuanced and purposely hidden. Unlike what seems to be the standard method of gaining influence with one's companions via telling them whatever they want to hear, I instead improve your reputation with your companions by how much control and status you allow them in your party. I don't want to go into the specifics of what I mean by that, because I'd rather people do things for roleplay reasons on a case-by-case basis, rather than, for instance, always choosing a paragon/renegade response as in Mass Effect in order to get some kind of advantage. (That's not to say that the actual scripting mechanics are complicated or arcane, I just don't want to say what exactly causes the changes.)

 

The result of having a higher reputation with your companions is minimal here -- it unlocks a little extra dialogue (both when speaking directly to them, and in conversations with other NPCs), and changes the way the companions respond to your questions. But I can envision using these scripts to open up companion-specific quests and other uses.

 

I haven't entirely decided whether I should remove companion question nodes (for their backgrounds and other chit-chat) once you've asked them, or if I should allow the player to revisit them in case they need a reminder of a companion's thoughts on something. Some have spoken of the dangers of using the "Show Once" setting for a node, but the alternative of setting a separate local variable for each topic may be too cumbersome, and the low importance of these lines may warrant any risks for which "Show Once" might otherwise be avoided. If I wanted to be a little more elaborate, I could write a script to better automate the "exhausting" of a topic, allowing you to ask the same question a few times before it disappears. At any rate, since a topic may have new information as your reputation improves, new nodes would appear to replace the lost ones anyway, so it wouldn't matter so much if I just showed them once, so I'm leaning toward "Show Once".

 

I also adjusted the settings so that, like in the Gold Box games, once a hostile area is considered "cleared", you can rest there without worrying about random encounters.

[Originally posted 25 June 2014 - 10:15 PM]

Link to comment
Share on other sites

Looks like the Vault is back again.

 

I use show once in a companion conversation whenever influence / alignment shifts may result from a particular dialog node or because it does not make sense to keep it forever. But only and only if I can't manage the node condition through the journal.

 

Edit : I'm not redirected (because I must have somewhere the direct IP due to last year downtime, don't remember the file), the Vault is still on, but not visible through standard DNS access.

 

Edit 2 : I still have the Vault IP address in the HOSTS file, the content is still there.

I don't know how you managed that Claudius33 because I just tried to find one of my mods on the vault and I got this instead but was unable to add to it which was kind of annoying..

 

Nice going IGN, way to Hose over each and every modder and user for the one and only site to get mods and where I was hosting my mod Eye of the Beholder for the project I put countless hours into. Thanks a lot! Now I can’t even update my project or comment to others who have been downloading the mod.

 

^ Yeh what this guy said, what the ****!!!!!?

 

^^ What the hell happened to the page? All the stuff is gone. The modules and modifications once featured on this page were thousands of hours of work of people who did that for FREE. And you dump that.

 

There was no other page with such an immense and still active amount of mods and so forth for Neverwinter Nights 1 and 2. Seriously IGN... this is a nogo. Now nexusmods seems the way to go,... but a lot of stuff will be gone since nexusmods never had the amount of mods this site had offered. IGN has lost a huge amount of reputation in my eyes. IGN = nogo.

 

^ I can tell you this, if the page does not come back. I’m done with IGN as a site for information and news. I will never visit their site again. This is utter nonsense and ridiculous that you all took the site down

 

Not quite what I expected..

You are automatically redirected unless you have the IP address in your HOSTS file. I put it last year and kept it. I absolutely don't know what's going on and what IGN intends to do.

 

The HOSTS file is stored on C:\Windows\System32\drivers\Etc

 

Adding the line :

69.10.25.55 nwvault.ign.com

at the end of the file (it's a text file) does the trick. You may need admin rights (I don't remember).

 

Yes, shortly after my post, I got access again through the hosts trick, and I'm taking the opportunity to continue my archive of other sections. I have all of the modules, but not all of the original models and hakpacks containing original models.

 

As for the Vault, what especially irks me is that they chose to redirect it to a wiki for the Neverwinter MMO, and not even a wiki related to NWN1 or NWN2. Even with a backup on Rolo's Vault, what about all of those pages of comments? Sometimes there was very useful feedback in the comments, even walkthroughs for tricky parts, or ways to get past bugs that were never fixed. And after I played a module, sometimes I liked to read the comments for it and see what others said about it, like I was virtually joining in the conversations.

 

I haven't entirely decided whether I should remove companion question nodes (for their backgrounds and other chit-chat) once you've asked them, or if I should allow the player to revisit them in case they need a reminder of a companion's thoughts on something.

I went with "show once" and a node that says "lets talk about something we spoke of before". Behind that is all the convo nodes with a local int to get them to appear in the update area. I think that is what you are referring to later in the text? I find that works well so far.

PJ

 

If I go with the "let's talk about something we spoke of before" method, are you saying that you make the older topics appear under that heading only when a local variable is set for each of those topics? It would be nice to have them there, but that's the sort of things I was hoping to avoid in case of a large number of topics to wrangle. Still, if a local variable is involved, then I wouldn't need to use "show once", and just set it to appear on one side if the variable is 0, and on the other side if the variable is 1.

 

I agree it doesn't make sense to keep questions like this in the conversation forever, and it annoyed me when I'd talk to companions in the OC, and for instance I could still ask Neeshka, "Who's Leldon?" after we had met, talked to, and killed Leldon. I kept coming back to check if they had anything new to say.

 

Link to comment
Share on other sites

@Tchos : you may have a look on Sarmates!'s companions and main NPC convos, in the campaign folder. Some nodes are conditioned by progresses (journal) and influence, small-talks are usually flagged 'show once' in order to avoid to carry a shitload of variables. They can also be conditioned by the journal (when a dialog only makes sense after a precise event).

 

As for the Vault, last year it lasted a couple of days. Let's have hope. I can't understand why they did that again, and again without any warning.

 

I do have some hope, especially since I can still access it.

 

I usually use the journal for conditions in my conversations, since there's no state in the main quests that isn't accounted for by a journal state. Though I suppose you could say that in most cases for me, the journal is the quest. I initially used the fallthrough method, but now I instead have conditions checking the journal for every quest state.

 

For most NPCs, I use the a simple variation on the gc_talkto script to determine whether they should use their initial greeting or not, though I rewrote the script to return TRUE if you have talked to the NPC, rather than the opposite as in the original script.

 

I'll take a look at Sarmates!

[Originally posted 27 June 2014 - 05:02 PM]

Link to comment
Share on other sites

For NPCs when relevant, I just use a variable attached to the NPC, 'Spoken'. The variable is set to 1 after the first talk. I use it when I can't use the journal.

 

I may use 'show once' on a PC node when for instance the NPC gives information one time. The 'show once' PC node may be conditioned by the journal or by intermediate variables (attached to a NPC, or a placeable ...). For investigation type quests, I often use intermediate variables rather than the journal.

 

Hopefully IGN will remove the redirection. Thankfully, Rolo, Kamal, Pain and others have done an outstanding job preserving the content.

 

The ga_talkto script is simply a script that sets a local variable named "TalkedTo" on the NPC, and the corresponding gc_talkto script (or my gc_talked_to variant) checks that variable. It's just a little faster than setting the variable manually, as I've also done.

 

If I go with the "let's talk about something we spoke of before" method, are you saying that you make the older topics appear under that heading only when a local variable is set for each of those topics?

That's what I did yes. I used the once per module test and I have had no issues to date but you could use the variable you set on each line. Crossing of variables is not an issue due to naming convention but i gues you could end up with issues over a number of modules (Local ints are carried across modules within a campaign right?)

PJ

 

Local variables are only accessible across modules if they're stored on the PC, or on an item the PC is carrying. I think they're also accessible if they're stored on roster member companions, but I'm not sure if they'd need to be spawned into the new module before you can access them or not.

 

Otherwise, something stored on an NPC will only be accessible in the currently loaded modules. They'll still be there when you return to the module you left, of course, but if you need to access variables across modules, you can store them on the PC, or use the journal (which does the same thing, storing variables on the PC), or use a global variable if necessary.

[Originally posted 28 June 2014 - 01:12 PM]

Link to comment
Share on other sites

Thanks, mine are stored on the PC so that should be okay. I did think they could carry over but doubted myself as I wrote my post.

My local supermarket has Fursty Ferret on 4 bottles for £5.00 so this ish the larsht coheeeerent posht of the evenin bandit.png

PJ

Hobgoblin > Fursty Ferret !

Not when you live in Dorset, that's northern beer that is.

PJ

 

Also keep items in mind! If I have a quest that involves an inventory item in some way (could be anything from a FedEx quest to a quest that involves activating a device somewhere), I like to store any variables that I know will be temporary on the quest item. It'll persist across modules, and I don't have to worry about variable clutter since I destroy it when the quest is done, so it leaves no orphan variables cluttering up the PC object.

[Originally posted 28 June 2014 - 03:19 PM]

Link to comment
Share on other sites

How do you do that, does the ga_local_int allow the tag to be an object. I have always put it on a creature but, as I type, I am guessing it does not matter?

PJ

 

Right, you can put local variables on creatures, placeables, inventory items, or even more abstract things like the area, the module, or a persistent area of effect, and it would work the same way. Get the object by its tag or the other usual ways and check the local variable's value.

Link to comment
Share on other sites

I mourn the loss of the Vault. The content may not be gone, but it will be some time before it's all available to download again, and in the meantime it's hard to make specific requests for things that I don't necessarily know exist. For instance, the script collection and area prefabs. If I had continued my archival efforts beyond the time of last year when the signs were bad, I probably could have saved it all by now.

 

At any rate, after it became impossible to save more, I continued my work in the dialogue for my module. Each of the seven companions have their own interjections to make, both triggered and within conversations with other NPCs. I think it's best to focus on one companion at a time, so I can maintain a consistent voice for each of them. The thief's interjections are done, as is her personal dialogue that you get when you speak to her. The last part for her is to add her personal interjections to the NPC dialogues. Then it's on to the next companion.

 

Kaldor's sample companion dialogue includes a nice idea. When you tell a companion you want him to leave the party, it first checks a variable on the area to see if you've designated the area as an allowed place to remove a companion. If not, the companion refuses to leave, because under this system when you tell a companion to leave the party, he'll just stand in that spot until spoken to again. Of course, even if you remove a companion that way, you can always bring them back magically using the party editor or the party registry books at the tavern or inn, and if you have the ability to bring up the party editor through a menu tweak or through the console, you can manually remove them that way, but it helps to prevent leaving a companion in a dungeon or in a place that may later be inaccessible to you, even if there are failsafes in those events. I could, of course, make them go wait at a hangout, but I decided not to in this module.

 

Still working on the thief's interjections. It provides some opportunity for banter between party members, if you happen to have the right companions in your party at the time, which is nice. These companions have specific personalities, so they have certain special dialogue options, and also don't have certain options that player-created characters have.

 

Since these are SoZ dialogues, you can always switch to whichever party member has the thing you want to say most, and choose one of the responses written especially for those characters to say. This is designed to have an effect on the gameplay, and of course you'll never be able to experience all paths through the conversations in a single playthrough unless you fastidiously reload after every conversation choice.

 

Also, if you choose certain dialogue options while controlling a companion which were written specifically for them, it may cause another party member to respond to that statement or question during the dialogue, if they're in the group. Party members have varying likes and dislikes of each other which come out in this way, though again it depends on which companions you take, and which of them you elect to be the party speaker during a dialogue.

 

One of things I love most about SoZ conversations, aside from the interaction possibilities they open up, is that the main PC is no longer forced to be a specific class with specific skills in order to power through the occasional skill check that comes up in conversations. I believe conversational skill checks are poorly and seldom used in most games for that reason.

 

With my SoZ conversations, in addition to the special dialogue options you can choose which are written for the companions, the large number of conditional checks narrows down which characters can say certain options, giving each of them more distinct personalities (this is done purely for personality in some instances) and utility. When it comes to solving problems conversationally, the player must choose an approach with a particular character's skills, though there may be consequences for trying one approach over another, and you may not get a second chance. This adds to replayability, and is infinitely better than having a party of skilled characters who stand around uselessly as the main PC fumbles with skills the rest of the party has.

 

I also decided to make a tiny tweak to the NPC sitting script that I hadn't touched for a very long time. While playtesting, I noticed again that even when an NPC is sitting in a particular chair, the chair is still clickable, which is distracting both because you may highlight the chair instead of the NPC you want to click on, and you may try to sit in an occupied chair. So I added a line that makes the chair unusable when an NPC sits in it. Fine. I loaded up the game, and everyone was suddenly sitting backward. Possibly I had made a change a long time ago and never compiled it, so it kept working fine until I made this change and compiled it.

 

I noticed that everyone was sitting backward in the human-sized tavern, but not in the dwarf-sized tavern. I also observed that if I directed my PC to sit in a chair, he faced the correct way, so I compared the two scripts (the npc sitting script, and the On Used sitting script).

 

The scripts used slightly different approaches, and were both originally scripts that came from the Vault, with some minor edits. The On Used scripts used one method to get the facing direction, and directly applied it to the sitting PC. The NPC sitting script instead directed the NPC to "use" the chair, which should fire the previous script. I changed the latter to use the former's method, and so now the NPC sitting script simply jumps the NPC to the chair, sets the NPC's facing to match the chair, and plays the "seated" animation. No need for the NPC to actually use the chair.

 

One thing does concern me, and that's the number of days spent primarily on this one companion.

[Originally posted 06 July 2014 - 01:32 AM]

Link to comment
Share on other sites

Don't make the chairs objects at all. I handled this years ago in Islander. The chairs become environment objects, the npcs loop the sitting animation, and are set to unbumpable. Their on conversation script is set to keep them facing the direction you want.

 

In toolset you'll want to place them just as their butt touches the back of the chair or theyll appear to be sitting on the edge of their seat which is a problem ive seen in many a module.

 

Thanks for the suggestions, but it's already final, and works as it is (they are, of course, looping a range of sitting animations, and are unbumpable and do not rotate to face the speaker). This way, they remain as objects that can be referred to by script or interacted with if I choose to have the NPCs stand up and leave, which does already happen in at least one case.

 

I've got usable chairs, stools, couches and benches in the module I'm currently working on, which players can sit on as well as NPCs. For chairs or stools I scale them up or down slightly in the Z axis depending on the users race. For couches or benches, I place usable cushions on them that do the scaling. That way anyone can sit on them and not hover in the air, or fall through the seat. Although ironically, the cushions are flatter when halflings sit on them than they are for half-orcs.

 

Making the chair usable, and putting all the sitting scripts on it, makes it much easier to have NPCs sit down. You just command them to go and use the chair. An ipoint checks to see if the chair is already occupied, or the NPC is otherwise engaged, and if both are available it will sometimes send a random NPC to go and use it (continuing to check every heartbeat in case the player beats them to it, until they're safely seated). When I want them to stand up again, I just reactivate their waypoint walking and they wander off of their own volition. The chair's HB script keeps track of how far away a character is from it and removes any of the 'handy VFX' if they get up and leave, also clearing the local object from the chair and making it available for others to use.

 

I also have seated characters automatically play certain animations. If you sit down in the library, a book appears in your hands and you start reading. Sitting in a tavern puts a tankard, cup or wine bottle in your hand, and you randomly play eating or drinking animations (regenerating 1 HP per round). For outside benches you simply sit still and enjoy the scenery.

 

My chairs also resize themselves based on the size of the PC or NPC using them. Until I made this latest change, I was also using the method that the NPCs use the chairs in the same way that the PCs do when you click on the chairs -- it fired the On Used script. That worked fine until recently, and since I don't have the additional features you mention, it doesn't seem much loss not to do it that way now.

 

I do have special sets of animation that each NPC selects from during their heartbeats, which I choose on a per-NPC basis depending on where they're sitting and what they should be doing (such as whether they're at a bar or table, whether they have a plate of food in front of them or not, whether they're alone or if others are seated nearby...)

 

I like all of those other features. The prop placement and automatic animations based on location, the HP regeneration, etc. Very nice. Maybe something to add later!

Link to comment
Share on other sites

At the moment the only practical use for sitting down I've got is for regenerating while eating or drinking. It'd be great if it was easy to restore low-level arcane spells you might have cast by sitting and reading for a while, but unfortunately there are only functions to deprecate spell usage. I suppose sitting on a park bench for long enough could be the equivalent of a Lesser Restoration spell though. smile.png

 

There are a lot of things I do when I play that don't have practical use, and I've watched others spend 20 minutes just seeing what all of the emotes do, so I think the regeneration is enough.

 

I saw a module with chairs I could sit on. I never saw the point. NPC sitting however, is quite alarming when absent entirely.

 

It's for RP purposes. Same with the emotes.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...