General
-
(Syntax) Easier way to create values that vary
Especially when creating global variables with descriptive names, the syntax is very awkward:
"The treasures remaining is a number that varies. The treasures remaining is 5."
A shorthand syntax would be helpful, such as one of the following:
The treasures remaining is a number that varies. It is 5.
The treasures remaining is a number that varies set to 5.
The treasures remaining is a number (5) that varies.
14 votesPersonally I like the idea of having some shorter version of this; we’ll see.
-
(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.
-
Make search results a tab in the IDE
Is there any reason why the search results can't be made into a regular tab in the IDE, just like Source, Errors, etc.? Often I find I want to keep the search results window around for a bit, but it's a pain to have it floating in front of my workspace. It's also the only part of the IDE that seems to stick out in an ugly way from the rest of the design.
12 votes -
(IDE) Replace fixed two-pane layout with more general, resizable panels.
I find the fixed layout a bit restrictive. Sometimes I want a single pane, sometimes I want one big pane and a bunch of small ones, etc etc. There are fairly standard and sensible ways of doing this in general IDEs like Eclipse.
12 votes -
(Website/Extensions) Allow all extensions to be downloaded in single .zip *VW*
Make it possible to download a complete set of available extensions from a single zip file.
11 votesA volunteer project to improve extension management is under way, and this idea may be included.
-
(IDE) Support WYSIWYG bold and italic literal text in source files.
Given that the whole IDE experience is pretty much a word processor, it would be nice to be able to use WYSIWYG markup in literal text in the source file. This would then turn into the relevant markup in the resulting story file.
This would make the use of this sort of markup much smoother, as it would avoid a lot of the clunky inline control code stuff that we currently have to write.
10 votes -
9 votes
All three platforms offer some choice of font, but they handle style and colour options differently, with Windows offering the least choice for now (being confined to the current system font, though at a choice of sizes). The source panel is currently being rewritten on Windows, so that we can eventually have elastic tab stops there (a feature
newly added to OS X and Linux Inform); the new Windows source panel will be
more configurable. -
(Website/Extensions) Request page for extensions *VW*
It would be good to have a requests page where people could list extensions they wish existed, and other people could answer indicating that they are working on meeting those needs.
9 votesA volunteer project to improve extension management is under way, and this idea is included.
-
(Syntax/programming) Lift restriction on creating temporary lists using a description of objects
The 'list of' phrase only uses the description locally, so it would be safe to allow local variables there, similar to how they can be used in some of the file writing phrases.
For instance, this is currently illegal but could safely be made legal:
Home is a room.
When play begins:
let the place be Home;
let L be the list of things in the place;
say "Today's random list is: [L]."A knife, a fork and a spoon are in Home.
9 votes -
(Syntax) Provide a special "nothing" constant
That there be a special class of constant that would be usable in initial property and variable declarations and that would evaluate to the type-specific null value for each type--this would probably be expressed as "nothing" in I7-level source code. (I imagine this would need to be handled at the I7 compiler level, rather than in the template layer.)
9 votes -
(Website) Make available versions before 4S08
I was looking for an old version of I7, which I need to compile an old project, and was unable to find it on the website. The website only goes back to 4S08, but should contain links to all previous versions so that old story files can be re-compiled in the original version of I7 that they were written in.
If the older versions are not available, then whenever an old project needs to be rebuilt you will also need to do a full code review to ensure that it compiles in the latest version of I7, followed by another…
8 votes -
provide I7-level access to the parse list when asking "which do you mean"
Example 355, "Walls and Noses," provides a very useful snippet of I6 code that allows you to determine what sorts of things are in the parse list when the game asks "which do you mean." I think the concept is useful enough that it should be built into the I7 language, instead of forcing authors to include an ugly chunk of I6 code to get the functionality.
8 votesIn theory I strongly agree that this is desirable. We’ll discuss whether there are practical roadblocks.
-
(Programming) Get rid of "a random" when it's obvious there can only be one
A better way to refer to a single item with a given
specification, in a situation where it's known that it must be the only
one. At present "a random..." is sometimes used for this, so for instance:try inserting the item into a random pocket that is part of the garment;
Here the author knows that the garment has exactly one pocket, and is
really trying to say "the pocket which is a part of this particular
garment" - no actual randomness is really involved, and the source text is
therefore misleading to read.Various alternatives are proposed. At…
8 votesThis would be quite difficult
for us to implement; we’re interested in investigating it in the long term
but make no promises. -
(IDE/Compiler) Continuous compilation
Rather than writing some code, hitting "compile", then tracking down the errors, it would be nice to have the option of running the compiler automatically in the background so you can see errors immediately (or almost immediately) as you type.
8 votes -
(Extensions) Revise extension example presentation (pasting)
Comments in extension examples are currently treated differently from examples in the manual. The annoying upshot is that, if an extension author wants to walk users through an example with commentary, the source code will be broken up into multiple segments, each with its own paste button that must be clicked (worse, in the Mac IDE at least, pasted text is selected, so the user must deselect the text in the source panel before returning to the extension documentation panel to press the next paste button in the series).
Details: In the manual, comments appear as text that goes the…
8 votes -
(Extensions) Revise extension inclusions
Inform has a very useful feature whereby extensions can refer to one another and include (or not) code based on whether other extensions are installed. This generally works well, but doesn't go quite far enough for all situations. I will use my experience authoring a recent extension (Glulx Status Window Control) to illustrate where I think the functionality still falls short:
GSWC can be used with any Glulx project, and it also has special provisions when it is used in conjunction with the Simple Graphical Window and Flexible Windows windowing systems. GSWC requires Glulx Text Effects, but so do these…
8 votesIt sounds like the current behavior verges on buggy, rather than merely non-optimal. We’ll look at this.
-
(IDE/Manual) Don't truncate search results so much
When searching the manual, at least on the Mac IDE, it's hard to see enough of the search results to understand the context of what's been found, which makes it difficult to know which of the results is relevant.
7 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.
-
(Programming) Inclusion of OR in conditions
As in the Inform 6 code
if (a == 2 or 4 or 6) ...
if (leader ~= bill or martin or fred) ...Which might be syntactically rendered in I7 as, say:
if a is either 2 or 4 or 6...
if the leader is neither Bill nor Martin nor Fred...
This should work with all verbs, so that we could have, e.g.if the player is carrying either a knife or a sword...
A variant with positive "and" conjunctions would also be welcome:
if the player is carrying both the flint and the steel and the firewood...
And…
7 votesWe agree that this would be nice, but the implementation problems make us want
to hide under the bed. (The word “or” is already used for selection between
actions, and the ambiguities pile up.) We’ll keep this under review. -
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
- Don't see your idea?