Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Liliana Prikler

47
Posts
33
Followers
A member registered Sep 19, 2020 · View creator page →

Creator of

Recent community posts

Packages be like "this is not even my final release", which is kinda a tautology safe for projects considered dead.

Ahh, yeah, that's a typo. It ought to be "tsukundere run -L".  Btw. since you're coming from onsen-ningyo, I should warn you that this one requires Tsukundere 0.4.x, which also means bumping Guile-SDL2 to 0.7.x and installing libpango1.0-dev before running Tsukundere's configure sequence.

That being said, you should encounter less bugs on this one (though tbf. I haven't evaluated all the bugs that come from "side-by-side" installations on traditional distros).

*Tough journey?

In any case, Tsukundere 0.2.4 is out, so go get it :)

I think I know this bug and also how to fix it, but I haven't backported the fix to the 0.2.x series yet. Lemme get back to you with the release of Tsukundere 0.2.4.

I should thank you for pointing out the flaws in my documentation. We're all learning.

I sadly don't have a Debian/Ubuntu machine. I'm living in the luxury called Guix System, which basically means none of my packages will ever lack a dependency in their closure.

That being said, you only said "it did build", not that you installed it. Can you check the contents of /usr/local/share/guile, as well as your $GUILE_LOAD_PATH in the shell you're trying to configure this game in? If that all looks fine, have a peek at the output of the Guile REPL when you enter

scheme@(guile-user)> ,use (tsukundere)

Note that the scheme@(guile-user) here is Guile REPL prompt.

I'll try compiling all the debugging steps here into a more useful README next time.

You're still on the wrong branch. This game needs Tsukundere 0.2.x, but you're trying to compile 0.4.x. Here's a link to the 0.2.3 release.

I think you need to reconfigure Guile-SDL2 (+ make + install), because it'll only build the parts found at configure time. Btw. you'll also need libsdl2-mixer-dev and libsdl2-ttf-dev.

It's probably something very stupid.

Have you checked your $GUILE_LOAD_PATH? It should be something like "/usr/local/share/guile/site/3.0:/usr/share/guile/site/3.0" – chances are that the first entry is missing.

(1 edit)

An interesting error indeed – if I recall correctly, it should fail a little later, particularly for (sdl2 hints) – but you're trying to build 0.4.x instead of 0.2.x ;)

Also, not that it matters too much, but the "x" tarballs correspond to the head of their branches, which are a little more volatile than the releases where x is a number.

(1 edit)

If you got to this point, I'm pretty sure you already have guile-3.0-dev (if not, simply install it from apt, the version in debian bullseye ought to work fine), so let's continue from there.

First you need to get Guile-SDL2 0.5.0, run the good ol' configure, make, install. Next, do the same for Tsukundere with any release from the 0.2.x branch (ye old 0.2.3 has gathered some dust, but ought to work). Finally, rerun ./configure and you should find it :)

True, true, but I'd argue that this infodump serves another function besides the dump itself. Yuu are quite literally being thrown into a world, in which the first thing Yuu are fed with is not some knight and princess romance novel, but straight-ass propaganda (Yuu may now apply XKCD 37) from a history teacher using boring Frontalunterricht. Yuu can be a good citizen and internalize it or Yuu can try to spot all the bullshit, but Yuu can not easily escape it.

Tsukundere is not at a stage of development where it could easily define its own language. You still have to do much with SDL2. You can however use Wisp – for the Guix recipe you need to add it as input, otherwise simply have it in GUILE_LOAD_PATH.

I'm a bit torn on the infodump. I don't think I can shorten it that much without compromising on the core themes of this dystopia.

What exactly is your setup here?

language/tree-il.scm:111:0 is as far as I can see unconditially invoked at some point in language/tree-il.scm (definitely on load in interpreted mode, but IIUC the compiler should be able to evaluate it at compile time, so if you load it compiled, it should already be done). The stuff above it would indicate a compile error, and you at least appear to be using Guile 3.0.2 from the line numbers, but from personal experience  both Tsukundere and dystopia ought to compile with that version.

Even if I were to inject syntax errors into dystopia.el, I can't bring it to match your backtrace, which might hint that the source of the error lies in some auto-compil(ed|ing) Tsukundere. Do you get a filename anywhere during that backtrace or before it?

Oops, good ol' typo.  Put a "run" between "tsukundere" and "-L".

I must admit, getting killed in a revolution turn one was quite funny. However, I did get a traceback after playing for some more than ten rounds:

