A point and click Textual Interface

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.

There’s also the development system “Quest”, which usually allows both point-and-click and typed input. For an example, see Bitter Karella’s “Poppet” from last year’s comp.

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 LAUGH 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., TAKE; or 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.)

2 Likes

I also enjoy that part of parser games, which is why I honestly hope they never get phased out by Twine-like games as I’ve heard some people fear. I know saying that is opposition to my own development system, however, I actually did write my own text adventure system in Flash ActionScript (which is basically just JavaScript) way back when Flash was the cool thing. It was a fairly complex system and was able to handle real sentence-like input similar to Inform, TADS, Hugo, etc. I should probably put it online somewhere so people can check it out if they wanted…

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. :slightly_smiling_face:

1 Like

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.

1 Like

// 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! :smiley:

Edit: Corrected dosemu to dosbox. I’m not sure why that name came to mind before dosbox. :sweat_smile: But yes, it uses dosbox which is more widely supported than dosemu, so games can run on mac and such, I believe.

2 Likes

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.

2 Likes

Thank you for the link.

v/r
Jeff

I have long wished for a system that worked like the Legend Games interface. Robin Johnson’s Detectiveland system is perhaps the closest.

image

In case nobody else has mentioned, check out IFDB for gazillions of independent and experimental IF titles.

1 Like

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. :sweat_smile:

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

2 Likes

The Mirror game had a verb-thing menu; it is very convenient on keyboard The remake from 2015 switched the UI to mouse-accessible menus. I did things like that in Javascript, there are no problems except figuring the item scope.

You may want to take a look at the ISHML API. You’ll find a lengthy tutorial on parsing. It’s in JavaScript, but there’s nothing preventing you from adapting the concepts to Visual Basic.

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.

2 Likes

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! :slightly_smiling_face:

I have a graphical example here without a parser. This is what I worked on last. I mentioned in the initial post, that you can click on text boxes and list boxes to click through a scene. This however is graphical. There is no difference in what the player does except the text is descriptions. Perhaps there is some interest in this. The motivation behind this was as I said the Legend games. What I would do next is add a parser component, so the player can have a textual interface along with the graphics. Let me explain the program before you download it. It’s a Visual Basic .NET exe file, it’s not signed of course, so the OS should flag it as suspicious. It’s not a complete game or game system yet, but it runs. Perhaps some bugs, but at most it never crashed for me. It is a fullscreen application at 1920x1080. The graphics (example only) are 960x540 scaled x2 for the background and everything is designed to fit the scale. The best part of it, is that in the game Gateway, you will notice that there is approx. pixel precision clicking, so I did the same with masks so all objects can be clicked on according to their shape and transparency. Nothing spectacular, but it can allow overlapping objects that have cuts in them allow another object to pass through. The graphics don’t do it justice for how well it might be used. The controls are basic for now. When running the program, hit space to get the text box. Click on arrows on screen to go to locations. Left click to pick up item. The indicator that you have items in your inventory shows up when you do. Click on it or “I” to open inventory. When clicking an object in the inventory, nothing happens. For now click 2 on keyboard to drop and 1 to take. After you set the drop/take mode click on item. When the item disappears, type “D” to look at dropped items in room. This is by design. Instead of the item graphically showing up on screen, they go to a drop inventory which there is another indicator for. There you have to toggle drop/take again to put it back in your inventory. Very clumsy for now and there will be visual cues for this to make it more self-explanatory, but it’s just a quick UI demo. As I was saying at the first post. This was originally all textual visually, now the next step is to revert back to a Text interface to accompany the graphics the same way the Legend UI worked. Another thing is NPC interaction. I’m working on that too. One last thing. The references, you can look up on mobygames are “Deja Vu”, “Gateway”, and “The Legend of Robotopia: Jetsons”. If you look up those games, you will see where I was headed. Please understand that the program might have bugs, but I compiled it myself. No guarantees just for common sense reasons. Hit Alt-F4 to close the application. It does not write anything to your computer. It’s managed by .NET. Here is a link if you want to see this. and any comments would be appreciated. Like I said, nex I will try to add text input with simple action text commands.

file is in next 2nd post (I forgot to add graphics files so it did not run).

Updated to be slightly easier to understand current command.

Another thing is to use it as a development system. I decided it might be a good idea to take the shortcut on that too. Instead of wrapping up a detailed editor, I would create an instruction document to allow the developer to incorporate the actual default source code as a project. You simply would get full access to the source when done and you can develop anything you want into it using dotnet visual basic or in that case you could use c#. I will try to document it as such and then it will be an example/game/api. Ready to compile into whatever game you design with it. Visual Basic is so self-descriptive, that it is possible I think.

The file doesn’t run for me at all. It opens and immediately closes. No errors or anything. I don’t know if I’m missing files to run it or what.

One sec, I forgot to add the graphics. That was the problem here is a working copy.

Hmm. That’s pretty interesting. It’s a bit like your standard point-and-click adventure game in its current state, of course.

Which actually got me thinking: Have you looked into AGS at all? It’s like RPG Maker or ADRIFT, but for point-and-click adventure games. It even supports parser input.

AGS Website: https://www.adventuregamestudio.co.uk/site/ags/
Parser docs: https://www.adventuregamestudio.co.uk/manual/ags70.htm#topic66