And I’ve never heard of a game automatically turning on my caps lock before!
Usually that’s up to the user, no?
Fair comment. I would argue that all the old games used to work in caps and that’s the feel I’m going for, I’ve never heard of someone disabling the CAPS key.
But as I say, I feel it looks odd when entering text lower case but you can decide now and turn it off if you want.
Am I to expect only negative comments and complaints here? I’ve gone to lengths to fix things and upload a new version of the engine immediately but I only get comments complaining even when I justify something and if I fix something and upload a new version there’s radio silence.
The folks who are responding to you here have been acting as unpaid beta testers for your system, which clearly isn’t ready for release. We all have many, many things begging for our attention – that is just the way of the world these days. In fact, more than one of us who’ve responded here are developing our own interactive fiction systems. I’d like to recommend that you take the attention you’ve been given as a sign of respect, and use the feedback to improve your system. Frankly, we’re not here to praise you for your work. We might, if your work stands for itself, and your system as you’ve described it has some really interesting features. But until we can actually use it, it’s hard to evaluate, and the more roadblocks we encounter, the less attention we’re inclined to give you. You might try to put out a call for beta testers. Folks who approach your work with the correct expectations are more likely to be patient with the challenges of testing your system.
The tone often comes across as rapid fire criticism rather than constructive.
If someone says I’ve read the docs but can’t figure out how to do something then that’s fair enough. The docs aren’t nearly complete and I will endeavour to add sections for what people are interested in.
Hey Chris, I’m sorry if it feels like you’re under attack. I am one of those people working on my own system, and I haven’t released it, but I know that I will be subject to this same sort of scrutiny some day. I think most of the criticism I’ve seen in the thread has been pretty constructive. You may disagree with it and decide to do things differently, that’s your option. But like I said, you should try to take it as a sign of respect that you’ve had as much attention as you’ve had. I’ve seen other people’s new development system announcements come and go without a single response. I’m only talking to you at all because I found some of the features you listed to sound very interesting.
Yeah I know I’m sorry. I’m trying not to be precious about it of course but it’s frustrating.
Yes, it really is quite a powerful system (I feel), especially for one that doesn’t require coding skills.
I think I do need someone to work with me now especially documenting it as I’ve just got too much to do - I’d be willing to open up the main repo for the code if they are willing but I don’t want it to be fully public just yet.
I’ll have a look at pandoc tomorrow and try to get a Wiki going. The documentation will still be out of date but at least it’ll be online.
It’s great that you are committed to fixing things and improving the system!
I think it’s just that there are already several development systems available which offer a good experience for players and authors (in many users’ opinions, at least). And people got used to some conventions established over the years.
Consequently, it can be difficult to get them (us) enthusiastic for a new thing.
It’s not expected that you produce something on par with the existing engines at a moment’s notice. It’s fine to improve it incrementally.
The usual advice here on the forum is to write a really polished game in your engine, get beta-testers (you can ask for help here in the category Beta Testing Requests and Discussion - The Interactive Fiction Community Forum), and enter it in one of the community’s competitions or game jams.
That way, you’ll get more positive feedback (because the general audience will see a completed, solid, beta-tested game), and people might get interested in using your system for games of their own.
Here’s a list of events with further links: Event news - IFWiki.
Unfortunately, you’ve narrowly missed some of them, like IntroComp and ParserComp. The next events are the big IFComp and the horror-themed EctoComp.
Theoretically, you could participate in IFComp (though the deadline for registering an intent to enter is today, AFAIK). But it’s going to be very hard to write a good game from scratch and get it tested in just a month’s time (deadline for entries), and IFComp is the most harshly/seriously judged one.
EctoComp, which runs in October, might be a better fit: ECTOCOMP - IFWiki
In addition to that, there’s a small example game in our community, called “Cloak of Darkness”, which has been ported to several development systems/languages. The idea is to be able to compare at a glance how to implement some common text adventure concepts in each language, and to get a quick impression what the syntax looks like.
If you’d like to, maybe you could port that game to your system, too, and post the source code in your repository and in this thread.
Here are some links to the code for various systems, for example Inform 6 and 7, and a transcript of a playthrough.
More recently and ambitiously, Ryan Veeder’s “Craverly Heights” was also ported to several languages; here’s an overview page and a side-by-side comparison of the Inform 7 and Dialog versions.
(Don’t feel obliged to do all that necessarily; just some suggestions.)
I think part of the problem is the inside-out view. You see from the inside, others from the outside. The only real cure for this as I have learned is to make games that encourage people to want to see the inside also.
Getting people interested in a new system was hard enough before AI lead to a plethora of vibe coded systems each vying for a limited pool of attention.
Persevere and yes recognise that even criticism reveals people are paying attention.
Reading through that transcript, IT is a “noun” I don’t support at the moment, but it seems all it does is act as a placeholder for the last object interacted with, action object usually but target object if there is one such as in PLUG BOARD INTO SLOT - board is action, slot is target.
That shouldn’t be hard to implement as a substitution in the Sentence parser object.
So then I could interpret PUT BATTERIES IN TORCH then SWITCH IT ON.
There will likely be a few ambiguities though. What would EXAMINE IT do after HANG CLOAK ON HOOK? Would you examine CLOAK or HOOK? The resolution rules I’ve proposed would do EXAM HOOK.
I don’t support ME either. No plans for that though, seems unnecessary.
I would suggest going through this introductory PDF. When I was studying material and checklists for building a system I did a lot of research and study.
IntroductionToIF.pdf (612.2 KB)
The convention in most systems is that following a two-noun command, IT resolves to the direct object, i.e. the cloak.
It’s up to you, but just be aware that a lot of players will habitually X ME as one of their first commands to see what additional information the game provides about their character.
As someone who’s worked in software development for a long time, I can tell you that’s par for the course. Actionable feedback is far more valuable than praise and it’s something I’ve come to appreciate over the years.
Oh hold on a sec, OK in my system ME isn’t a item but perhaps it could be.
A virtual item might work… So you know about ME but can’t do much with it like DROP it. You could possibly SELL it though, I’d have to prevent that somehow.
You’re not the only one but code reviews aren’t quite the same.![]()
OK, I’ve been through some walk-throughs from games a little more recent than The Hobbit to see what they can do.
I now support ASK/TELL verbs, IT as a noun, ME is a recognized object. ASK/TELL are Task verbs and my particular game doesn’t require them (so far) so they’re not implemented anywhere but they are now in the list of understood words the game.xml file provides.
I’ll add to the documentation an example of how to implement such a task.
IT is interesting - it can get it wrong depending on the context if you’ve typed a two-noun sentence, whichever one you choose will be wrong one context or another.
I think I can improve that a little but that’s enough for today.
These were all minimal changes. ASK/TELL no changes at all just documentation.
The main thing with IT is making it internationalizable. I need to make those strings plus the “ignored words” strings configurable. They are hardcoded at the moment.
Basically, this is roughly what authoring an ASK task would look like:
First set up the ASK verb in game.xml (you only do this once):
<verb synonyms="ASK" handler="DoTaskHandler" acceptedPrepositions="ABOUT">
<help>
ASK <npc> ABOUT [adjective] <noun>; Ask an NPC about an object (topic)
</help>
</verb>
Then the task trigger, specify which verb and who you’re talking to:
<task id="32600" name="ASK Gandalf about the Ring">
<trigger action="ASK" npcId="50000" actionObject="RING|SAURON|GALADRIEL"/>
<conditions/>
<onSuccess>
<consequence type="runNpcState" npcId=”50000” nextState=”20”/>
</onSuccess>
</task>
Finally in the NPC state machine for NPC 50000; add state 20 and extra states to interpret what is asked:
<state id="20">
<action type="checkNoun" nouns=”RING” onSuccess=”21” onFail=”22”>
<action type="runNpcState"/>
</state>
<state id=”21”>
<action type=”message”>Gandalf urges you not to use it!</sction>
</state>
<state id=”22”>
<!-- You can add checks for other nouns here and cascade through to support knowledge of as many items as you like.
Finish with the default ‘I don’t know what you’re talking about’ or whatever is appropriate. -->
</state>
You can check adjectives in the same way. You can also check other game states or if the player is carrying certain objects, so you can check if the player has earned the right to ask about such a thing and refuse to answer if not.
I’ve added wiki based docs. This has been generated from the .odt file using pandoc which has done an OK-ish job of it but many things like links don’t work and some code samples look a bit ugly.
I’ll fix as I go along and start getting used to how the markdown works.
The docs are by no means complete. Again I’m working on it but there’s only one of me!
Docs look a bit better now.
I need to get around to documenting Npc combat and Trading in particular.
If there’s anything else you need me to elaborate on please just ask.
I’m working on a port of the dark cloak thing. I can easily do all of it as it stands but it’s thrown some light on a couple of situations I hadn’t considered (wear cloak as an opposite of take off cloak - there are item state change handlers but they need generalising a bit further than what I have at the moment.)
New release coming up soon and I’ll publish the cloak source too.