[For those who don’t know: an Interactive Fiction, or IF for short, is a console game where the user has to write down a command like “take hammer”, “open door with the key”, “go north” etc, and the game will reply with what’s happening, for example “you took the hammer and put it in your backpack”]
Hello everyone! A little overview: I really like interactive fictions, and I wrote my first (and only) one in high school after following the first 3 lessons of C++ programming… So I wrote it in C++. Without any while or for loops, as I didn’t study them yet. I wrote it using goto statements. Yeah, it was a pain, but I was pretty satisfied with the result, despite the many bugs and unintended behavior.
Now, after many years, I actually learned to code, and I’d like to try to write a new one. Searching the web for tools to do this I only found out graphics editor (like Quest) but they are all either unmaintained, very old looking, slow (I don’t want to wait 1 second everytime I insert a new rule). They were all advertised as “beginner friendly” as no coding skills were needed. I’d like however to use a more scripting-oriented framework, possibility written in Python, JavaScript or C/C++. I found something on github but all had the last commit many years ago. What I’d like to find is a framework that has to be used this way:
from xxxxx import *
x = newIF("English")
x.setting1 = something
x.setting2 = somethingelse
y = Room()
y.property1 = something
x.rooms += y
# and so on
Is there any active framework that allows me to write an IF this way? If not, what tool do you recommend? I’d rather use FOSS solutions
Thanks for reading until here, and thanks in advance for the answers!
Ren’Py novel mode sounds like it’d do what you want, and you can use Python to write it.
You can also do a similar thing with the Dialogic plugin for Godot, which has the benefit of being a full game engine that you’re learning along the way. The syntax for Godot scripts is not Python but it’s so close to it that it’s almost indistinguishable sometimes. You’d feel very cozy using it if you already know Python.