I'm quite proud for getting this far into making an RPG, without actually making RPG things like, oh, Quests or Timelines... But I can only put them off for so long. The focus for the next stretch is to get an initial implementation of both into place, and then get a feel for how they'll scale across the full game...
Also! Another slight format change. I was flicking through early Zzap64 Dev Diaries, for a thing, so I’ve decided to go day-by-day and explain a little bit more about my thinking...
Started off with something easy and made a new UI screen for the journal. Simplified the background image, blocked out where the scrolling list will go, and where the explanatory text will appear. None of this is tied to Joypad control, or the Quest system. That’s next week’s job.
Made some new localisation sheets and sketched out how the various bits of text for quests will sit in my DataTables. I decided that rather than one monolithic sheet, holding everything for each quest, I'd have a sheet for the titles, and another for journal logs. The NPCs that give out quests have their own dialog strings anyway, so they don't need to be linked to any of this.
Receiving quests has to be tracked in code, but I'm doing the simplest thing I can think of; I only need to log if the player has been notified of a quest, and if they’ve completed it. So I made a logger, that just tracks these two events.
PlayerState also registers Quest notifications in a stack, so things can appear in the Journal in the order they're given to the player. I’m not going to add any sorting to the Journal UI, but I intend to show the difference between critical-path, and optional side-quests…
Changed the Main Menu so “Continue Game” drops you into the world with the timeline inactive -- so free roam, as things are now -- and “New Game” starts you off in the Players' House, at the start, with the timeline active.
The player's house now checks this, and if the timeline's active, pops up a placeholder "cut-scene-replacement" screen that explains what would actually happen, if I had all the cut-scene sequences in the build. (They’ll be done riiiiight at the end).
Changed how Exterior Doors work: they may optionally lock themselves at certain times of the day, so sorry, no more entering the pub at 3am... If they're locked, they also have the option of popping up a statement dialog, to give a message to the player.
Made Bob Thwarter (ht Nivrig), an NPC that pops up just to block your path. He'll be a recurring character that stops the player free-roaming the entire map until they've done the first dungeon. In fact, 99% of all this work on the timeline is for the first hour of the game, after that the intention is to have everything unlocked…
Got Bob to work in multiple timelines and tested out the process for actors in the world giving Quest Notifications. Bob also automatically removes himself when the correct Quest Completion occurs.
Made a trigger area that automatically brings up the cut-scene-replacement UI (for areas where the map is missing) that's my current placeholder for the initial set of cut-scenes.
Rest of the day was spent being interviewed for a documentary thingy.
More refinements to the Quest Logger. Tried to work out what would be the best way for everything in the world to register and receive quest event notifications. Ended up going with Multicast Delegates, rather than my own thing, but it took me most of the morning to work out the syntax from the docs. My brain was definitely not firing on all cylinders...
The afternoon was spent making a placeholder for The Crone, the main NPC that the player's going to be bumping into throughout the game. She's the exposition giver, so slightly different from other NPCs in that she'll be in multiple locations on the map simultaneously, with different dialog lines, depending on location and game state.
This has successfully kicked the tyres of everything I've made so far this week, and it seems to be working well. I also took the opportunity to refactor some of the Friendly NPC code back into a baseclass, now I know how they're all going to use it.
In the morning I made new builds of Cecconoid for Steam and Itch.io, uploaded them, and gave all versions a test. They seem fine, and the nasty blocker bug in Eugatron should now be fixed.
The afternoon was spent making capsule images… Seriously, this is the worst thing about releasing games; every store has its own format for the marketing images that appear on various types of pages, and they’re ALL DIFFERENT. Fortunately, it was only Steam today, but on a bad day you’ll be doing Hero shots, headers, capsule images and backgrounds for three different stores, and every bastard one has a different pixel dimension. Gngngng.
Anyway, it was for a cause. There’s now a Triple Eh? Retro Collection available on Steam, with a 25% discount on whichever game that you’re missing: https://store.steampowered.com/bundle/15627/Triple_Eh_Retro_Collection/
Have at it!