Error: render-card.lua:353: bad argument #2 to 'format' (no value)
stack traceback:
[string "boot.lua"]:777: in function <[string "boot.lua"]:773>
[C]: in function 'format'
render-card.lua:353: in function 'card_draw0'
sample-card.lua:83: in function 'draw_pot'
sample-card.lua:336: in function 'sample_card'
mode-game.lua:353: in function 'draw'
[string "boot.lua"]:618: in function <[string "boot.lua"]:594>
[C]: in function 'xpcall'

Apparently you can deck out?

Note, I'm not using any of the blobs shipped, instead running Fennel and LÖVE from Guix.

Heads up, the source tarball seems to be missing some important files, like a README or INSTALL and most importantly guix.scm :P

I'mma try cloning your git.

Regarding the tar bomb thing, I checked my previous build and it was also a tar bomb. IIRC most graphical clients were smart enough to implicitly create a directory, but tar itself notably does not do that unless asked to.

And of course, the digital deluxe tarball is a 200$ bomb too, not that anyone would ever buy such a joke :)

Heads up, you have a (potential?) typo in the README. According to this page, credits ought to go to "NURROCHIN", but the README says "NURROCHI". Are both names correct? What if I were to credit "Nurro Chii" (as in the Twitter handle)?

Hi.  Actually, the Downloads contain only the source code, so calling that a "Linux version" is a bit of a stretch by most Linux distributions as well ^^"

In theory, the novel should run on any machine you can get Guile-SDL2 (and subsequently Tsukundere) to run.  At the moment, the platforms on which this is known to succeed are Debian Testing i386 and amd64, Ubuntu Focal amd64 and GNU Guix x86_64¹.

Since you are querying for a version other than Linux, I assume you are little interested in Fedora or Arch, which are hitherto untested Linux distros.  I will also assume you're not running *BSD, the Hurd or any other OS with a comparatively minor market share, as you would have specified so in that case.  Which leaves us with the giants Microsoft and Apple.

For Microsoft "Win"dows, there are currently only some failure reports from which all I can deduce  is that existing guides need to be taken with a grain of salt.  Stuff you can try include MinGW, Cygwin, WSL, virtual machines and upgrading to Linux.

For the Apple OS, Homebrew should give you both a working Guile and SDL2 package², so you should be able to build Guile-SDL2 from that.  Only problem might be locating the shared library IIUC.

¹ This is equal to amd64 on Debian-based distros.  i386 probably works as well, but I only have my own machine plus the unknown thing CI builds on.

² I have not verified that it actually does.  Please don't hate me, Apple fanboys.

To be fair, I can understand that not getting some game to run is probably the most frustrating to those for whom this comes as a surprise and many people – not just Windows users, although they make up a large portion – simply expect random binaries from the internet to just work™, an experience that I not only can't give currently due to technical reasons, but also find somewhat concerning on ethical grounds. But yeah, you probably don't want me ranting about Windows in response to "running game hard :[" either. Quick note regarding my setup: I would have to use a friend's Windows machine for debugging purposes (already not an ideal starting point) and it has the habit of flagging a "Hello, world" program, that runs fine with a bit of Wine as a virus. It's probably detecting the GPL as Steve Ballmer intended. I would probably need a person more experienced with the Microsoft OS to help me out there, but from personal anecdote increased knowledge of how Windows works also comes with an increased likelihood of having at least an Ubuntu dual boot and thereby not being affected by this problem.

Regarding the assets, those are actually not public domain. I just checked the README again and I'm not even mentioning any licenses that would imply such a thing either, so it would appear that for once none of my assets were actually drawn from the public domain for a change – most of my other work at least uses CC0 music, but you can't get that with Touhou, now can you? Out of the licenses that do apply to the assets, ZUN's policy statement is certainly the most restrictive, but when it comes to e.g. kaoru's stuff, that actually has a disclaimer that it can't be used commercially. Just wanted to throw that out there for potential legal reasons.

I don't believe losing faith is quite as hard as Touhou canon makes it out to be, especially in the advent of the Corona virus. People still turn to God when vaccines would be more effective… no, I don't think Kanako would give up on gathering faith were it not for quarantine restrictions. While it wasn't explicitly mentioned in the text, Yukari "detaining Kanako and Suwako for their own good" was meant to imply that the disappearing of the shrine was actually her doing – she gapped the two together with the shrine as it'd be less work than contact tracing.

