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!
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.