>>38382My contemplations on interactive fiction have lead me to design a text-centric expression language, that's a bastard child of Lisp and SNOBOL. Maybe i will get the interpreter to a presentable state soon. Here is an example of what the code might look like.
Room :
description : You see a $(room.color) room. ;
color : black ;
;
Verbs :
x examine : *.description ;
look : $verbs.x(location) ;
go move :
location:*;
if not *.visited then
room:visited;
$verbs.x(room)
end if
;
;
while input : $read-line() loop
if verbs.$first(input) then
$apply(verbs.$first(input), $rest(input))
else
I don't know how to $first(input).
end if
end loop
Ordinary strings yield themselves, whitespace automatically concatenates expressions into a list (yielding the concatenated string in single value contexts), there is a ':' operator for setting values (yielding an empty string), a '.' search operator, ';' ends a list and function calls are prefixed with '$' (that are called by setting * to the argument list).
Otherwise i think you should choose whatever you're most comfortable with. I personally don't like python, but it's certainly a well-supported choice, also letting you interface with C if you're into that. Just try not to hardcode presentation logic, like writing messages directly to stdout. Here is a tutorial on how to make simple terminal interfaces
https://xn--rpa.cc/irl/term.htmlHow do you feel about the technical details of DoL and what exactly do you think makes the game good? I'm sometimes puzzled as to *why* all of it works. Here are some of my complaints:
<The skill system is structured so you don't really want to miss out on some things.School bonuses are very impactful and to be fair it's a huge area, but overall i think it takes up too much time. Skullduggery is needed for a lot of useful for a lot of situations and some soft resets, yet it's grindy af from the beginning.
<Prostitution and skullduggery are your only viable means of making money early.Every other path requires an upfront investment or is even more gri
Post too long. Click here to view the full text.