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.
Viewing post in Terra’s Heritage: Save the conference jam comments
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.