Inform - Support - Suggestions

About Suggestions  

Under consideration  
Accepted for next release  
Completed  
Rejected  
Complete list  

Rejected suggestions

These suggestions have been regretfully rejected as being 'not worthwhile': that is, they're either incompatible with the direction in which Graham wishes Inform to develop, or the complexity, difficulty, long-term support headache, or side effects of the change would greatly outweight the benefit.

Anybody is welcome to submit a suggestion; please keep it succinct and in the style of the proposals already published here.

     
     
149.  I'd like to see 4 "directions" added to the compass if possible: FORWARD, BACK or REVERSE, LEFT, and RIGHT.
     
108.  Allow libraries to define compile time checks to be performed against the objects defined in the program. This would allow some world model violations and coding slips to be detected with the aid of the compiler. The new directive could take the form of:
  #Check;
    Iftrue #self has door && #self hasnt static;
      Message "a door normally has static";
    Endif;
  #Endcheck;
When the compiler encounters #Check ... #Endcheck instead of executing the contents it memorises them for use in a later phase. Towards the end of compilation a checking phase is entered and the new system constant #self is set to each object in turn and all the memorised checks executed. (Line number needs to be set too so that the cause of Messages can be located.) During the checking phase, expression constant folding is extended to allow 'has', 'provides', 'parent( )' etc to be executed against the finished objects; this allows the compiler to evaluate the library defined tests.
     
96.  An attribute you can give an object so that it don't appear in a room description, but don't change the object in any other way. (scenery makes it so that the object can't be picked up, concealed makes it so that the object can't be picked up by typing TAKE ALL.)
     
94.  I would like a way of deciding it what order the described items occur in the room description. For instance say a room contains a lion. The lion will never be in any other rooms. But at some point it will disappear from the room. So I give it describe, but the description of the lion is meant to still feel as part of the room description, even if it isn't technically. The problem comes if a player drops an item with describe. The description of the item will then come before the description of the lion. So maybe one could put numbers on the descriptions, so that the game first describes number 1 and then number 2 and so on.
     
93.  I am writing a game without EXAMINE. Therefore all stuff must be described when the player uses LOOK. One can get a long way with describe, but the describe attribute dos not work if the object is on, for instance, a table. I would like another attribute that makes it so that you can see the description even when the object is on the table. Maybe there could be a line first saying: "On the table you see:" followed by the descriptions of all objects on the table. This should also happen if the player is on the table.
     
92.  If a class has a react_before and an object with that class has a react_before the game ignores the react_before of the class. Would be useful if there was a way the object could have both reacts_befores and one decides which one comes into play first.
     
91.  An easier way of deciding what happens first. So that you can make a "before" happen before a "react before" or a "react before" happen before an "order". And also a way of deciding which "react before" happens first. Maybe one could put numbers on them, so that number 1 happens before number 2 etc.
     
89.  I would like to see the use of the library "interger.h" removed and now since the current machines have more memory incorporate a feature that will allow the author to have numbers over 32767.
     
78.  The compiler could eliminate unreferenced objects and classes.
     
69.  Why not make it so you can use either initialise or initialize for your routine that sets the game up, at the beginning? The compiler would accept either, and if both exist it would be an error.
     
68.  Better NPC implementation. The ORLibrary has some excellent routines. Why not implement something along those lines considering many IF games make heavy use of NPCs anyway?.
     
61.  Static variables, or some other version of scoping within .h files.
     
55.  Better code generation for the switch statement. When possible, generate a lookup table, or a binary-searchable table.
     
44.  Floating point veneer, Floating Point Veneer, FLOATING POINT VENEER. (only occasionally needed, but VERY necessary in those cases)
     
43.  "and" keyword: (func(x) < 5 and >= 10 and ~= 8) should be like (func(x) < 5 && func(x) >= 10 && func(x) ~= 8), except that it only calls func(x) once, and is thus faster.
     
42.  Some form of _explicit_ list separator (a keyword like "item"/"next"/"then" would be good for this) would then be REQUIRED to write an array that didn't just look like one humongous function call.
     
41.  Pointer referencing and dereferencing (using * and & would work fine, wouldn't they?) would be nice, along with C-style function pointers
     
39.  I would like to see TestScope work the way I think it ought to. That is that it tests to see if the noun and/or the second is in scope and returns the appropriate error messages: "I'm sorry but (the noun) isn't here", "I'm sorry but the (the second) isnt here", or "I'm sorry but neither (the noun or the second) are here"; or some such and allowing the auther to further customize it as well.
     
38.  Initialising a word array with a single string should generate a warning that the string has been unpacked.
     
28.  Some method in the language of generating auto-incrementing Constants, like enums in C. For instance, "Constants A, B, C;" would be equivalent to "Constant A=0; Constant B=1; Constant C=2;".
     
24.  String manipulation, like concatenation or substring searches.
     
22.  Provide support for arrays local to functions.
     
21.  Don't really understand why the Inform compiler limits selected things like MAX_STATIC_DATA.
     
19.  Add a spelling checker to the compiler.
     
18.  Make printing strings (as in 'Array mumble string "foobar"') a standard function.
     
17.  Give up on trying to promote "for (::)" and just accept that everyone uses semicolons "for (;;)". Drop the warning.
     
16.  Add an alternative syntax of array[index] for array->index and array-->index.
     
10.  Automatically compile to v8 if the game overflows v5.


Last updated 17 April 2013. This web site has not been fully supported since April 2008. Information may be out of date. This page was originally managed by Roger Firth.