Visual novel engine based on Guile and SDL2
  • Scheme 85.8%
  • C 7.8%
  • Emacs Lisp 2.9%
  • Makefile 1.8%
  • M4 1%
  • Other 0.7%
Find a file
2022-10-23 14:38:25 +02:00
baka Use portable shared library extensions. 2022-01-07 21:24:06 +01:00
debian Release 0.4.3. 2022-10-23 14:38:25 +02:00
doc Update Guile-SDL2 requirements. 2022-10-23 14:23:12 +02:00
examples Fix scaling rects example. 2022-01-08 19:05:46 +01:00
po Update copyright assignments. 2021-09-04 10:46:24 +02:00
scripts Basic documentation outline. 2020-10-16 15:29:56 +02:00
tsukundere Release 0.4.3. 2022-10-23 14:38:25 +02:00
.gitignore Update gitignore. 2021-07-11 18:42:10 +02:00
.gitlab-ci.yml CI: Build for Ubuntu Jammy. 2022-09-17 08:53:17 +02:00
.mailmap Add mailmap. 2021-09-23 23:29:56 +02:00
AUTHORS Update copyright assignments. 2021-09-04 10:46:24 +02:00
ChangeLog Force skipping in ‘speed-through-clock!’ 2021-10-24 15:22:00 +02:00
configure.ac Release 0.4.3. 2022-10-23 14:38:25 +02:00
COPYING Initial version 2020-09-25 15:43:18 +02:00
COPYING.GPL Initial version 2020-09-25 15:43:18 +02:00
guix.scm Release 0.4.3. 2022-10-23 14:38:25 +02:00
INSTALL Port to GNU Build System. 2020-09-30 14:26:05 +02:00
Makefile.am Add make rule to update the version. 2021-10-24 15:37:27 +02:00
NEWS Update NEWS 2022-10-23 14:22:10 +02:00
pre-inst-env.in Update copyright assignments. 2021-09-04 10:46:24 +02:00
README Move README back to README.org to please Gitlab. 2020-10-01 18:26:56 +02:00
README.org Update Guile-SDL2 requirements. 2022-10-23 14:23:12 +02:00
release Release 0.4.3. 2022-10-23 14:38:25 +02:00
tsukundere.scm Update copyright assignments. 2021-09-04 10:46:24 +02:00

Tsukundere Visual Novel Engine

Tsukundere is a tool to help in the creation of Visual Novels using GNU Guile and Guile-SDL. Tsukundere is a portmanteau of the Japanese words 作る (tsukuru, to create) and ツンデレ (tsundere, a person initially acting hostile and becoming more friendly over time) and describes any author's love/hate relationship with their own work as they try to create something new and original.

Features

As of version 0.3.1, Tsukundere contains

  • a simple game loop with swappable parts,
  • an entity component system used to construct scenes, layers, and more,
  • efficient asset loading and organization using PEG grammars,
  • a script mechanism, that allows stepping and skipping,
  • translations via gettext
  • customizable loading and saving,
  • preferences,
  • history-based branching,
  • input via keyboard or menus,
  • rolling credits.

TODOs

See the issues page for a list of what is either not yet implemented or doesn't work as intended. Suggestions and patches are always welcome.

Installing

We recommend you use your distro package manager or GNU Guix to install Tsukundere. (Preferably, GNU Guix is your package manager.)

https://repology.org/badge/vertical-allrepos/tsukundere.svg

If you need a particular version to play some game that hasn't been updated in ages, you can use Guix' time machine or ad-hoc environments.

  guix shell guile -f guix.scm

There are also CI-built packages for Debian Bullseye, Ubuntu Focal, and Ubuntu Jammy.

If none of the above serve your use case, however, you may want to really, really build Tsukundere from source.

Here's what you'll need:

  • Guile 3.0.x, with x >= 2
  • SDL2 (with SDL_image, SDL_mixer and SDL_ttf)
  • Guile-SDL2, version 0.7.0 or 0.8.0

Note, that on some distributions (e.g. Debian), you may need to install the -dev variants of Guile and SDL2. Also note, that you need all of the above already for compiling Guile-SDL2. If, for instance, you are missing SDL_image, Guile-SDL2 will be configured without it, and Tsukundere will not find the (sdl2 image) module.

While building Tsukundere (and its dependencies), make sure that you set up your environment variables correctly. In particular, ensure that GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH include the places in which already installed dependencies are located. On a typical Linux distribution, this can be accomplished with the following:

  export GUILE_LOAD_PATH="/usr/local/share/guile/site/3.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
  export GUILE_LOAD_COMPILED_PATH="/usr/local/lib/guile/3.0/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"

Once you have the above, you can run the GNU build system as usual with

  autoreconf -vif
  ./configure [OPTION...]
  make
  [sudo] make install

Documentation

As of 0.2.1, you can run info tsukundere to read the manual.

License

Tsukundere is licensed under the LPGL version 3 or later. In short, this means that:

  • modified versions of Tsukundere must be made available in the LGPL version 3 or later, or the GPL version 3 or later.
  • Visual Novels created with it must display a notice, that they were created using Tsukundere, include the Tsukundere copyright notice if any copyrights are displayed, as well as include a copy of the GPL and the LGPL. Visual Novels distributed not in source form need to additionally provide install information as laid out under 4e of the LGPL.

Tsukundere is based on

  • GNU Guile, version 3.0, licensed under LGPL version 3 or later,
  • Guile-SDL2 by David Thompson, version 0.7.0, likewise, and
  • Pango, version 1.44, licensed under the LGPL version 2.1 or later.