On the part of having no idea why or how Renko is there, neither does Renko herself – it's alluded to in the first line. Metatextually I'm using her as a gappy and player stand-in of course, but her only roommate is Maribel and of course they never married (but did remain best friends for the rest of their life and even after that). As to how much time travel was or would need to be involved to get her there, I honestly can't tell. Sumireko could be Renko's distant ancestor, but she could also be her sister or cousin, it's all fan theory and speculation as of now anyway. Though as far as my interpretation of Yukari is concerned, Renko would seem to be an unwanted entity in Gensokyo…

It is just the source tarball after all. You're expected to use your local installation of Tsukundere – if available – or the Guix package description located in gensokyo/rainbow/incident.guix

Okay, my bad, the restart error might actually be something else. Try replacing 

(define (current-window) (fluid-ref *window*))

with

(define (current-window) (and (fluid-bound? *window*) (fluid-ref *window*)))

in line 45 of tsukundere/game/internals.scm. Please report back if that fixes the issue.

Nice catch on the README error, it's surprisingly difficult to type out "run".

As far as the GUILE_LOAD_PATH thing is concerned, other games I've made did have slightly better documentation in that regard, but it really ought to be documented as part of setting up Tsukundere. configure.ac is a good way of detecting broken setups, but not a good way of teaching the correct method. A thing that many people will get wrong because they don't care about it, is putting environment variables in bashrc. They don't belong there. Use bash_profile, profile or /etc/environment.

The current-window thing might be a bug of broken compile caches. I don't see you having set up GUILE_LOAD_COMPILED_PATH, so I'll have to assume everything gets autocompiled on first execution. Try cleaning $(HOME)/.cache/guile.

As for the choices it is basically the same incident but with a different perspective, depending on which set of Aya's lies factual reports you believe. It's set up to make you question the reliability of pretty much everyone involved as a narrator, so if you feel like you need more information on whether the X is actually harmful, that's exactly what it's trying to evoke. Though I guess for those who don't want to spin off fan fiction from fan fiction, that is not terribly satisfying, now is it?

Hi, I just want to inform you, that Nora will be making a guest appearance in The Tragedy of Eiko v2.0. I don't think the words I've put into her mouth would reflect poorly on you, but I guess someone on the Internet might take offense to them, so I thought I'd warn you in advance.

Using the alt version does fix the bug. I don't know what's the actual cause for it, though.

With this one simple trick she can lock you out of the game. Speedrunners hate her!

Since I don't want to spoiler the story, I'mma insert some blank lines.
























It's possible to skip "one room" ahead in Team Yukari, getting Yuyuko to leave before sealing the door between the trains. (It's actually easier to achieve than you think.) Then you can farm for infinite Boundary Break while you're at it with no means of lowering it. Alternatively, you can really seal your fate by following Yuyuko to the graves.

It appears this submission… does not exist? Tasukete, Eirin!

The archive appears incomplete, at least the one for Linux. After the usual patchelf setup, I get the following:

$ ./tenkyuu.x86_64
ERROR: _load_settings_binary: Method failed. Returning: ERR_FILE_CORRUPT
  At: core/project_settings.cpp:522.
ERROR: _load_settings_text_or_binary: Couldn't load file 'res://project.binary', error code 16.
  At: core/project_settings.cpp:622. 
Error: Couldn't load project data at path ".". Is the .pck file missing? 
If you've renamed the executable, the associated .pck file should also be renamed to match the executable's name (without the extension).

IANAL, but I think you are required to convey or offer the corresponding source according to section 6 of the GPLv3.

I see you've taken some creative liberties with the character placements but I won't fault you for those. One thing to note, is that in the original Reimu is a bit closer to Sanae and rendered behind her (it's supposed to create the illusion of them cuddling, I hope one can guess from the screenshot just how close friends they're supposed to be), whereas your video has them… h-hand-h-holding. T-that's l-lewd.

The font choices seem somewhat weird and arbitrary. It's one font to indicate who's speaking, plus one font per speaker. If you're doing different fonts per speaker, I'd also do it for the speaker bubble, but use a thicker weight. E.g. write Sanae in Sanae's curly font, but with "bold" added to the attributes.  This might be a bit difficult with Alice, whose normal font is already bold to begin with but I'm sure you'll find something.

At around 7 minutes, "Marisa" and "Alice" overlap in the speaker bubble. That's probably an error ;)
I don't think I've seen anything else, but I've only given it one or two watches – significantly less than I did for my own source code after which I still found typos.

As far as making a video about this game and publishing it on platforms such as YouTube is concerned, you are (mostly) free to do as you please, but bear in mind that the source code itself as well as the assets prohibit commercial reuse. In other words, try your best to make Youtube put no ads onto the video (this is not to imply that there are currently ads placed on it, just to remind you to not let YouTube place any on them). I'd also welcome it if your video title reflected that it was a fan animation, but that's no hard requirement.

