Hi, I’m new here and would like some opinions about an idea. I’m a visual basic developer (not professional) and I have some interest in interactive fiction. Parsers can be simple and complicated as you all know. I have not found too many examples on parser implementation. While programming a simple UI, I came up with simple room linking and most of the intelligence behind the parsing was really nothing more than the user clicking on the UI. So I had an output textbox and some list boxes with things like inventory and npc’s in the room as well as exits. Everything was strictly textual, but as it turns out a player could simply click through the text adventure. I noticed some similarity to some games from the 1990s such as Gateway or Gateway 2, but without graphics. In those games you could sometimes click on some text and it would do auto-completion for you. The difference with what I did was that there was no additional input other than clicking on available logic. I was wondering if there is any interest in this style of IF gameplay. I was also wondering if there are any ideas on how additional manual input might be implemented. I mean the logic of how to lay out an algorithm like that. My experience in visual basic is sufficient, but I lack some experience with algorithm design and I never implemented a more complicated parser than some simple action choices. So I guess the UI idea, is kind of an excuse, but as it turns out, it was interestingly workable in my opinion. What do you all think of something like this if anything.
If I’m understanding you correctly, you basically just described nearly every hypertext adventure game, like those created with Twine. So yeah, there’s interest in it, and games of that type are being made on a regular basis.
Not to plug my own thing, but is this demo I made something similar to what you envisioned? This isn’t made in Twine, but it’s really similar. http://tayruh.thanatos.feralhosting.com/gamebook/
Edit: Another good example so I’m not just pushing my own stuff is this game that I really like which is made in an older version of Twine (the navigation and item usage starts after the short intro): http://www.samanthavickgames.com/axolotl/
Most of the games that used a “point-and-click the words you want to use” were graphical adventures that lacked a true lexical parser. Like the much-beloved Indiana Jones games from LucasArts.
If I’m understanding the suggestion properly, you’re proposing something a little bit like that, only with no graphics - more complex than a Twine or similar hypertext game, but more restricted than most text parsers.
Do I have that right?
Yes, I guess both of you are right. I was thinking more of a glorified Twine I suppose. Like I tried to say, the real reasoning behind it is, limited knowledge on how parsers work. I’m looking up information on scripting languages and I think I might take it to the next step and add manual input also. Like mainstream IF systems. For now, it would turn out to be like the said games Gateway and etc., it will be mostly simple actions. I will look into this again this weekend.
I guess one thing you might want to consider if you choose to go forward is that I think one of interactive fiction’s strengths is that it’s almost always cross-platform. This forum has a lot of users of Linux and Mac along with Windows users.
Visual Basic is windows only, right? TBH, I didn’t think anyone even used VB anymore. Even Microsoft switched to C# which is somewhat cross-platform (if you use the mono (https://www.mono-project.com) compiler). Anyway, it’s just something to think about in regards to your audience.
And maybe another thing (and this would be more like a personal tip than a professional one) is that you should be sure that you enjoy making the development kit for yourself and not others. I spent almost literally all of my free time slaving away on my own development system (the one that the demo I posted uses) for about 4 months straight, and the end result is that nobody cares at all. I think maybe 10 people looked at it and nobody even commented on it. So I’m just glad it was fun to develop.
Edit: I give up. I can never get the named links to work correctly in the mobile editor.
Yes, there is definitely interest in such an interface. For example, there’s Robin Johnson’s “Detectiveland”, which was very well received – it won the IF Comp 2016, in fact.
So, the interest exists, and I think there’s still room for experimentation and friendly competition concerning user interfaces and development systems.
[Edited to add: I had typed my post as a direct reply to fdisk’s first post, and only afterwards read tayruh’s most recent post. I did not intend to contradict tayruh concerning the possible interest in a new system, although it might read that way now. I think the general interest exists, as I wrote, but it can unfortunately sometimes be hard to raise interest for a specific new project. Maybe the best way to gain traction is by entering a showcase game in a huge competition.
So tayruh’s advice is very sound, that the most important reason should be your own enjoyment. Best of luck to you both! – end of edit]
For me, part of the appeal of free-form parser-based input is the feeling that I could potentially type anything, from the mundane
OPEN DRAWER to the abstract
REMEMBER VACATION or the unusual
DANCE THE TANGO or
PRAY, or even that one can (in principle) give the full range of parser commands to NPCs, as in:
CONSTABLE, ARREST THE SUSPECT or
FIDO, FETCH THE STICK.
Or consider the very satisfying feeling of coming across a reference book in a game and thinking of consulting it about some obscure name that came up way earlier:
CONSULT BURKE'S PEERAGE ABOUT VISCOUNT BLAKELEY (and then actually finding an entry).
Of course, it’s only an illusion of freedom, but in good games, it works fairly well and has a special kind of magic.
So, that would be a point in favour of adding typed input to your user interface.
As I said, there’s still room for experimentation in the UI area, because it would be great if there was a way to get the “best of both worlds”, so to speak: On the one hand, provide a wide range of possible inputs, and create and sustain that feeling of freedom that comes with parser-based input, and on the other hand get the strong points of point-and-click interfaces, which avoid the notorious “guess the verb” problems and are more accessible to players who are not used to the parser interface.
With regard to the implementation, it would be a lot of work, but it might also be a great opportunity to learn more about data structures and algorithms.
You would not necessarily need to solve the problem of general natural language processing (which, after all, is the domain of a whole field of studies, Computational Linguistics).
You could start relatively small and maybe only accept two-word commands like
TAKE COIN, where you always assume the first word to be a verb and the second word to be a noun.
You’d have a sort of world model in your code, so that you can check which objects are TAKEable by the player at the moment. The coin should be in the same room as the player, but it should not be in a locked chest. In an object-oriented programming language, you might implement this with an attribute or method “contains”, for example.
The parsing step would consist of making the connection between the player’s typed input and its meaning in the world model. Maybe you’d have a dictionary-like data structure (also known as “associative array” - anything with a key-based value lookup), where the keys are the verbs the player might type in, and the corresponding values have a reference to the action that’s supposed to happen in the world model.
So you’d look up the first word of the input. If it isn’t found (e.g.,
TRIANGULATE), you tell the player that this verb is not necessary in the game. If it is found (e.g.,
GET, which would map to the same action), you now know the intended action and proceed to check which world model object is meant by the second word of the input, and whether that object fulfils the conditions for the action (check whether both the player and the coin are contained by the same room, and so on). If all checks pass, transfer the coin to the player’s inventory.
(Of course, this is only an extremely rough sketch, and I don’t wish to understate the complexity. It’s a huge undertaking to write a good IF system, but it might be an instructive project and a lot of fun for you.)
But anyway, I opted for making my new system with hyper links instead of a parser because it delivers a different kind of experience. It fits somewhere in between CYOA stuff like what Choice of Games offers with its purely narrative driven text/dialogue, and parser based world interaction that moves at its own pace with an immersive world. Like, if you check out the two games I showed, I really like how the world interaction and forward-moving branching dialogue blend so seamlessly. You never really know where the game ends and the dialogue begins. In contrast, dialogue systems or narration dumps in parser games are very immersion breaking. You’re either in them or not and it’s very obvious when it’s happening.
One other reason is that interactive fiction is supposed to offer the illusion of choice without actually giving you full control, but with parser games it starts to lean a bit too hard towards giving the player a bit too much control. Every time you add a verb to the game, the player expects to be able to get a reaction out of using that verb with every object in the game. And if you add something as powerful as fire or water that can change objects by burning them or getting them wet, that makes things so complicated. Complication for the sake of completeness, not because it adds any narrative value to the game whatsoever. In this way, I feel like taking control out of the player’s hands can actually enhance the game, as long as the intention is to tell a good story instead of attempting to provide an immersive world.
Anyway, that’s my two cents on the topic (which is probably more like fifty cents at this point). There are multiple ways to deliver IF and they all come with their own pros and cons.
Text games lasted through the graphics revolution. All adventure games have endured - it’s a perennial field, with people making fan products even when the wider market collapsed, and now sites like GOG are letting people find the old games again.
Due to its relative simplicity, Twine and related systems are bringing many new people into IF, and I see no evidence that they’re inducing people to abandon the older ways.
// Sites like GOG?
I am not familiar with that site. Please expand.
Thank you, Jeff
They’re referring to this site: https://www.gog.com/
GOG is great. The abbreviation stands for “Good Old Games”, which is exactly what they offer. They use dosbox to support old dos games and stuff, but they also do sell some newer stuff. Their policy is that everything they sell is DRM-free and they also offer a lot of sales. It’s pretty competitive with Steam. GOG is owned by CD Projekt Red, the developers of the Witcher series. You should really check it out!
Edit: Corrected dosemu to dosbox. I’m not sure why that name came to mind before dosbox. But yes, it uses dosbox which is more widely supported than dosemu, so games can run on mac and such, I believe.
It’s an abbreviation for “good old games”. Various people in… I believe it’s Poland?.. acquired the rights to a variety of classic games that required DOS to run, partnered with the people who released the DOSbox program, and sold the games packaged in forms that could be run on today’s computers. They then diversified into offering more modern games as well - sort of a competitor to Steam and similar companies. Their lack of DRM won them a lot of adherents.
Anyway, among the other games they sell, GOG.com has a few of the old Infocom text games, complete with manuals, scans of the feelies, and so forth. They also have many of the old graphical adventures games put out by Sierra and LucasArts - arguably they also count as Interactive Fiction, but of a very different variety.
Thank you for the link.
I have long wished for a system that worked like the Legend Games interface. Robin Johnson’s Detectiveland system is perhaps the closest.
In case nobody else has mentioned, check out IFDB for gazillions of independent and experimental IF titles.
Ohhh! Gateway! Well, now I feel stupid. After looking up Legend Games to see what @HanonO was referring to, I just realized that I was confusing Gateway with the old Shadowgate game which used something more similar to the old Monkey Island 1 & 2 interface. I would have approached the topic differently if I had realized my mistake.
I now see where the Detectiveland reference comes in. Sheesh. Yeah, this is different than Twine games or my own game. I’m sorry for being so dense.
I just realized searching “Legend Games” isn’t great (you get League of Legends mostly) but they were branded Legend Entertainment
Also, if you are taking a tour of interfaces, check out Texture. I think drag and drop is a very fun way to interact with text.
I’m so happy with all these responses. It turns out I’m very busy this week but I will look through all the recommendations. Quickly I can note, I’m using VB yes, but it’s just one step from rewriting in C++ (I’ve been too lazy to catch up on SDL2, because it would require me to write all the components of the UI; otherwise, there are some others, but most are not maintained) which I also use. So as far as a target audience is concerned I would try to cater to the different platforms, Windows, Mac, Linux. I did not mention that I had another project, that was more in tune to the Gateway games also, I added graphics to that one. I scrapped it, but might pick it up again. I was not sure if graphical text adventures would be the right topic here. The inspiration behind that ironically was also a Legend Entertainment game, Superhero League. GOG has that also. Another is, The Case of the Cautious Condor. I’m very grateful to all the tips. I will do more research this coming week. …but, keep in mind, I don’t want to give the wrong impression. I’m not a professional programmer, so this is a hobby project I’m referring to. I just really like the IF community.
There have been many insightful things said already in this thread, and I’ll try not to repeat that.
I would like to add good luck, and hang in there and don’t get discouraged. Having a project is a good way to learn things you don’t yet know about. The best way to get interest is to get something done and to be able to get it into the hands of as many people as possible.
I don’t think an advanced parser is a necessity either. Matching combinations of a verb and a noun goes a long way. (The concept can be simply expanded to verb phrases and noun phrases for times when more verbose commands are needed.) I’ve toyed with the idea of making a point-and-click interface for the Scott Adams way of making text adventure games, and the fact that it uses a simple verb and noun input makes it a lot easier.
I’m sure you’re already aware of these options, but you could use a toolkit with included UI components (widgets) like wxWidgets, GTK or Qt. (You’d lose some of the capabilities of SDL, but that might not be a problem for text games.)
In any case, good luck, let us know how it’s going, and feel free to ask further questions!