November engine development news


Heya all o/

Since I tend to work on the fundamental parts of a project early on, here's an update on the development of the VN-engine.

Unity

Everything is based on Unity, "...a cross-platform game engine with a built-in IDE..." (https://en.wikipedia.org/wiki/Unity_(game_engine))
My first impulse was to use RenPy, I prefer coding in Python over c#, but after some brainstorming I decided to use Unity.
Unity is a very powerful and professional game engine with many ready-to-use built-in and additional systems for everything we could ever want. It also offers a higher flexibility at lower effort to enhance the VN-engine in the future however we like or add other ready-to-use functionality to it.

Yarn Spinner

On top of Unity there's Yarn Spinner (https://yarnspinner.dev/), an open source system that handles the interactive VN texts in games, comes with essential functionality to handle the needed logic and a phenomenal integration into Unity.
I wholeheartedly confirm the statement about the "incredible flexibility" of Yarn Spinner for Unity but I was aware that not everything you see on their website is ready to use as-is and needs a lot of surrounding development and integration to do all the Stalking Kittens Series is going to be.

Game Logic

Every game needs an individually programmed logic to control what moves on the screen, the flow of the game and story, manage puzzles and their solution, hold an inventory, keep track of "time" and all that.
I decided to develop a framework that is used from and within the VN-Text using Yarn Spinners built in capabilities so that authors would be able to use the same tools for writing and reading as for all other aspects of the game and don't need to know or even read c# code.
This of course requires clear data structures and interfaces for integration into stageplay, the players UI and Unity's UI.

Stageplay

This is about what players can see and hear while playing the game, besides just reading text and clicking on text to make decisions. Again the textual main functions already come with Yarn Spinner but control of more elaborate display, effects, movement and sound needs to be added.

I call everything that displays in a scene, it's movement, sound etc., be it characters, foregrounds, backgrounds and more, "actors".
Actors have, among other things
  - Multiple graphics for representation
  - Transitions e.g. cross fade from one graphic to the other
  - Animations like moving, fading, scaling, turning and shaking
  - Full fledged unity animations for e.g. breathing or walking and in the future more complex animations
  - Sound like voicemoticons or sfx
  - A data structure for the actors complete state in the scene for saving and loading

Sound system

Besides the actors there is background music, situational ambient sound and sfx in general and from the UI.
Right of the bat the sound system needs to be multi channel and multi mixed.
Plus Yarn Spinner comes with a built-in system for voice overs in multiple languages, so that is a possibility for the future.
I decided that all elements and actors have their own sound source, so to say loudspeaker, to automatically have them be in the actors position in stereo.
The elements emitting audio will have
  - Fading in and out
  - Cross fading
  - Ducking music for actors sounds
  - Automatically set volume for "further away or closer, left or right"  

Yarn Commands: Integrating Everything with each other

All though existing games in Unity are able to do all that, I have to develop everything we are going to be able to do and it's integration with Unity and Yarn Spinner. In some cases more, in some cases less.
Since the idea is that we are able to to develop new games very rapidly it is going to be its own basic engine on top of Unity and Yarn Spinner. That way we have to write only the individual logic of the individual game and stageplay within the VNs text, alongside the writing and graphics of course.
The integration is done by developing Yarn Commands which can be written into the text of the VN with little knowledge of programming.
These simple commands control and manipulate all aspects of the game through all the functionality mentioned.

Saving and loading the game

Unity already provides the basics of file handling, checking and so on.
What needs to be saved and loaded are the combined data structures mentioned that represent all aspects of the game with the option to easily expand this in the future with additional information.
Autosaving, continue at start of the game, saving triggered by Yarn Command, manually saving and loading via the games UI.

Settings and more UI

Of course there will be a gallery for the pin-ups, a NSFW switch and all the usual stuff in the settings.
For future cases I have "movement via a map" and more point-and-click interaction with actors on the stage already on the development roadmap.

All this is nothing exactly new or revolutionary and has been done many times before but not in this combination and it all adds up.
Developing a full fledged VN-engine that does what we need, is easy to enhance later and is built on freely available and open source systems still is a considerable project.

I am already getting there at a sporty speed!

Stay healthy and stay tuned for an update on story and puzzles in about a week!

Cheers /Dagget

Get Reginald Ursington's Stalking Kittens - Knuffles is missing!

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.