Hello everyone!
After getting introduced to the world of interactive fiction via my participation in the IFComp 2023, I instantly fell in love with the genre and especially with its creative aspect, both artistic and technical.
After having written my game for the competition (The Ship, which may have been a bit too ambitious, but I loved every minute of making it) in Twine/Snowman, I wanted to keep on building IF games but I felt quite limited by Twine. Don’t get me wrong, it’s a great tool, but I wanted something with more freedom, especially regarding text/code organization. I also tend to write code-heavy mini-games, so that was also a bit of a pain in Twine/Snowman.
So, I decided to write my own engine which I have been writing/designing for the past couple of months, and now…
I am extremely proud to introduce iffinity
version 0.4.0 (beta) to the intfiction community!
(many MANY thanks to @HAL9000 for the awesome logos!)
iffinity
is an extremely minimal, command-line engine for browser, choice/hypertext based interactive fiction. It is heavily inspired by Twine, and especially by its Snowman story format. Long story short, you write your story in HTML files (as many as you want, organized however you like) and break up your JS code in whatever way you want (inline in your prose or in (a) separate file(s)), and the iffinity
compiler takes all of them and produces a single HTML file with your game.
iffinity
is written in TypeScript and is distributed via npm, making its installation as straightforward as possible. I.e., type npm i -g iffinity
in a terminal and you are good to go!
You can find the iffinity
repo here, and here is the changelog of the latest release. The engine is fully documented in the project’s GitHub wiki. Also, there are a few examples in the repo, mainly used to test some features of the engine. I am currently working on a roguelite role-playing text adventure/mystery (maybe too ambitious once again…) which I hope will serve as the first fully-fledged use case of iffinity
; if no one builds something else first, that is!
By opening this topic, I hope to gain a bit more exposure and hopefully reach out to like-minded IF creators who also feel like me regarding the needs that gave birth to iffinity
. You are all kindly invited to check out the project’s README to get a better feel of what the project is all about and, if you feel that it resonates with you, feel free to play around with it and, hopefully, build something with it; don’t forget to reach out to me if you do! So, this topic is an exposure attempt, as well as an RFC (Request For Comments). Also, it goes without saying that if any thought/feedback/constructive criticism comes to mind, feel free to share it.
That is all! I hope iffinity
finds creators in this awesome forum that would benefit from it and, hopefully, be a useful tool for future IF works. Cheers everyone!