After fixing yet another bug caused by the difference between putting it on and inserting it into, I’m wondering how valuable this distinction really is. The entering action, for example, makes no distinction between GET ON and GET IN. And the default world model does not allow an object to both contain and support things.
Are there important reasons I’m missing to have these be separate actions?
Having struggled with this myself, I’d agree that the distinction has never struck me as especially useful and does lead to potential bugginess.
That’s true, but it does respond differently to PUT IN and PUT ON actions. This provides a tiny bit of default world modelling which is, I think, in line with player expectations.
You can see a box (empty) and a table here.
>put rock in table
That can’t contain things.
>put rock on box
Putting things on the box would achieve nothing.
The author might want to combine the actions for a given object (a “chair”, for example) but unifying them game-wide for every object, by default, would be a big change.
Also, splitting one library action to customize a single object is a much bigger nuisance than redirecting one library action to customize a single object. For the chair example, in the current system, you’d write:
Instead of inserting something into the chair:
instead try putting the noun on the chair.
If PUT IN and PUT ON were a single Inform action, dividing them up would take a lot more code.
Personally, I’d rather go the other way and create a distinction between
get on and
I can see this, actually. If the default behavior of GET ON was to invoke GET IN. (Players type ENTER indiscriminately; it’s forty years too late to tell them not to.)
I’ve had things before that (from the point of view of the player) it was possible to put things in, or to put things on–containers with lids where a thing could be on the lid when the lid was closed, but you could also put things inside when the lid was open–and it would respond differently to each.
Basically, what Zarf said.
I could also imagine confusion with something like a dresser or a desk, where you’d expect “put [thing] in desk” to have a different response from “put [thing] on desk.”