It goes beyond interactive fiction. Even in coding every so often there is a resurgence in “declarative programming” that promises results without having to specify how to get them. In the realm of C# and .Net first there were attributes, then XAML, etc. Declarative style is great right up until you need something to be dynamic that the system in question treats as static, then it all falls apart. Code is inescapable if you delve deep enough. Making your system fully flexible means it needs to be turing complete, then…oh look…it’s another language.
Hmm. That’s nice, I guess, but it doesn’t really address ANY of the things that I was thinking about. The big problem (IMO) with visual tools is that the text and event conditions and so on are all broken up into separate little bits and you can’t manipulate them as a group. In Ink, for instance, you can just use regular text selection and copy/paste to grab say, three choices (one nested inside another choice) and half of a fourth choice, cut them out and drop them all in some totally different part of the code. Can you, in your editor, block select an arbitrary rectangle of the spreadsheet and duplicate it to a different part of the spreadsheet? Can you do it with either mouse OR keyboard? How many keyboard shortcuts and “where is the cursor focused?” things do you have to know in order to do so? Those kinds of questions are what I’m thinking about when I say “writing experience in visual tools being pretty bad.” And many of those are more editing than writing, but also things like “how fast can you just write all the conditions from the keyboard without having to switch the mouse constantly?” that more of a writing question, or “can you copy this chunk of game structure five times and modify it for each of the five special cases?”
Having the structure enforced is ALSO much of the STRENGTH of visual coding tools, but it does tend to interfere with the kind of (often unstructured) basic editing operations that you can do with a fully text-based tool.
It’s interesting that I was just thinking about this topic and I saw it pop up on the forum. I think the idea here is a good one but maybe needs to be modified based on the feedback. No code might not be feasible or desired, but the idea of having a code that is visible also in a UI is already true in Inform with the index. What might be the next step is to create an index from the code that is more database style and editable in the UI. Then you get the best of both worlds.
Yes, it can move things up or down the line for rearrangement. It can move them out the rule block and into another one altogether. It also has a feature which I’ve made a lot of use of in renumbering. Rule numbers are unique. Rules chain other rules using rule numbers as the linkage. Combined together they form composite complex operations. Many times I have built something and I wanted to add to it or change it. I did something in between with other blocks and now I might have rules 5,6,7, and 23 in an arrangement. I’d move 23 to be up where it is in the locality of the other rules, while visual order is important for named events, it doesn’t matter for generic rules. I find that I still like them visually together, and even more, numerically together. Renumbering causes them to be renumbered in visual order so that 23 becomes 8 everything that used 23 now uses 8.
The great thing about the editing part is that I’ve really only just begun to make it into a tool that I want to use and would miss using. I’ve devoted a lot of the time in this project to the engine, the structure, and the pipeline. I’m now able to dedicate my effort to the visual tool itself. I’ve got no end of things I want to do with it. I appreciate the suggestions and constructional criticism. I’m not really trying to launch this tool onto the world. I’m really just gauging interest in it or something like it. First and foremost, I just want to make things to play with it share the game file. Itch is really not my favorite platform and I shudder at the fact that the web front end is the thing everyone sees firsthand. The Android mobile player and the Windows player are so much better.
Perhaps using “no code” was a poor choice of words. I am a computer programmer and to me code means something else than this thing I have been making. It may have been better to describe it as a data-driven rules engine. The architecture operates more like a traditional game engine. There is a central game loop. This loop, during its stages, takes the input and dispatches it to events. These events can be intercepted and handled. Handling them takes many forms from the visible things like showing text to the invisible like manipulating the world underneath. The “spreadsheet” is a visually ordered event-dispatcher where rules evaluate conditions sequentially and handle them or not. My post of the cloak of darkness is for everyone’s baseline because everyone knows how it should behave and has code to look at.
I don’t have a programming background, so setting aside questions of capability, architecture, etc, I think a key consideration is how people digest and organize information. I.e., “Would you rather work from a table?” For an Inform comparison (since it’s mentioned), I think this is the key. Some people love the natural language stuff and others hate it, but proponents enjoy its readability (and striving for readability in their own work). I look at this example and I don’t really see a way out of doing complex things to make a game with a world model, I see an alternative way of visualizing and organizing the machinery.
I use a lot of tables in my Inform stuff, and my feeling is that my programs are better at reading them than I am. I’m sure that’s partially down to personal aptitude and partially a limitation of available IDEs, but my personal answer is that I’d rather read code. Elements of the Inform project index are very useful, though, so it’s definitely not a hard line for me.
But that’s very idiosyncratic. I imagine there are lots of people who would rather work within a table idiom. I think that’s a different distinction from “is this easier” or “is this coding.” How do people process information and do these differences affect creative processes? It sounds like you (Candy64) have already found it helpful, so there’s one answer already!
On the surface, the tables look very promising, but I’d need to see a demonstration of how you would author a game in this tool to say whether or not I’d be interested in using a system like this. For example, I’m really curious how custom actions/commands are handled in this system.
Even though spreadsheets look sterile and devoid of creative energy at a glance, focusing on object level data is key for parser games, I think. So even though your tool looks boring… that’s okay. ![]()
There are 23 verb action categories. 22 are curated (each with Before/After events), and the 23rd is the Generic category, which can handle any verb, including verbs that belong to curated categories. The curated categories simply exist to make common actions easier to work with. Adding custom verbs is straightforward. Any number of words or phrases can be registered as verbs. For example, I once added “take picture”, “snap photo”, and similar phrases as generic verbs. Later, when I introduced a camera object, I simply moved those verbs into the SHOOT curated category so they behaved like a weapon action. Reassigning verbs is just a matter of changing their category entry.
Generic verbs are handled by the Generic event, but any rule can target any verb regardless of category. If I want a rule to fire only for certain verbs, I create a rule whose target set includes those verbs. Targets can be inclusive (“in this set”), exclusive (“not in this set”), or global (“any generic verb”). This same set‑based targeting applies to all event types.
Rules can do anything from printing text to manipulating objects, locations, and state.
Rules can also return values that short‑circuit default behavior. For example, a “before speech” rule in a library might return false, causing the NPC to whisper “Not here, too loud” instead of running the normal conversation logic.
Rules can chain. A rule can trigger one or more additional rules, and in theory you could recurse deeply enough to overflow the stack (though I’ve never done it accidentally).
Objects are central to the system. Objects can contain other objects simply by setting their location. Putting a letter in a mailbox is just setting the letter’s location to the mailbox; taking it sets its location to the player. Most gameplay emerges from defining objects, locations, and the rules that govern their interactions.
If you want, I can build a small example, put it on Itch, and show all the screens so you can see exactly how authoring works end‑to‑end.
That would be wonderful. Thanks! ![]()
Do you have a small example in mind? I’ve made some examples already with full screens that are on Itch. My TALP 2026 entry has a musical instrument object that you play using custom verbs. There is no built-in music object as of yet. There is plenty of room to define one and add it to the system and give it its own curated events. Here are a couple of screens of a custom action of playing a music instrument. The actions are tied to a specific object and the rules are also tied to the location. The verbs are “play, blow, use” - play and use are already defined in the main action table. blow is a custom verb added through the vocabulary screen. The silver flute is a generic object but the actions turn it into a playable flute.
A much more complicated action is in a game I am working on. In it is a book that contains the full short story that the game is based on. You can read the whole short story in the game. The story is public domain from the turn of the 19th to 20th century called “Ghost Stories of the Antiquary”
I think your description and these new screenshots paint the picture clearly enough now. Looks fairly accessible through the lens of object data. Now I understand why you lead with your rule system screenshot, as that is where an author will do most of their thinking.
I noticed 699 rules for one room in the first screenshot. However, I see that is just a rule block and I assume you can have multiple rule blocks per room to break up that table. If that’s correct, do you offer other ways of splitting up data into separate blocks/groups? Can I make multiple object groups for different regions of a game? I like organizing data into manageable chunks.
I mentioned about ifSpace before and its evolutions feature. Essentially, an object was given an ID, but also a default state ID. You could trigger an evolution at anytime and the object would then use a new state ID for it’s rules, description and even nouns (everything, basically). For example, a room (state 1) could be set on fire (state 2) and extinguished (state 3). Now it’s using a new state ID, but still the same room ID is used for navigating. Does you system allow for states of objects?
Yes. Rule blocks can be added, deleted, or rearranged like rules. Rules can be moved between blocks.
A good default spec for comparison is Cloak of Darkness, which has been remade in many different systems.
Yes. Every object in the game is represented by an 8 digit number. This number is like a union. It can be an 8 digit value, it can also be 4 2-digit values, referred to as R1-R4, or 8 1-digit values referred to as R5-R12. It can be used in any way at any time and does not get locked into a certain state after being used that way. There are some custom assignments like R34 which is a 4 digit number. Objects that are locked by a 4 digit combination will embed the combination in this value. The objects that are in curated categories, like weapons, storage, and keys have assigned meanings to some of the R fields. The engine manages these fields and state transitions. A rule can check to see if storage is open, closed, or locked by testing the value of a R value. Objects in rules can check these sub values by appending .r# (r1,r2,…,r11,r12) if the rule is more specific. Objects can be used as state variables and have whatever values you want in them. These kinds of objects are usually located “in themselves”. Object ids, locations, and values are mutually exclusive. They are part of the object table but do not show up and as a result when a game is saved or loaded, the state of them is automatically carried into the save game file. Saving and restoring world state is as simple as loading the object table as it existed when it was saved.
How far can someone deviate from the typical parser prototype? (Like Cloak of Darkness, Zork, Lost Pig, etc)
Is there a way to model moving vehicles with multiple internal spaces?
Is it possible to create rooms inside of rooms?
I am not sure what this question is asking.
Any objects location can be manipulated with a rule. You can move it anywhere, including inside of itself, another object, to the player, or to another location.
If I am understanding this correctly then it is possible to make a location that has no entrances or exits but still exists. To get to that location a rule would move you to that location. If that is what you mean, then yes.
Locations in the world are represented by a number. Location 0 is the player, locations > 0 are map locations. Locations < 0 are object numbers. If the mailbox was object 2, the letter was object 3, the bag object 4, and you wanted to put the letter in the mailbox, the letters location is set to -2. If the mailbox was in room 2 and you dropped the letter to the ground there then its location would be 2. If you pick up the letter, its location is 0, in your inventory. If the letter is in a bag, it’s location is -4, even if you are carrying the bag, the bags location is 0. The UI shields you from having to type these properly unless you edit it manually and intentially.
Compare the games listed above to games like Galatea, Counterfeit Monkey, and The Wizard Sniffer, which are all undeniably parser games but stray from the typical “find-objects-and-where-to-use-them puzzle game” structure and interaction method.
There is no AI in the system or an AI based NPC that can talk back to you. If you wanted to build up your own NPC responses, there is nothing stopping you. If you wanted to be the pig in the sniffer then rules can absolutely prevent you from directly doing anything and instead having custom defined actions like “sniff” and “oink”. If you wanted to make a choice based game then you can. Objects internally are just unique numbers, there is no technical reason that changing the name of an object couldn’t happen or would break something other than maybe becoming annoying.
From a player’s perspective, it’d be better to have the results of the action directly before the command line instead of reprinting the room description. That’s what LOOK is for. You need to fix some articles (e.g. definite vs. indefinite). Some accessibility options would be nice, like changing the color scheme and font. Unimportant objects like the chandelier shouldn’t get an isolated mention in the room description, even if they are implemented.



