New Game Engine Adventures (October 2023 Update)


Hello everyone! Happy October~ Time for a monthly progress update! (Note that from now on, this monthly update will be a general "Chattercap development update" as opposed to a strictly Actala one!) 

I'll start off with the big stuff: I started migrating game engines, from Unity to Godot. You can read the rationale behind my decision here.

GAME ENGINE MIGRATION HELL…OR NOT?

Overall, the migration is going fairly smoothly! Godot has pretty robust C# support at the moment, so I was able to migrate/translate a fair amount of my basic C# codebase from Unity to Godot without issues. Visual novels are pretty lightweight games, so apart from some issues with mobile builds, I think it will go well, and I will continue working with Godot for the time being.

After I spent a few days experimenting with the systems, I programmed in my story parsing logic and finished a basic game loop. Currently, the text handling is complete, with all of the functions that I initially coded in (branching paths, nested choices, conditionals, etc.) Auto and fast forward are also functional, and I also worked in the saving/loading. In addition, I added a few additional functions: sections (the ability to parse the same text file into different scenes), checkpoints (the ability to easily navigate back to a specific line), and "unsticky choices" (the ability to make choices "disappear" if you've seen them once).

I also programmed in a NVL mode. For anyone that's not familiar with VN lingo, the standard format of sprites on top with the text box below is called "ADV" mode, whereas "NVL" mode features text overlaying the entire screen (usually with some kind of darkened background for visibility - like above). NVL mode is less common in VNs nowadays, but it's useful for long monologues or narration (whereas ADV is best for dialogues). I also coded in the ability to swap freely between NVL and ADV mode.

In addition, I implemented customizable text. Basically this is text that can be adapted based on user input. For anyone who has played games with customizable protagonists, this is useful for adding things such as pronouns.

I also worked on a few simple "polish/quality of life functions" (that existed in my Unity build, but required new code and a bit of fenegling to work in Godot):

-A typewriting effect so that text fades in instead of being shown all at once.

-Text boxes that dynamically size based on the text inside.

-Making buttons scale as you hover over them.


I also designed some new basic GUI. While I'm not sure I'll actually use this GUI unaltered in any game, this is a good "base framework" with all the necessary elements.

The updated save screen now has 100 save slots (I'll see how large the save files get and adjust accordingly), and it saves a screenshot of the current game screen in addition to the current line. (I was pretty proud of myself for this one!)

Lastly, I started working on a rollback function. If you're familiar with Ren'py games, you know that when you scroll up on the mousewheel, it basically "reverses" the game so that you can easily go back and reread text or play different choices. I didn't implement this when I first made my framework in Unity because it is a bit complex; there are a lot of variables and edge cases that you need to take into account, and it basically requires me to "double" the amount of code, as I need to account for both a story running forwards and a story running in reverse.

Since I'm basically rebuilding my framework from the ground up, I thought it would be a good opportunity to try to implement a rollback, as I can code it in pieces as the codebase is being built. Currently, rollback is functional!

EVERYTHING THAT'S NOT CODING HELL

My focus this month was The Deepwater Witch! The sprites for the leads are fully rendered, with two variations for each, and now they just need to be animated. Around a third of the CGs have been storyboarded, and I also took reference photos for the backgrounds. The script is up to 26,281 words.

I also worked a bit on character designs for Hanasu, the Karamu sequel.

PLANS FOR THIS MONTH

For coding, I will start implementing basic visuals - sprites, CGs, and backgrounds - before moving on to audio, visual effects, and other advanced visuals (animated panels, etc.)

For everything else, since Once Upon a Time VN Jam has officially started, I will continue focusing on The Deepwater Witch until the first draft of the script is complete, and all of the CGs and BGs have been storyboarded. After that, I will start working on my other projects with less immediate deadlines.

Thank you to everyone who's keeping up with my development shenanigans! If you want to hear from me more often, I post most of my major announcements on Tumblr and Twitter. I also post almost daily on my Patreon with sketches, writing snippets, sneak peeks, high resolution art, and weekly devlogs.

Leave a comment

Log in with itch.io to leave a comment.