A note from the lead developer of Adventure.js
Hi, I'm Ivan. I spent a lot of time in my teen / young adult years in the '80s playing Infocom games like Planetfall and Wishbringer and Hitchhiker's Guide to the Galaxy. I loved them so much that I used to haunt electronics stores hoping for new releases. In the late '90s / early aughts I was active in the Interactive Fiction commmunity at ifMUD and wrote a few small games in TADS. I even won an XYZZY award for best writing for Sunset Over Savannah. Eventually I fell out of the IF community, like you do. Life goes on.
I considered picking IF up again a few times over the years, and in January of 2020 finally found myself with a big enough head of steam to follow through. I looked around at the landscape of modern IF tools. TADS and Inform were the big two when I last wrote games, and both were still around. It looked like TADS wasn't extremely well supported anymore, and anyway I wasn't in the mood to (re)learn yet another programming language, especially one that I couldn't use professionally. Looking at Inform, I was pleased to see that Graham Nelson and Emily Short had open-sourced Inform 7, and the Inform app looked great, but I found Inform's natural language development style confounding. I looked at Twine, which seemed like a very polished tool, but not what I was after.
I really wanted to write a full parser game in a way that
leveraged and expanded my existing development skills.
"Hey," I thought,
"how hard could it be to write a
For the first few weeks, I thought,
"Why, this is not so hard!"
And here I am two and a half years later with a
todo-list that seems only to grow, never to shrink.
But, water under the bridge!
adventure.js remains a work in progress. Any time you find yourself questioning methods in the library, the answer is almost always, "It seemed to make sense at the time." I wrote adventure.js from memory and nostalgia, in the mould of classic text adventure games, but since I began the project, I've looked around and discovered that the Interactive Fiction community has really advanced the form in the last couple of decades. And so adventure.js may be lacking some more modern conventions. If something seems stupid to you, I invite you to help me improve it. I believe - I hope - that I've made it flexible enough and extensible enough to support the development of any newer conventions that I might have neglected.
Anyhoo, please have fun with it, and let me know if I can help!