I was going to post about I Dreamt of Something Lost next, but then How to Make It Home got (a) longlisted for the New Media Writing Prize and (b) shortlisted for Best Experimental Work in the Narrascope showcase, so evidently it's having a moment.
HTMIH is a text-based walking simulator for weird little freaks. It's about being inside the world but not truly a part of it, and the ways in which that hurts you and the ways in which it might set you free. Arcane Cache described it as 'a oneiric tour through an abrasive, stinking world, filled with dust and quivering flesh' and 'an interactive fiction of rare artfulness, beauty, and thoroughgoingness', which is hands-down the most flattering thing anybody has said about my writing.
I get all my income from writing or the occasional bit of contract work, and critical acclaim doesn't always lead to money. This is to say: it would mean a ton to me if you could give my writing a go and - if you like it - recommend it to a friend and/or support me via Patreon or Ko-fi.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Qualityâ Free Actions
Free to watch ⢠No registration required ⢠HD streaming
I guess what I want from a hypertext game engine isâŚ
easily listed as an NPM dependency and installed via NPM
not locking you in to any particular build system so itâs more future proof
using ES2015 module syntax so you can tree shake and all that
compatible with ES2015
game source code that can be committed to Git
the output Javascript is lightweight and quick to load
(ideally, but unlikely) search engine friendly, graceful fallback if Javascript is disabled
The options Iâm aware of are:
Twine, the best known, which has a useful GUI to display the shape of your story, but (depending on theme) has an ugly scripting language which requires knowledge of the underlying Javascript to do anything with, and without care can easily leave blank lines when integrating narrative text and code
Undum, seemingly dead in the water for about a year, no NPM package
Raconteur, based on Undum with some extra features and easier use, seemingly as dead as Undum, no NPM package
Salet, a Coffeescript-based rewrite of Undum with some Raconteur features, last updated only a few weeks ago, has NPM support, but the documentation is somewhat limited
I think my first attempt will be to get Salet working as a dependency with ES2015 code and Webpack, instead of the build system used by the dev. If that fails, I might end up [trying and probably failing at] writing my own one lol.
iâm constantly reminded of mortality, and it doesnât bother me the way youâd think
repost from that time i deleted an article i spent 4 days on T-T
actual post this time since i somehow posted it privately yesterday đ
---
Hi, Iâm Questioning. And I like to waste my life away dedicate my free time to random hobbies that catch my hyperfixation interest on the fly. Currently, Iâve returned to something most important. Updating the encyclopedia-esque database of AlternativeTo.net. o_o
Let me finish.
See, I started exploring the world of Visual Novel (VN) makers, which led to me discovering the world of Interactive Fiction (IF)âtheir predecessor afaic. And thatâs where it got strange. What Iâve found is interesting developments in terms of innovation and such. Like Undum (image)ââa game framework for building a sophisticated form of hypertext interactive fictionâ according to its GitHub. IFWiki calls it âan authoring system for CYOA-style stories playable on web browsers.â It was created by I.D. Millington in 2009, released in 2010, had returned in 2018, and wouldâve changed the IF genre (kinda like Twine did) if not for how hard it was to get into.
Undumâs flexibility and power have made it the engine that drove some of the most significant works in IF (The Play, Almost Goodbye). But it has always been relatively inaccessible. Undum is not the system of choice for writing straightforward hypertext games; itâs a challenging system to learn and use that demands the author build their own engine on top of it to drive their game logic. Consider Raconteur for âUndum with batteries included.â -Bruno Dias (x)
Enter Raconteur, âa friendlier way to write Undum hypertext fictionâ that was announced by Bruno Dias in 2015. More accurately described as âa library of Undum tools that can get someone writing their story quickly.â Hereâs the thing about the âlibrary of Undum toolsâ part: Undum did not come prepackaged with any⌠even though they were required to write your game,âŚđ which âmeant doing a lot of your own tooling.â đ
Yeah, no surprise it won the award for Best Technological Development in XYZZY Awards 2015.
But hold up, somethinâ ainât rightâŚ
Undumâs only got 21 games on IFDB.org and Raconteurâs got 4⌠with 1 overlap with Undum. đ
So~⌠wth?
Well, someone else had a similar question on intfiction.org in March and got Josh Gramsâ opinion on it: JavaScript.
đ¤ˇđżââď¸
So even though Undum was designed as the visual version of bookbinding and with the specific goals âaestheticâ & âtechnicalâ in mind, shitâs too intimidating compared to alternatives.
I hoped [writing Undum in JavaScript] would make it accessible for a wider range of dabblers, requiring transferable skills rather than learning a new language. It also made it achievable to write and document over a few weekends: I didnât have to worry about parsing, or creating a complete runtime. But the best benefit, and in some ways the one least exploited in practice, is the ability to use Undum as part of a bigger game. I imagined a strategy game with CYOA elements, or a piece of interactive fiction using natural language generation to be different each time. -Ian Millington (x)
And hereâs~ where it gets a bit fucked.
Remember the other person who had a similar questionâJ. J. Guest? Well, they ended their post with âWas it simply superseded by Ink / Inky?â
Letâs keep this simple:
Ink [image] is the core narrative engine itself, written in C#. It includes the code for the compiler. If youâre not technical, you donât need to worry about this.
Inky [image] is our ink editor, which is a text editor with support for playing as you write. If youâre just starting out with ink, this is all you need.
inkle is the game development studio that created ink
(x)
So itâs âa narrative scripting language for gamesâ and yet another CYOA maker. Why do I bring them up? Well, Inkle (the company) âwas founded in 2011 by two Cambridge game developers [Joseph Humfrey & Jon Ingold] with a passion for storytelling and beautiful designâ (x). They started off with their unique âinklebookâ format, which had an early prototype game in ~2008 that Jon described as
an iPad-based choice-driven story made of âpagesâ which stitched together into a single flow via frequent choice points. It was a lovely UI for a choice-based game, even in prototype form, and we had a strong scripting language underneath it â the first version of ink. (x)
In January of 2012, they released âa web-tool for writing and reading simple interactive storiesâ called inklewriter. Joseph described it as âa simpler subset of the inklebook formatâ (x) and admitted âinklewriter was partly born out of the surprise that there isnât anything out there for quickly and easily writing non-linearly.â (x)
After already having âmoved away from developing inklewriter for a long time,â it went âpermanent betaâ in September of 2017 due to âincreasing frequency of persistent bug-reports.â Sad news considering the statement âweâve had hundreds of thousands of stories created by hundreds of thousands of users; weâve won awards from school and library associations; and hopefully weâve helped kickstart a few interactive writers careersâ (x). And since writers (who became aware in time) were able to ârescueâ their story from the bugs and potential wipeout with a simple Save Page As, it was probably a bit less heartbreaking when inkle revealed less than a year later that inklewriter would be shutting down completely in August of 2018. Seemingly because âitâs real work to fix the issues that ariseâ with the constant browser changes. đ
Only 7 months later, it returned in March of 2019. Stable, still free, and now open-source after developers in the open-source community âproduced a full port of inklewriter to modern web-tech.â 𼳠Writers needed to make new accounts and import their stories to the new database, but that was it. And since the legacy version was (and is) still around, they could do it pretty quickly. (x)
But where dahell was I going with this? Let me tell you about the original connection first: Unity Integration.
The [ink-unity-integration] plugin provides you with everything you need to get started with ink in Unity. It automatically recompiles ink files as you edit them, and even comes with a simple previewer that lets you play stories directly within the Editor, without writing a line of code. (x)
Remember Ian Millingtonâs statement from awhile ago? âBut the best benefit, and in some ways the one least exploited in practice, is the ability to use Undum as part of a bigger game. I imagined a strategy game with CYOA elements, or a piece of interactive fiction using natural language generation to be different each time.â (x)
Well,⌠Stoic Studio (announced that they) did it in January 2013 when they used inklewriter for The Banner Saga. Though, inkle recommends you use their ink scripting language instead for Unity projects. đ¤ˇđżââď¸ A scripting language that was ported to JavaScript in May of 2016, btw. The port (inkjs) having its latest release just 6 freaking days ago while Undum and Raconteur had their last GitHub edits in 2018 & 2020 respectively.
Either way, Ianâs imagination of âa strategy game with CYOA elementsâ happened⌠with another mofoâs software. đ
And whatâs that? I left something out?
I left working on Undum to develop Varytale, a short lived commercial IF endeavour that shared a lot of the same aesthetic and narrative structure. And then I retired, and it lay fallow, aside from email help requests that still drip into my inbox. -Ian Millington (x)
Letâs see what IFWiki says about this endeavor:
Varytale was a platform for authoring and publishing browser-based CYOA, created by Ian Millington and Alexis Kennedy; it occupied a point somewhere between Undum and StoryNexus [a comparatively mostly defunct endeavor from 2012].
The Varytale website was live from approximately 2011 to 2015. The first posts on Varytaleâs blog appeared in June 2011. On March 7, 2014, Varytale posted a comment on the Varytale Facebook page saying, âThe project is stalled, due to key people leaving the project. So thereâs no news, and Iâm not sure if or when there will be.â The last Wayback Machine snapshot of www.varytale.com/books was taken in September 2015. (x)
On its May of 2012 public beta announcement on FailbetterGames website, something slightly poignant was said.
But the technology is great [seriously] - itâs easily the most flexible and powerful tool of its kind, and itâll be fascinating to see what people can do with it once the writersâ programme opens up.
And as it happens, Jon Ingold / Joseph Humfreyâs very elegant inklewriter has also just gone live [4 months prior].
(âŚ)
âŚ[inklewriter] covers some of the same territory as Varytale, but itâs (by design) simpler in concept and execution. (x)
Life is truly cruel.
If you check the archive from possibly days before its shut down in September of 2015, youâll see 4 official books (Bee, Fighting, How To Read, Hymn & Shanty) and 3 User Published Books (London Road, Sixth Tower, Tillinghast). Thatâs 7⌠7 books. đ
But itâs not that sad. According to the Varytale blogâs 2nd to last post (in June of 2012), âwe passed 50,000 reads across the seven books currently on our readerâs beta.â This was perhaps a full week after they released the floodgates and actually allowed people to start readinâ. Das alot to me. They clearly succeeded in âbuilding a platform for authors to write great books, and for publishers to publish them.â Even built a whole-ass âsystem that does generative design,â creating âartwork based on the authorâs choice of patterned design or photographâ (x). Or, as weâd quickly say 12 years later, some AI shit.
So wut đđż in da fuq đđż
Whyâd they never get past the 7 book mark in the 2 years between Readerâs Beta and project stallation? Well,⌠thereâs a hint at the end of that 2012 blog post: âWe have a queue of people wanting to write content, who are been added a few at a time. So lots of hard work in the beta still to go.â hm~ đ¤
If The Way Back Machine had archives past January of 2013, weâd definitely know more, but this is it (i ainât digginâ a wider hole at this point). And what is it? I think itâs a matter of workload. Too much for too few people who had however much goinâ on in their lives. Remember much earlier this bit from IFWiki?
On March 7, 2014, Varytale posted a comment on the Varytale Facebook page saying, âThe project is stalled, due to key people leaving the project. (x)
Maybe things werenât smooth enough for awhile. Maybe it was something else for those 2 years prior. đ¤ˇđżââď¸ And you know⌠the end of Emily Shortâs blog post Writing for Varytale might hold the answer.
There are still some challenges about using the Varytale system, though itâs evolved tremendously over the course of beta. One of the biggest authorial challenges is that, while thereâs the awesome structure tool shown above for looking at branching structure inside a storylet, it can be considerably more challenging to get a view of whatâs going on at the macro level. And Iâm not even sure what the tool for this ought to look like. The strength of storylets is that they can affect which other ones pop up in a fairly freeform way, and one can affect another (via their shared stat use) without explicit logic in either.
But thatâs also what makes it really hard to graph how they will act. Most of the bugs that arose in Bee were related to this issue of envisioning the total structure of the work and detecting storylets that were going to break that structure. (x)
So in this case aswell, the innovations of Ianâs Varytale make it⌠(a bit) intimidating to work with. đWhether or not this difficulty was ever ironed out post-beta is unknown to me, especially considering the end of Ianâs thankful response to Tom H.âs suggestion for fixing the macro level problem: âWhen will I get chance to code it? Thatâs a whole other matter!â
âŚhm~
And on the same post lies magnus4444âs statement that âThere isnât a lot of documentation out there yet on the implementation of more advanced effects but, on the plus side, Ian is generous with advice and tips.â
đ¤ˇđżââď¸
So wtf do we have here. Effectively two developers (iâm simplifying it; fight me) who 1) made a CYOA maker (Undum & inklewriter) for very similar reasons, 2) put development aside to focus on other CYOA makers (Varytale & Inky), 3) had their neglected work taken up by open-source developers for the good of everyone, and 4) reaped the benefit of the otherâs labor in some way. Now, hereâs where weâre back to the sad part. Inkleâs version of the tale is the American Dream â˘. Inklewriter was beloved by many and had mainstream success. Ianâs version is the harsh American Reality. Undum only bore 24+ games over the course of its 13 year existence on the internet and in the world of IF. And if a single personâs opinion is to be taken as fact⌠then the reason was simple: shit wasnât easy to pickup. And thus, regardless of Ian & Brunoâs efforts, it (at this rate) is bound to become an obscure software regardless of its potential. All while Varytale remains gone and Inky (released in June of 2016) is still goinâ strong with 160+ games released using its Ink language/engine.
Sora is an OC I made not too long ago. She has short purple hair, green eyes, and is black with vitiligo, and she is so fucking cool and just like me fr
I have a tendency of making small ocs without much personality to fill in another OC's life, or give them conflict, or whatever. Sometimes those OCs get cast aside because they were never made to be important in the first place, and some others slowly get more personality or even a backstory of their own, and become fully-fledged characters. Sora is the latter
I had always been a fan of internal fights and confrontation of the self, and I always found interesting the typical "I am a good person but there is an evil me/curse that makes me do bad things" trope. So I thought, why not make an interesting spin? What if the person controlling the body was the evil self, forgetting it was evil and becoming kind, and Sora was the real human, wanting their body back?
Putting a readmore because there's some (consequenceless) self harm
For as long as she could remember, she had been stuck in this endless white void, where pain and permanence didn't exist. She didn't know about the wonderful outside world, so she was happy in there. But still, she was human, so she got bored. So bored that she decided to hurt herself to pass the time. Mind you, there were no blades or anything dangerous in there, just them, so she just decided to break her fingers. There was no pain, and the fingers got back together again, as if nothing happened. She decided to pull he hair out, and every time she blinked, their hair would appear again, but she still held the strands she pulled out, so she started to pull out her hair indefinitely, making piles and piles with it, with no consequences
Then, she pulled out her fingernails, then skin, then bones. It was just normal. Nothing happened, and now she had plenty of things to play with
Still, from time to time, she would learn random things out of the blue, like how to walk, or speak, or what the name of those hard things at the end of her fingers were. It was just normal
Sometimes, the white void would dissappear, and instead she would be in an unknown place with colors and things she had never seen before, she later learned those were called fields. After a few seconds, the void would come back. A bit weird, but they got used to it over time
One day, another person appeared. It looked just like her, but she had colors instead of Sora's blacks, whites, and shades of grey. They became friends :D
Later, she learned that those weird things she saw sometimes were the real world, and that the person she met sometimes was the one who sent her into that white void
She wanted to punish the other person for taking away her normal human life, with fields and colors and family, so with a sword made of teeth and bone she killed the other
Sora woke up in her real body, in the real world, not too long after
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
â Live Streamingâ Interactive Chatâ Private Showsâ HD Qualityâ Free Actions
Free to watch ⢠No registration required ⢠HD streaming
Undum is a really cool choice fiction framework, all done in javascript, so it all runs straight in your browser, all client-side. Check out the tutorial at undum.com, itself of course written in Undum, and see how it's done.
A friendly hint: if you want to get into writing stuff with Undum, make sure you get a javascript debugging tool like Firebug, or you're doomed.