YNK ZERO Devblog 1: Breaking Boundaries


Hello, world! Lucas Chasteen here, author and developer of Yugure no Kagami ZERO and the VNgen visual novel engine it runs on. From its very inception, VNgen was my way of re-thinking the visual novel experience from both a developer and user perspective, and while I’ve had the opportunity to talk at length about the developer side of things over the past two years, I’m incredibly excited to finally present my own work with the engine and share a bit of the journey along the way.

In this series of devblogs, we’ll periodically go behind-the-scenes to look at progress as it unfolds and also grab a sneak-peek at features being implemented into YNK. As should go without saying, everything you’re about to see is in an early pre-release state and is subject to change.


Creation Without Limits

Yugure no Kagami has been a long time in coming. The first inklings of the concept date all the way back to 2014, although it wasn’t until much later that development as a visual novel started in earnest. Way back in the early days, YNK was also planned to have some form of role-playing gameplay segments with visual novel content layered on top. Although this scope would ultimately prove impractical for delivering such a massive script, it still played a very important role in determining the engine used for development to this day.

Whether you’re a game developer or not, you’re probably aware of some of the more popular game engines out there. The market for this type of product is staggering, leading to the rise of many options to choose from—which is a good thing, because committing to one engine over another is a big decision that’s not easily reversed. More options means a greater chance of finding the engine that’s right for you and your project. And YNK started off with high demands: it needed to support multiple modes of interactivity on multiple platforms and scale well to small development teams. But more importantly, it needed to stand out—to offer presentation a cut above similar projects. This quickly proved the most challenging prospect to fulfill. There are certainly engines out there designed for creating RPGs and visual novels, and they may even be suitable for small teams and offer support for a handful of different platforms. But if there’s one defining trait to these kinds of engines, it’s similarity of output. You may even be able to name what engine a game was made with just by looking at it! Although it’s certainly possible to create unique content with just about any tools out there, it’s an added challenge that often involves overwriting significant portions of built-in engine code with your own.

This got me thinking: if writing my own engine was inevitable anyway, why put all that effort into trapping Yugure no Kagami in someone else’s?

Of course, that’s not to say YNK eschews existing engines entirely—far from it. But instead of an engine like a puzzle, where all the shapes of the pieces are predetermined, I decided YNK would be better served by an engine like an easel, where the available elements are predetermined, but the possibilities are endless. In the end, GameMaker Studio was chosen for its excellent markup language, GML, which combines real programming with speed and ease of use that are, in my opinion, currently unmatched in the game engine space. On this I built the Quantum framework as a sort of middle layer between the base engine and actual programs which run on top of it, and from there built VNgen on the Quantum framework. The result is about as close to a fully custom solution as you can get on a third-party engine, and makes it possible to achieve bigger things with less time and fewer resources than has ever been possible for visual novels before.


VNgen supports real-time effects like particle systems and shaders, which were initially planned to be used for the weather shot seen above. However, in the end, pre-rendered animations were used to support very low-end devices instead.


Language Without Barriers

It’s hard to show off just how powerful VNgen is with work-in-progress images and placeholder assets, but suffice it to say this will come in time. (Until then, you can check out the official mascot demo for a taste.) What couldn’t wait is a model for dealing with a rather different sort of limitation in game development: language. As a trilingual person myself, I place great value in my content being accessible to as many people as possible in their native language. Unfortunately, unless you plan ahead for this from the start, translating a project can be an extremely tedious process. Although VNgen includes built-in language controls, this was only ever intended as a ‘better than nothing’ kind of solution—something that’s obvious and easy to use for new developers. It’s hard to come up with a one-size-fits-all solution to the problem of localization, and that meant creating a unique language map system just for Yugure no Kagami. And by ‘unique’, I mean setting a target for something rarely (if ever) featured in games: native support for fan translations.

Fan translations are an often underappreciated and even stigmatized corner of the games community. The amount of effort put into making games more broadly accessible for the sheer passion of it is very admirable, but unfortunately often requires hacks and patches that violate the license agreements of the games being translated. With language maps, however, YNK will require no such modification. Instead, all relevant text data is stored externally in a database which is scanned and loaded at runtime. This database is not human-readable by default, and cannot be converted to plain text outside the game. However, it is possible to convert plain text into language maps using a simple tool which will be released to the public sometime after Yugure no Kagami’s launch. This means the original database is still protected while fan translators can also add new ones into the game without modifying anything. It’s literally drag-and-drop, and from there, the custom language map will appear in the game’s settings menu like a first-class citizen.


Work-in-progress dialog scene using placeholder character and scene graphics. Background placeholder is generated in real-time using XGASOFT pH. Also seen here is an example of Yugure no Kagami ZERO‘s UI, which features on-screen overlay support for keyboard and mouse, Dualshock 4, and Xbox One controllers.


Beginning Without End

Although it’s taken four years to get here, all the necessary systems for Yugure no Kagami‘s development are now functioning and in place. It’s been incredibly rewarding to transition from just developing systems to using them on a daily basis for myself and seeing YNK come to life. The combination of VNgen and language maps truly blows the future for the project wide open, and this is just the beginning.

If you enjoyed this little behind-the-scenes look, be sure to stay tuned for next time, and tweet us your questions and comments to let us know what you’d like to see!

Also, if anything you read about today was exciting to you, please consider supporting XGASOFT on Patreon to help us keep on developing and providing you with exclusive rewards!


Lucas C

Telling stories with code.