Sunday, February 12, 2012

BURN COMMA CRASH AND

Got a couple hours testing in on a new FNV game this morning.

Was initially pleased -- as we were finishing up the "tutorial" with Sunny (which I always play through to get the extra ammo) the girls stopped me, each in turn notifying me that she was thirsty, but had a drink on hand.

The code fired.

Once.

Never happened again. Nor did the hunger state ever appear at all.

I know the code is valid... but I have no idea why it's failed this time.

Slack-ass pieces of shit actually drew a salary for coding this engine...

Anyway. Now I get the fun of running up diagnostic scripts, to figure out whether the counter isn't running, or the variable checks are stuck, or what.

From as long as it took to get the one successful appearance, I can tell you that their object scripts are not running every frame like they're supposed to -- the girls' timer started running before mine did, and it was still five solid minutes after I got the first dehydration notice before they did.

Once, just once, I would like this game to obey it's own goddamned rules.

So, bets are off for the inclusion of a working HC mode for NCCS in the near future, until I figure out what in the unholy fucking shit is going on this time.

13 comments:

  1. So you have to re-script Obsidian's entire hardcore mode?

    ReplyDelete
  2. No, couldn't touch that if I wanted to -- most of it is hard-coded.

    My "hardcore mode" for the companions actually isn't tied to the one for the player directly; it's a set of timers, counters, dialogue, and packages that are made to emulate the effects.

    For whatever reason, it isn't running, though. Either the timers freeze, or the packages that have the companions come talk to the player aren't firing correctly.

    I don't know which or why yet -- I spent last night working on a revolver and reading manga instead of fighting with the game.

    That said, I have the sneaking suspicion that this is another one that's going to be too complicated to trigger correctly from an object script. Like the companion management systen, it'll need to run from a quest.

    The code won't be much more complicated; it's just the annoyance at the matter that nothing in the game fucking works right and the people who made it are somehow still employed and winning GotY accolades for their half-assery.

    Assuming of course it'll work at all. There's no reason it shouldn't... but I've said that before.

    ReplyDelete
  3. "My 'hardcore mode' for the companions actually isn't tied to the one for the player directly; it's a set of timers, counters, dialogue, and packages that are made to emulate the effects."

    DOH! I know at some point I knew that; you've explained it to us at least once here. Stupid Swiss-cheese memory! Let this be a lesson to you kids: don't take drugs! (Still glad I stopped doing that crap when I did...)

    ReplyDelete
  4. "Stupid Swiss-cheese memory! Let this be a lesson to you kids: don't take drugs!"

    Room to talk, I haz none.

    After two decades of caffeine abuse, sleep deprivation, and some of my other fun hobbies, I'm generally doing good to remember what day of the week it is.

    Was filling out a federal form 4473 yesterday, and had to stop and think about it to remember when I was born.

    So nope, I will not be flipping people shit over the 'ol steel sieve.

    ReplyDelete
  5. It's amazing what kind of code game developers get away with. You should read some of the gripes by people who've worked on source ports. e.g. C functions 1000+ lines long and game engines where every single variable is a global are just a couple of examples I've seen in passing.

    ReplyDelete
  6. I hate my life.

    Just wrote up the diagnostic script. Got in game to test it...

    ...and the fucking message won't appear.

    It's the same exact method I've used a hundred times before for everything from menus to stat displays, but now it just randomly won't work.

    Will someone please remind me why I even try this bullshit?

    ReplyDelete
  7. "Will someone please remind me why I even try this bullshit?"

    We do it because we can.

    ReplyDelete
  8. Ugh, this is a mess.

    Got the diagnostic script working (the engine was disobeying its own rules again), and after three tries finally got the game to load.

    Issue was caused by a stuck variable.

    Got the variable reset via the console, and ran it again; only to find out the improved scripting that was going to determine their survival skill level on the fly and save me 66% of the dialogue?

    Yeah, despite the fact that it parses fine, it won't run once it's in the game; so the need counter never goes down, and the variable never gets reset at the end of the script -- which is apparently why it was stuck before.

    So rather than providing me an error, the stupid GECK was okaying scripts the game wouldn't actually run.

    The only up side is that by monitoring the diagnostic display, it looks like the counters work correctly... it's just that the game won't let the values lower or the correct package switch-out occur.

    Minor details.

    Vodka. Russian style. Now. And somebody find me a young priest, and old priest, and a tub of holy water.

    ReplyDelete
  9. Dunno.

    I rewrote all several hundred resultscripts this morning into a whole new method, and it still doesn't work.

    The variable still sticks.

    No idea what I'm going to do.

    Though I will confess this is why I normally don't mention stuff until it's almost done.

    ReplyDelete
  10. Actually, looking it over in the GECK now, and I think I might know what the problem is.

    The dialogue isn't conditioned against firing when you're in combat, so if the need hits while there's a fight going on, the "talking" variable will be set, but the companion won't actually be able to talk to you.

    I'll try setting it to only run outside combat, and see if that helps.

    ReplyDelete
  11. Here's hoping that this change will correct the issue.

    ReplyDelete

Note: Only a member of this blog may post a comment.