TL;DR:

  • Try matching up your fonts better
  • Fix the overlapping names at ~7min
  • Make sure the video stays ad-free

As far as starting a new comment chain to reach more people is concerned: Feel free to do so, but make sure to keep it civil (I trust you to do the right thing).

No offense taken, pardon me if I made it sound like I did.

I'm sadly not more knowledgable than those guides either – for instance, I'm sure you've tried this for the WSL thing as it's the first guide I found on the matter.

From the reports I have seen so far, VirtualBox ought to "just work"™ with most issues regarding Guix on VirtualBox being really minor like not being able to fullscreen the VM (that shouldn't matter as long as you can reserve 1280x720 for the game window). There are even some guides on setting it up (technically the latter is a Vagrantfile + deco, but it should help you set it up either way), though I can't guarantee for quality as they use ancient versions of Guix or at least ancient language.

There seems to also exist QEMU for Windows, which sounds like a reasonable idea because QEMU images for Guix exist, but getting from there to "ooh, I can finally play the game" is perhaps even harder.

Note that with both of those you'll likely take a performance hit, but it shouldn't be so bad as to make the novel unplayable.

As far as "reading the story" is concerned, you do have the full source code, so if all else fails, you can at least read the dialogue from there. I don't think a transcript would be particularly useful, but if you feel differently, do not hesitate to suggest so.

(1 edit)

As a developer without a Windows machine, I'm quite honestly stumped by anything related to the Microsoft OS. ;)

There are currently no Windows builds of Tsukundere – see this issue. You can try to go the hard way of installing Guile through Cygwin, then Guile-SDL2 and then Tsukundere, and I'd be happy to hear your report.

If you want to cheat however, I think it's probably quicker to install GNU Guix in a virtual machine or WSL (or even on real hardware if you feel like it). If that's too niche, I suggest using something Debian or Arch-based. The Tsukundere CI outputs debs for Debian and Ubuntu, and Arch AUR has a package for Guile-SDL2, so you only need to build Tsukundere from source.

I hope this helps.

Edit: looking closer at Arch, you also need the Guile package from AUR rather than the normal Arch repos ¯\_(ツ)_/¯

Runs fine with sbcl in Guix, but it doesn't really try to fit within the limitations of my terminal, which is a shame (ASCII version).

Hacking guix.scm for an ad-hoc environment felt like a better idea at the time, so I did that. On a somewhat related note, do you really need to patch Guile itself? My gut instinct tells me you should be able to ship a patched GOOPS with starling similarly to how I used a "magic" module to introduce pre-release Guile-SDL2 functionality to Tsukundere.

Getting this to run didn't prove too difficult in Guix, but I sadly encountered some crashes afterwards. Some of them were probably the result of unfortunate timing – at least I don't know how to reproduce them. However, not being able to type an empty command into the terminal is a clear oversight ;)

Hi, I'm trying to build this "from source" by running `guix build -f guix.scm` on f022cdbd6cae6fa8c8d7596be5812fbf45ca6a9a, but I get the following error:

starting phase `unpack'
Backtrace:
           9 (primitive-load "/gnu/store/y9smaha1da8szrjd0y7dd0v0d59…")
In ice-9/eval.scm:
   191:35  8 (_ #f)
In guix/build/gnu-build-system.scm:
    838:2  7 (gnu-build #:source _ #:outputs _ #:inputs _ #:phases . #)
In ice-9/boot-9.scm:
  1736:10  6 (with-exception-handler _ _ #:unwind? _ # _)
In srfi/srfi-1.scm:
   857:16  5 (every1 #<procedure 7ffff59b1b60 at guix/build/gnu-bui…> …)
In guix/build/gnu-build-system.scm:
   847:30  4 (_ _)
    151:6  3 (unpack #:source _)
In ice-9/boot-9.scm:
  1966:24  2 (_ _)
In unknown file:
           1 (stat #f #<undefined>)
In ice-9/boot-9.scm:
  1669:16  0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
In procedure stat: Wrong type argument in position 1 (expecting open file port): #f
builder for `/gnu/store/is4874z0z2i9fn2n6jsqlhjshf3vzz3m-spring-lisp-game-jam-2021-0.1.drv' failed with exit code 1

The following patch fixes it:

From d8321a5792811021f5e420ebf9cb6a3d35e8796e Mon Sep 17 00:00:00 2001
From: Leo Prikler <leo.prikler@student.tugraz.at>
Date: Mon, 26 Apr 2021 16:54:26 +0200
Subject: [PATCH] Allow building from source.
---
 guix.scm | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/guix.scm b/guix.scm
