General
-
Move rule conditions to before the block value initialisation code
If you're writing a rule which uses some kind of block value (indexed text, stored actions, lists etc), an I6 function is created which sets up new block values, which then runs the rule's function itself. The condition for the rule is in this second function. It should be moved to the first so that if the condition is not met then the block value code does not need to run.
1 vote -
(IDE) Allow the (easy) extraction of the prose from the code.
It would be useful to have a simple command to extract all the prose (non-code text) from the source, to let proofreader have a list of sentences instead of having them rummage through code or play the game and hope to find all text. This is done with Perl, i.e., but an in IDE simple menu item would be better.
5 votes -
(Windows/IDE) F3 to find next match
Most text editors for Windows, as well as other text-heavy apps such as web browsers, use the F3 key as a hotkey to look for the next instance of the last text search. In other words, it does the same thing as the "Find Next" button in the I7 "Find" dialog. It would be nice if that worked in the I7 IDE as well. I can't speak for others, but for me, hitting F3 is such an ingrained habit that I keep on doing it even though it does something else.
1 vote -
(IDE/Compiler) Debug Tools: Assertion Testing and Tracing
The tools given to authors for debugging Inform 7 code is rather limited right now. Pinpointing a bug that doesn't generate a compiler or run-time error usually requires a big mess of conditionals and 'say' phrases being thrown into what might otherwise be perfectly sound code to try and pinpoint the bug from it's side effects, and then, when the bug is resolved, those phrases need to be removed. This is hazardous and unnecessary, an avenue for introducing new bugs because you deleted one too many phrases.
I suggest adding formal 'assertion testing' and 'trace' features to Inform 7.
An…
3 votes -
(IDEs) Pass the k flag to the Inform 6 compiler under Windows
...so that gameinfo.dbg is available for debugging.
0 votes -
Add themes to the text editing window
The linux version of the Inform 7 application has themes. The Windows version needs this feature to accommodate people with vision issues.
2 votes -
Allow non-temporary named values after the dash in a phrase argument
So that code like
- - - -
There is a room.
Foo is a thing that varies.
To bar (X - a thing that is foo): ....
- - - -could be written without ``a thing that is.'' Or, if there is a good reason for this syntax, change the problem message provoked by omitting those words to suggest that the author might have intended them.
2 votes -
(GNOME/IDE) Implement the Transcript panel
The Windows and Mac OS X IDEs have a Transcript panel where you can view and bless the output for each Skein knot. It would be nice to have this in the GNOME-Linux IDE too.
5 votes -
Save per-project window position and size
The IDE should remember the position and size of each project window across app restarts, so that the next time you open a project, its window appears in the same place on the desktop when you last quit (or crashed).
6 votes -
Support for bundling old game files into a Blorb archive
A long-running complaint about IF systems is that every new release of a game breaks compatibility with old save files. This is a manageable nuisance with old-fashioned native interpreters -- you can keep your old game files, or delay upgrading until a convenient time. A web interpreter gives the player no control: the author installs an upgraded release, and players find that their save files have effectively disappeared.
True backwards compatibility of save files is a very difficult problem (which is why this is a *long-running* complaint). It requires much more game file introspection than Zcode/Glulx currently provide, and that…
1 vote -
An analog for "if the player consents" that allows the author to decide what the choices are
It could be coded like this:
To decide whether the player prefers (T1 - topic) as (1st - text) to (T2 - topic) as (2nd - text):
While 1 is 1: [an equivalent to while true would be nice as well]
get an input;
if the player's command matches T1:
decide on true;
if the player's command matches T2:
decide on false;
say "Please choose [1st] or [2nd]. >"To get an input:
(-VM_ReadKeyboard(buffer, parse);-)I'm not in any way an efficient programmer, so someone more experienced than myself could probably do the same thing a lot better.
3 votes -
Remove hard-coded processing of blank lines from the Keyboard.i6t
If authors want to do something with a blank line (such as run a different command, like LOOK), they currently must hack the Keyboard routine to comment out the hard-coded bailout of the parsing beginning after the comment "If the line was blank, get a fresh line". If this was moved to a rule, or could be deactivated via a use option, authors could adjust behavior in more I7-y ways instead of needing to replace a long I6 routine in ways that render it incompatible with other code or extensions that also might want to adjust this routine.
7 votesI am in favor of this, and think it fits well with other items on the agenda of the present build, to do with allowing much greater output customization overall. We’ll see.
-
"When sound ends" rulebook
For example, to make background music loop; or in my case in which I plan to have different music for each region, allow the music to end before starting the new track: currently it is a forcedly abrupt cut, and I don't have the I6 expertise to create even a jury-rigged workaround. (Considering I can't even define a room in I6, "expertise" is possibly the wrong word. Maybe "ability to copy and paste bits of code" is more appropriate.)
4 votes -
Add the keyword "ever" to conditional syntax
The word "ever" seems to be implied in the syntax for looking backward. Although the semantics of "has been x" and "has ever been x" are the same, if you consider having "for x turns" added to the condition, then the use of "ever" would provide a useful semantic difference. "Ever" releases the end point of the counted consecutive turns so that it need not be the current turn. "Has been x for y turns" can go away. "Has ever been x for y turns" can not.
Example:
Instead of drinking the milk:
if the milk has ever been unrefrigerated…6 votes -
Automatically create an 'open' property when defining that a kind or a thing as 'openable'
Currently, defining that something (a specific object or a kind) can be or is openable does not allow the target to be 'opened' in the world model because a separate 'open' property also has to be defined. Inform 7 could safely assume that when something is defined as 'openable' then the 'open' property will be needed to track whether the object is open or closed.
5 votes -
(world model) a way to move or conceal doors
There has never been a satisfactory way in Inform to implement a concealed door that is revealed under certain conditions, or a door that leads to different locations under different conditions. I realize that these are hoary cliches of adventure gaming, but despite this (or, really, because of it), I would like to see some kind of solution in Inform.
12 votesThere are assorted ways of faking this behavior, but I can see that it’s sometimes a stumbling block for authors, and it’s easy to do wrong. Historically, the way the map was constructed meant that this kind of adjustment would have been hard to do, but we’ll see whether that has changed.
-
The IDE interpreter should reject invalid Glk calls
There are several common mistake patterns for erroneous Glk calls:
- Calling a window function (e.g. glk_window_clear) with a window argument of zero, or a window argument that doesn't refer to a real window
- Ditto for stream and sound-channel function.
- Printing to a text window which is awaiting line input.
These are fatal errors on some Glk libraries, but are ignored on others. (Or they're ignored by default, with a "strict mode" preference.) This leads authors into a trap, like the "vile zero" situation on the Z-machine a decade ago.
To avoid this, the IDE interpreter's Glk library…
7 votes -
(World model) Revise LOOK UNDER
Per http://therestofyourmice.blogspot.com/2011/05/spring-thing-2011-reviews.html , revise the failure message for looking under something so that it does not suggest the looking was necessarily successful.
1 vote -
Integrate a Credits system
...for acknowledging public extensions in a work, retrievable by interpreters like any metadata, so online databases can advertise an extension as "used in creating the following titles", as well as for showcasing extensions used in an individual work's download page.
6 votes -
Restarting clears prior actions for future recompile/replay requests
Requests to recompile and replay will not perform any actions taken in the last play-through prior to a "> restart" command being issued.
0 votes
- Don't see your idea?