Saturday, December 4, 2010

NCCS - Impending Wow

Some days, I do something so cool even I have to sit back and just go "Goddamn, how did I come up with that?"

This morning is another of those.

I have... just conceived and implemented a system that will allow all NCCS companions to stick with the player no matter how moved or by what.

It works on teleports... it even provides for instant following through load doors - no more having to wait an in-game hour for the engine to get off its dead ass and move NPCs through.

Best part?

I did it in such a way that not one single NPC has to be called via explicit reference.

I've only tested it for about twenty minutes now; but it seems to work every cell change.

The one possible downside is that it works a bit too well, sometimes. When traversing the open wasteland, your companions will occasionally be teleported to join you; since despite the openness, the wastes are actually broken up into "cells" just like interiors, and when you cross a cell border into the next, the script triggers and moves them up to join you.

The flip side is that it's not distance dependent - only strictly by cells; so it won't randomly trigger the way the old teleport code in RR did.

I'm not going to go into detail about how I did it. It would bore and/or confuse most of my readers (hey, I know perfectly well my thought processes border on requiring the readying of a padded room...); and that aside, I know perfectly well that my "competition" has been looting ideas from my blog as well as my previous work, and I'm not in the mood to hand out any more freebies.

I've also implemented code that will once a day add a handful of leveled lists to an NPC's inventory - to simulate them looting stuff as you travel. This one isn't tested yet; I haven't been in the new game long enough for it to fire; but the GECK took the code without complaint, so if it doesn't work it should only be a matter of me getting my timing calls correct to make it work. Once I do get this one working, I'll create another custom leveled list to simplify the code, but for the moment I'm testing with default game lists.

This morning I also learned how to apply perks to companions. I haven't implemented this one yet, since I wanted to get the new companion management code tested before I added another feature to potentially screw up; but it's next on my testing list.

I've also got some ideas for new group perks - that will be added or removed from the player depending on how many companions you have in tow.

This NCCS whim of mine could... end up being pretty cool. A slightly more arrogant me would be proclaiming that when all is in place, all other systems will be woefully eclipsed by the greatness. Real me, though? Is a fatalist, who's had one too many sure things blow up in his face to declare victory just yet.

Lastly, I think I may have taken some of my coding a bit too far. When I started the new game, I forgot and left my special companions plugin active. This is what I woke up to:

The three of them were in the house and trying to initiate dialog to join me before the doc even finished his introductions.

S'nice to have such loyal hench-cuties, though. I knocked them down to leveled lists for starting equipment, so as a party we'd have someplace to go; a need to scavenge better armor and weapons.


  1. See? I knew you could do it!

    (The boinking helped, didn't it?)

  2. The intimacy generally helps by keeping me from running amok with a meat cleaver whilst cackling maniacally. Not as much with the scripting.

    The scripting help generally comes from what the men of old would call meditation to listen to the soul. The solutions just sort of come to me. I find that if I think about where solutions come from too hard, it just hurts my head.

    Actually what was mostly responsible for this was sheer boredom. I was trying to download a file this morning from one of those free services. Had been helpfully broken up into nine pieces, each of which required a progressively longer wait time between downloads. Had nothing to do for the four plus hours of waiting, so I scripted. Seems to be a habit of mine.

    Is somewhat annoying, though. There are still occasional failures to follow through load doors. I've only had one now in about fifty minutes of play - which is a marked improvement nonetheless. As far as I can tell, the engine itself is still hanging and not processing scripts correctly until it get its head out of an unnamed orifice.

    Don't know of any way to force a quest script to process, unfortunately.

  3. A: I think Herculine just understands guys run around like chickens with their heads cut off if not given a little "Intimacy", and got tired of calling it that. <,..,<

    B:I thought the NV dev's were going to ship that unnamed orifice as DLC? did they add the old orifice from FO3:Broken Steal as a work around untill than? >,..,>


  4. Hell if I know.

    Some days I wonder if even the devs know what they're doing; or if they just randomly flail about on a keyboard until the boss says work day is over.

    I'd say it's odd that they can't fix the engine... but in all honestly, I don't think Obsidian worked on the engine any. I think they're just glorified modders; extending FO3 with a little tweak here and an "oh, shit, what did we do to it now?" engine bug there.

  5. Yeah. it sounds that way. but even with the engine bugs they at least made a slightly more interesting story... ya know.. making the followers the paladins and leaving the BoS with their normal asshole way of life. even if they did write that they did something so ungodly stupid that its laughable. (Attacking the entire wasteland)

    As for the bugs. i'm thinking they missed something. or pulled the engine in a direction that it wasn't meant to. maybe its all the NPCs open world cells plus the large number of non-random NPCs is causing somekind of bug in towns?

    It worked in oblivion. but as we all know. the new fallout games are a whole other beast.


  6. "More interesting story" is a matter of opinion.

    Personally, I've had it with the go save the world/society crap.

    I say let it burn; and oh, look! I've got some matches right here...

    The CTD events in the engine seem to be a memory issue. They predominantly happen in the open wasteland (high resource drain area), and most often when new objects or actors are being loaded.

    Unfortunately, my bug theories for the Gamebryo engine are much like the theory of Dark Matter: I've got my so-called evidence, sure... but the simple fact of the matter is that at the end of the day, people at my pay grade don't get to look that far behind the scenes, so it's all just supposition.