index 5338156..924e8f2 100644
--- a/guix.scm
+++ b/guix.scm
@@ -2,6 +2,7 @@
              (srfi srfi-1)
              (guix build-system gnu)
              (guix download)
+             (guix gexp)
              (guix git-download)
              ((guix licenses) #:prefix license:)
              (guix packages)
@@ -175,10 +176,16 @@ yet.")
      (home-page "https://git.dthompson.us/starling.git")
      (license license:gpl3+))))
+(define %source-dir (dirname (current-filename)))
+
 (package
   (name "spring-lisp-game-jam-2021")
   (version "0.1")
-  (source #f)
+  (source
+   (local-file %source-dir #:recursive? #t
+               #:select? (if (file-exists? (string-append %source-dir "/.git"))
+                             (git-predicate %source-dir)
+                             (const #t))))
   (build-system gnu-build-system)
   (native-inputs
    `(("autoconf" ,autoconf)
-- 
2.31.1
(1 edit)

Thanks for pointing this out. I forgot to reset the vertical fade, so everything was still there, just hidden from the viewer ;)
It should now be fixed in Git, I'll release 0.1.2 after the LGJ. As for the story, there's certainly more planned than I was able to write, especially concerning Eri's dialogue.

I totally get where you're coming from. Most source code licenses come with the restriction that copyright notices and they themselves need to be replicated in order for them to apply, I assume for exactly that reason. I was asking, because your new Rules.txt (as of Natsumi) carry the line "If re-uploaded to another site for download, do not remove this text file or any part of it." In my rewritten rules, this is formulated as 

The above copyright notice, as well as this permission notice shall be included in all works, that redistribute this artwork partial or in total, with or without modification.

which would force games, that use your assets to carry that notice. (Now that I think of it, the phrase "work, that redistributes this artwork" is perhaps a bit unclear. Does it apply to all redistributions? Does it only apply to tarballs/zips?) The reason for that being, that if someone decided to fork an open source project on itch.io, that included your artwork, they wouldn't necessarily know that your artwork is being reused and which terms apply to it otherwise.

For what it's worth, you could also license your artwork as a whole under CC BY-NC version 3.0 with an exception notice like the following:

As an exception to the conditions laid out by this Work's license, You may commercially Reproduce 
or Adapt the Licensed Material as part of a game, a visual novel or any other comparable interactive
medium (henceforth referred to as "Game") subject to the following conditions:
a. You must retain a copy of this exception notice in addition to the material covered by 
   section 4(a) of this work's license.
b. Your Game must list the Original Author by their name among any credits that your Game displays
   during execution.  If your Game would normally not display such credits, you must provide means
   to access them from within your Game.
c. To the extent that it can be reasonably expected of You, You must inform the Licensor about Your
   usage of their work for commercial purposes prior to or at the time of the publication of your Game.
   If the Licensor deems, that Your usage does not qualify for the terms of this exception, you must
   at once cease all commercial use of the Work in your Game.
d. You must otherwise follow the conditions laid out by this Work's license in the manner that they
   would apply to Reproduction and Sharing for NonCommercial purposes.

The CC BY already covers many conditions of your rules, those being:

  1. Requiring attribution
  2. Not allowing illegal themes or themes that would hurt your reputation [section 4(c), which IIUC is not present in version 4.0]

CC BY-NC additionally adds, that you cannot reuse the work commercially (without dual licensing). With the exception notice above, commercial use in games is allowed as long as credits are made, the exception notice is kept and an attempt is made to inform you, e.g. through itch or deviantArt.

Not covered by this would be non-commercial redistributions of your assets, which remove the exception notice. I.e. it would legally be possible to redistribute the work under CC BY-NC without adding the exception notice. I don't think that's too big of an issue, however. Also not covered is the kind request "Not required, but I would love for you to link me to your project!" as it is not legally binding.

For this license package to apply, you would have to add three files to your packages:

  1. The CC BY-NC license text. (Names for that should be COPYING or LICENSE)
  2. The exception notice (similarly named COPYING.exception or LICENSE.exception)
  3. A file with crediting information of the covered work (a suitable name would for instance be CREDITS).

The CREDITS file could for instance look like this.

Natsumi Character Sprite <https://noranekogames.itch.io/natsumi> by NoranekoGames (@NoranekoGames, noranekogames.itch.io)

You can also add comments like "I would love for you to link me to your project!" into it, if you want to, but I'd recommend keeping it clean and simple.