Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit)

Thank you for the report! Do you mean that it was extremely slow at the beginning and got better after 5 minutes?

I sadly can’t reproduce it. The text speed is not due to your computer but purely generated from the server: text is sent letter by letter via websocket, so I wonder whether that’s cross-continent latency and there’s some locking I don’t take into account yet. The server’s in Germany - are you in the US?

To replay you can also download the source, then you can run it on the terminal ( if you have guile installed, ./terras-heritage.w should work ).

(+1)

Yeah, it finished the introductory text, then sat & thought mid-sentence, then would keep spitting out a few chars… & after 5 minutes it was done with that & played slow but tolerably. Maybe sending larger packets would fix it? If I ran it in terminal I wouldn’t get the art, which was pretty zine-like charming.

Then it may have also just been that my server was overloaded. This is running on the weakest VPS I could find (officially with one CPU core, but I expect that it shares that) and some fixes I did to synchronize art display and output unexpectedly drove up the CPU load (not in a way I could debug during the jam). If more than a few dozen people started to test it at the same time, it could have just been overloaded. The code is pushing the schedulers of guile-fibers far outside their comfort zone with tons of microsleeps and I still need to tone that down a bit again. So that it recovered likely means that it wasn’t the network but just the combination of inefficient code-paths and the too weak server.

In the terminal you actually get blocky versions of the images, if you have catimg installed ☺

(but yes, the images look better in the browser: ./terras-heritage.w –server gets you that version running locally)

Thank you again for the report!

I can now reproduce the blocking by just opening the game in 30 tabs. Then it slows to a crawl and in some tabs freezes mid sentence for up to a few dozen seconds.

Aside: the server is the result of asking “can I just wire stdin and stdout to a websocket to bring these terminal games into the browser”. ☺ I now also wire stderr to the websocket (that’s how the commands to show images and play music or sound effects are realized).

So this is a hack to bring interactive fiction games that usually run on the terminal (and can be tested there efficiently) to the browser. As one of the next steps I want to add a dedicated GUI with chickadee so the download-version can provide a look that’s closer to interactive fiction games built with Ren’Py. I’ll see how far I can push it. Though I’m moving slowly: too much other stuff at the same time. And there’s optimization left to do: fibers can do a million userspace threads at the same time, but a thousand microsleeps per second are currently costly.