Message on the wire

Lovely Kana

# Overview

Lovely Kana is a PC-9801 inspired visual novel revolving around the life of a humble, overworked office lady.

Live life through the eyes of a hard working office lady, as a big deadline looms in the future at work. As the day progresses, she’ll accumulate more stress. Balance stress, laziness, and other day to day chores to keep Kana employed.

upload successful upload successful

As always, the LD entry page can be found here

# Design

Kana was meant to employ a simplified version of visual novels from the PC-98 era that used time management mechanics. We baked it down here to a series of pre-defined time blocks that you could make choices in. These minor day to day decisions all had consequences that could build up over time, so the goal was to manage Kana’s stress levels without getting fired for slacking off or going crazy.

# Writing

Kana was very fun to write, because it didn’t really require any thought. Each micro event was basically it’s own little vacuum so I could stuff in whatever joke, quip, or reference I wanted and didn’t need to really care how the story might be affected.

The main challenge was just the text box size, so everything had to be fairly brief and concise. I would often find myself rewriting lines to make sure they didn’t force a new line, since this always felt bad.

# Tech

You’ll notice the “edit data” button on the main page. This brings up a really gross web UI that lets you edit events. This feature is a harbinger for Butai, and later Flow; two systems I build to make writing event driven stories easier.

Earlier I mentioned that writing for Kana was easy; this is true. The hard part was building events from the writing. There are a lot of moving parts here with stress checks, stat modifiers, etc. The UI here was written with the intent that I could more easily manage all of these states, but it just doesn’t accomplish that goal and probably makes it worse honestly. Ultimately you need a better visualization of constraints and data flows than this kind of interface can provide.

A good indicator of how bad this is: I built it originally for a writer on our team to use; they saw what I was building and suddenly was too busy to help. I’m not saying they bailed out because I was building a bomb for them… but I wouldn’t blame them, and I find it amusing either way.

# Haxe

Kana also was a technical shift in my workflow; while STEEL GEAR CHAOS was pure javascript with pixi.js, Kana was written in haxe, using pixi externs.

There were a few motivations here, but one of the biggest was that I wanted a typed language, but still needed to write stuff that could be played on the web. While Typescript is the more common answer to this, I used it at work and had developed a deep hatred for the npm/transpiler workflows that web apps used.

# Play

The latest version can be found here