Eiko 1.0.0 released


The last week has been a rather hectic one for me thanks to the Lisp Game Jam. I wanted to write a Visual Novel in my favourite programming language (particularly the GNU Guile implementation of Scheme), but it turned out, that I had neither the engine nor the assets to do so. There exists Chickadee by David Thompson and assets are luckily quickly found on itch itself, but those don't really work all that well together. Mixing GPL code with artwork released under an incompatible license just feels wrong.

So I set out and created the Tsukundere Visual Novel Engine. Technically I started a day early and created "Lovebird", which was supposed to extend Chickadee to form a Visual Novel engine, but at that point it could barely read some files in a structured manner and render a few objects stacked on top of each other. Also a day had passed until then. Four days later – that is three days ago – I had transformed Lovebird into something that could run purely on top of Guile-SDL2, which was a major success to me. In the meantime some 300 lines of actual game script had also been written and the script for the first walkthrough was finished.

Development of Tsukundere was pretty closely tied to that of "The Tragedy of Eiko", but I also wanted to keep concerns separated. As with Chickadee, a game utilizing Tsukundere should be free to do whatever it wants. There needed to be some restrictions, obviously. Unlike in Chickadee, Tsukundere only allows one script to be spawned at a time, and indeed the script "syntax" is just a fancy "begin", that inserts a pause after every statement. It did help, that I wanted to do pretty much everything except playing sounds in this novel, however. As I was finished with the script for the main game, I needed credits. So I added a credit roll to Tsukundere, that can easily be reused. I needed sound, so I added (somewhat buggy) sound support. I wanted to skip large parts of the text for testing purposes, so I… you get the idea.

Today is the day I decided that Tsukundere was ready for the public. I haven't touched it for a day, which felt like a good enough reason to release it. I also happened to finish the script for the second part two days ago, so I could work on translating the game to my native language, German. Ideally I wanted to have a French translation as well, but you can't have everything. The second script added 300 LOCs to the script, and at the end I had to translate 300 lines of text for a game whose main text plus credit take up about 700 LOCs in total. Perhaps Ren'py has a better compression ratio, but I do much prefer my parentheses.

The real tragedy of Eiko is, that I was so preoccupied with everything regarding the engine, that I had barely time to write all the dialogue, much less in two languages. It was also my first time using gettext as a maintainer too. Plus it ate up literally all of my free time the last few days. I would still have two days left to make adjustment, but I'd rather not rush them out in the last minute, plus I already have some plans and a huge backlog of manga I want to read.

Development and testing took place on a machine running GNU Guix (what else?), but I would assume, that The Tragedy of Eiko runs fine on any Linux distro, that has Guile 3.0 and Guile-SDL 0.5.0. Guile-SDL 0.5.0 also happens to have Windows support from what I can tell, so you might want to try it there as well. I do feel as though the intersection of people, who can use GNU tools on Windows, and those, who would want to do so (rather than using another system), is fairly small, but I'm willing to be proven wrong on that. Perhaps it might have been easier, had I written a Scheme frontend for Ren'py.

Files

eiko-1.0.0.tar.gz 25 MB
Sep 25, 2020

Get The Tragedy of Eiko

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.