2020-11-22


Wrote some ZScript this weekend to stand up some narrative presentation systems needed for the previously mentioned, still-unnamed Doom project. On Autobio I called snippets of text, audio, and images "logs" after the Looking Glass Studios lineage concept - it's what we called em on the Bioshocks - but "log" is at least triply-overloaded (the math operation, standard/error output, the verb for writing to same) in general programming. So I called this system "story beats", and I don't hate it so far.


Each piece of content this system can put up on screen is considered one "beat", and a beat can consist of just text, or any combination of text and image and audio as needed. And while the big master list of these beats is still defined in a separate ZScript file, I'll keep that array definition as close to a content format as possible, so I can treat it much like a ZDoom LANGUAGE lump etc. Where's All the Data, indeed.


The impetus for making this new system is to unify all the stuff I was doing on Autobio so that linedef-based triggers, radius-based actor triggers, sector-based triggers, and interaction (use key) based triggers all talk to the same system when they fire, instead of the scattered unwieldy hodgepodge that flows naturally from the very disparate ways ZDoom implemented all those things. I think it will be well worth it, and if this project turns out well I could pretty easily backport it to Autobio and move all past and future work on that over to story beats.


I'm not sure if any other GZDoom modders besides me have any interest in telling stories with these kinds of tools, but maybe more people (including people who aren't GZDoom modders!) would if I released this in slightly refactored form as a general use library-like thing for GZDoom? As always, a solid shipped playable thing is the best promo possible, so I should focus on making that first.


Regarding getting a feed for this project log going: it looks like the Gemini mailing list folks recently worked out a nice standard format for feeds that looks very easy to author and requires no tools to generate, so when that solidifies just a bit more I'll try it out. I do wonder if it'll require each log entry to be its own file. Might be better writing hygeine in the long run anyway.



/projects_log/