Briley Witch RPG Diary – 28/11/2017

Hi there! Yes, it’s another diary blog post about my C64 Briley Witch RPG.


Cutscenes, cutscenes, cutscenes…

I seem to be adding a lot of cutscenes these days! I guess that’s what happens when you base a game on a book series. Well, it is my own book series, so I know it inside out. Following my books gives me a good story flow… Er… well… ususally. You see, I’m having to adapt the story to make it suitable for a game. I’m trying hard to not make this one big cutscene driven game where all the “player” does is hit a button to skip through loads of text.


I’ve started the game at the point in book 1 (The Spirit Of A Witch) where Briley arrives at home. She calls out to Smokey, her cat, and this is where the player takes over. In the initial section of the game, the task is to find a way to trigger the meditation cutscene. To do this, the player has to explore Briley’s house to find the items she needs, plus get Smokey to follow her! She needs her special kitty-cat friend, especially in the new world, and can’t leave without him…


There’s also a phone conversation with her mum to contend with, before with everything ready, Briley follows her mum’s advice and settles down to meditate.


But it doesn’t quite go to plan, and Briley finds herself in a strange new world, within the village of Maepole… one where she has to work just to survive! At first the player has to complete a series of tasks given to her by Clarissa, but later on in the game Briley is given way more freedom, and a chance to explore the world outside. There she encounters new locations, ranging from far away towns and villages, dark forests and deep caverns where all manner of creatures live, some of them deadly evil…


But for now, I’m busy coding the Maepole section. This part is split into days, and each day consists of various tasks to perform, some of them linking into “quests”. At first Briley has to visit an old witch named Branwen, a key figure in the game. Briley, being a modern girl, doesn’t believe in magic and spirits, so when Branwen suggests Briley too is a witch, she freaks out and runs away. She comes across a man named Sebastian, a character and good friend who will aid her when she needs him.


Oh, and I should also mention that Briley discovers she can talk to her cat, Smokey, and that he can talk back to her! He’s a bit of a grump, and like my books, that’s reflected in his dialogue.


Day 1 Flow

I have coded a system for managing all the deliveries Briley should make, but I did come across a problem! Although in the books she makes lots of bread deliveries, it mostly doesn’t say to where, only that she makes them! Doesn’t help me make the game!


As a result, I’m adding different tasks for Briley, to remove any repetitiveness. On day one she has the following: a bread delivery to Branwen (triggering a cutscene where she learns some of the world), a quest to eradicate some rats infesting a nearby old house (introducing basic combat to the player), followed by a task to fetch water from the river (showing the player where to fetch water – water is needed to make potions later in the game).


At the end of day one she is introduced to ale, a drink that she doesn’t like, and one that has a negative impact on her health! Instead, Briley needs mint tea, and that’s where day 2 comes in.


Day 2 Flow

I’ve coded Briley first task for day 2, to find herbs for Clarissa. These are plants scattered across the village and need to be found as these provide Briley some of the herbs she’ll need for potions. One of them is mint, and when this is found, it triggers a cutscene where Briley becomes excited and tells Smokey she can make mint tea! He’s not so sure, accusing her of being a little crazy…


To brew mint tea, Briley needs to go back to the house and interact with the hearth. I’m using my potion mixing code to do this, and it works rather well! I had to change the code a little, and add mint tea as a potion-like item, as well as a potion spell… Sounds strange, but trust me, it works. Instead of a (MIX) option on the potion window to trigger a potion mix, the option becomes (BREW). I had to change the messages too, as well as bypass the potion mixing visual effects.


Fortunately, since all this code is held within the mix potion cutscene file, any code/text additions have no impact on the main code RAM I have remaining. Code RAM has slipped down to 6.5K left, but that’s okay. I’m adding a lot of new functionality at very little cost, embedding most of it into my cutscene files. Also, I still need to do another optimisation pass, deleting old code as well as moving more common code into code overlays.


Hmm… I still need to find a way to indicate to the player they can brew mint tea at the hearth… Right now I’m thinking of adding a short cutscene with Clarissa, one where a mug is placed upon the hearth as an interaction object.


As for the rest of day 2… Well, there’s an illness going around the village. Perhaps Briley (with Smokey’s invaluable help) can discover the cause and help everyone…


More To Come…

I have to say, I’m still in love with my whole system; the ability to embed code/text/data into a code overlay file takes away a lot of pressure on memory, allowing me to add cutscenes and special case code.


I have to keep an eye on the size of each code overlay file as they cannot exceed 4K; my assembler outputs the length of each code overlay, so I can track their size.


[image error]SJASM output showing code overlay sizes.

Fortunately, with the chaining system, size is not a problem with some of the larger cutscenes as they can be split over several files. As an example, the whole arrival cutscene is split over 5 parts, with each part chain-loading the next.


Last night I added a new generic flags system. I’m reserving 16 bytes for these, giving me 128 flag bits. Basically, they are general purpose flags used to record certain events. E.g. when Briley first drinks ale (it changes a later cutscene’s text if she does). The flags are saved in the save-game file so they persist. Flags can be either set or cleared, and can be tested in either the main gameplay code or a cutscene. With these I can implement branching within cutscenes… Well, once I add the new cutscene commands.


I know, I still need to write another blog post detailing my cutscene system.


Slight Assembler Change

Oh, and I modified my assember not so long ago (I love having my own assembler!), adding the ability to embed word-sized values into the data by surrounding the value with [].


In the past I had to write code like this:


byte CSCOM_sprite_stream

word .stream1


But that now becomes:


byte CSCOM_sprite_stream, [.stream1]


Makes everything look much tidier in the data files! I’m fixing older cutscene files as I come across them (or when I’m procrastinating instead of adding new code).


Thank You For Reading!

This feels like such a big project, and I’m a long way from the end, but I’m having fun coding this! I hope the end result is as enjoyable as it’s been to code this game! Time will tell… I’ll probably need some beta-players to help me test everything…


Well, that’s all for now! Hope my mad ramblings were interesting!


 •  0 comments  •  flag
Share on Twitter
Published on November 28, 2017 05:38
No comments have been added yet.