Quest Failed: Chapter Two - Dev Log #51
Added 2018-05-14 01:17:59 +0000 UTCHiya there! I'm back with another dev log~
Based on feedback from the last dev log, I wanted to test the waters a little and make this one a little more technical than usual; more an actual log of development than just teasing you all with pretty pictures, haha. Though, those aren't going anywhere, don't worry--they might just slow a little in number as by the time Chapter Two releases I may have already shown you everything the game had to offer, and what fun would that be? I'm trying my best to restrain myself and leave a good number of surprises for you all to find when you finally play, but in turn, am trying to keep you all up to date with how things are going and show you a good amount of progress is being made!
If you have any feedback on what you would personally like to see out of these weekly posts I make, please let me know--as I want to put you lovely patrons first and foremost and do everything in my power to please you! (N-not in that way, baka) I'm going to try and mix things up between dev logs too with other kinds of content if I can help it (think bonus pieces of art, audio scenes, etc.!) I have a few ideas in my head that I'd like to try out for posts (maybe more fun Q&A sessions with the monster girls answering things directly? Though due to budget and time constraints they wouldn't be voiced and just be plain written posts), but am open to suggestions, too!
Moving on the to the meat of the post--I want to talk about the script files, how I use them, and how they're sorted into different categories, to give you a general idea of how all the systems link together in this game and some of the work that goes into it all.
As Chapter One was a fairly linear game, I kept things fairly simple with two main scripts as far as the story was concerned; one that housed all the declarations for sprites, nametags, etc. and the other that contained the entirety of Chapter One's story (not including the journal or bonus stuff!) Since choices made some simple forks in the story here and there, and culminating in a special h-scene depending on your choice, it was pretty easy to just keep everything in order in one little script file.
However, for Chapter Two, this is what the script files look like:

(I'll preface things by saying there's probably a million ways to tackle this kind of system and not to take mine as the gold standard, but this particular method is the one I find the most organised and I can manage without losing my sanity!)
Now--there's a lot to take in here, so I'm going to go through each script file individually and detail what it contains and how it interacts with the rest of the game!
To start with: script.rpy is my base script file. I could probably stand to name it something more appropriate, but at this point I've kind of gotten used to keeping it named like this. This script file essentially contains everything I need to define for the main game; sprites, CG, name tags, you name it, it's probably crammed away in here!
To give a better idea of what I mean by 'define', I'm essentially taking files from the game's folder and giving them set defined names/handles that I can reference to within the script for easier access. For example, a cg scene that has many parts would look like this as I set each part:

As you can see, I turn the longer filenames from the game's main folder into categorized shorthand versions, defining them all in a group of 'cg3', so that they don't get mixed up with other cg scenes. Especially with parts relating to Matt.
This also gives you a glimpse into how I 'layer' CG scenes piece by piece in-game, recreating the main picture but keeping things like different poses/expressions on their own layers, so I can easily swap them in and out within the scene without needing to re-import the whole scene again just to reflect that one change. This gives me incredible flexibility within scenes and lots to play around with as I piece things together!
Now, moving on to script_opening.rpy--this one is pretty self explanatory: it contains the entirety of Chapter Two's opening series of events, up until the end of the first night spent at the inn. Due to the more linear nature of the first day and some of the more unique properties that came with it (Ren's tour, etc.) I decided to contain it all within its own little script as to not confuse it or cross it over with the game's more open elements. All in all it's pretty isolated and doesn't cross over too much with the remaining script files. Which leads us to...
script_navigation.rpy! This is essentially the main 'hub'--the crossroads that branches out to every other script file depending on the choices made and factoring various other variables into the equation (time of day, current day number, quests completed, people already met, etc.)
The easiest way to explain it is that when Matt wakes up in the morning and a new day has started, you're brought into the navigation portion of the script, presented with a large list of choices of where you can go during that day. (Quest Board, visiting characters, etc,) and it's from here your choice factors into which script you connect into next. For example, say you were choose a quest...you would then end up in...
script_quests.rpy--this is a fun script file for me, since it's a large, large script file of all of the game's side quests you can choose from, all ordered in a big list. Slotting in new quests is as easy as just setting up a new label at the bottom of the file and going to town, giving me a lot of freedom in making each side quest its own contained little adventure without having to worry too much about fitting them all together like one big story. (Though where applicable I do try to reference past quests and have small things change here and there depending on what you've done first. For example, visiting a certain forest for a different quest before meeting the 'Queen of the Forest' will prompt a slightly different start to things compared to if you've met her before.)
One you complete (horribly fail) the quest you're on, you'll be taken to a series of events that transition the game to evening time and send you back to the navigation script. (There may be rare quests that take place at night and function differently, though the majority are day quests) From here the main gameplay loop begins again, leaving you free to choose from more options. Though more often than not, choosing something such as the inn, or the church will then interface with...
script_events.rpy! This script functions as a middle ground between the side quests and the game's main story, housing the game's many optional events that you might stumble upon. Be it optional h-scenes or dialogue sequences, the events script holds a large number of scenes that are called upon depending on the situation, organised by day and night, and further split up depending on the current day you're on. For example, there's always a unique scene waiting for you at the inn every time you return for the night. Though--scenes that concern someone like June, for example, are dependent on how much gold you've spent with her, rather than changing day to day, so there's a lot of variables to consider when planning this stuff out. Admittedly it can be a headache to lay it all out and not confuse myself, but in the end it sort of just 'clicks' once I've got it all connected together seamlessly. (At least I hope it's seamless and not prone to bugging out!)
I don't want to say that some scenes are like 'puzzles' to unlock, or will require complex combinations of choices, but some specific h-scenes will take some logical thinking and favouring of certain characters to get to their scenes. Human characters especially, as they tend to be a little more picky on who they jump in bed with, unlike monster girls that kind of just pounce the first living thing they see~
Finally--we're left with script_main.rpy! This script file is 100% dedicated to containing Chapter Two's main story, keeping all the plot (and 'plot', winkwinkhinthintnudgenudgecoughcough) important sections safely stored within as to not spread them out across the numerous other files and risk getting them tangled up in what's already a delicate web.
As the game's main story unfolds at set points in the calendar, you're brought to these segments via the navigation script, which will check if it's a plot important day, and then accordingly lock you out of the 'free time' events and ensure you make your merry way to where the main plot demands it. But I try not to force too much linearity down player's throats and space these story moments between plenty of more open segments, so you feel as if you're creating your own little adventure and forming the bonds you want to form in between these serious portions. Which is not to say that when you're progressing down the 'main' script segments that things will be 100% kinectic--far from it! You'll still have choices to make that will branch the main plot down specific routes, and some of these main story segments even take into consideration choices you've made during your free time moments, with some fun surprise moments lying in store for you if you've made the right choices!
And whew, that about does it for this dev log--an actual development log for once, what an occasion~
I wrote far more than I intended, and I'm unsure if it was any fun/interesting for anyone to read, but let me know what you thought and if you had any questions/queries regarding anything you've seen today. Based on feedback I'll try to adjust future dev logs to fit what you guys are happy with--and if these long, rambling posts about script files maybe aren't what you were looking for, I can change it up no problem until we find a formula that works!
Thanks again for your amazing support as always, and until next time!
Comments
Man I can only imagine the hours it took you to sit down and WRITE all those scripts. Hell I could barely do 15 pages worth of content for a research paper and it took me 3 hours over seven days to finish. I hope you get yourself a beer or go on vacation after this. Thanks again for the content.
Mart-Kos
2018-05-14 03:42:11 +0000 UTCThat was great! Thanks for sharing\
Michael Vaccaro
2018-05-14 03:26:47 +0000 UTC