Sunday, 26 November 2017

Hierarchies

Yo,

So it's been another productive weekend, here are some of the things I've added or fixed:

- Fixed hungry process needlessly monitoring weather every tick.
- Fixed hungry scene setting process which was listening every tick for changes in room (see below)
- Set up a proper script dominance hierarchy (roughly speaking) on the back of the changes above.
- Added new open-ended rauchy scene (another pretty big narrative block down)
- Implemented various smart caching...caches. Currently tied to maps, but will change over time to be map-agnostic.
- Fixed some conversation ordering to make some interesting lines prominent, not hidden away in choices nobody will make
- Removed some choices that offered very little and complicated the flow immensely


Hierarchy:
This was the big victory of today. While fixing a rare picture-layer based crash (due to a bug in the engine that's never going to be fixed) I took the time to create a proper hierarchy system to ensure things execute exactly in the order they're supposed to, instead of just roughly in the order they're supposed to.

Until now I'd been doing everything in-editor, but for this I actually made a plugin so it happens at the engine level and not as a result of listening and delayed by a frame, which caused some timing issues with scripts that wanted to run immediately.

Now every time I change map, there are switches set that run things and it goes kinda like this:

==============================================================

Change map
> Switch 1 turned on

Switch 1 activates scene-setting, music, images, everything needed for the room, turns on Switch 2 then kills itself.

Switch 2 activates initialization for the map, setting immediate conditions depending on the story point we're at, for example placing characters where they ought to be at this moment, turns on switch 3, then kills itself.

Switch 3 allows all the storyboarding to run only after the scene is set and all actors and conditions are in place.

==============================================================

All of this plays out in about 1 second, so it's great to have confidence now that these processes aren't all running together and overwriting each other:
Example from before: Scene setting deleted all images, potentially in the same tick that Init was trying to draw an image that Storyboard would then rely on. See the problem?

So until now I'd been running all of these simultaneously like an absolute tit, and it was a miracle everything worked as well as it did. I'm so glad I ran into a major bug with this, so that I couldn't handwave it any longer. Now everything works better than ever, it's just solid.

That's all for now, just checking in.
Here's something I was working on a couple of days ago.
I want to cut down on gifs in general because spoilers, but it's been a while so here's something.
I've partially censored it because this is a proper blog for good, upstanding people, I'm sure you understand.




4 comments:

  1. Strange way to use sun tan oil, must be an american thing.

    ReplyDelete
  2. ay good shit man keep it goin

    ReplyDelete
  3. Dude ill patron you for life, your game is going to be so good

    ReplyDelete
  4. ༼ つ ◕_◕ ༽つ OKO TAKE MY ENERGY ༼ つ ◕_◕ ༽つ

    ReplyDelete