-
Notifications
You must be signed in to change notification settings - Fork 64
Open
Description
In the game, the player will have to "interface with the ship's computers from within by learning one of the most powerful tools available: The Command Line" (as described in the game readme). What this means is basically:
- under certain conditions (maybe always, maybe only when the player is in a certain state, e.g. in a specific room) a command line interface will be visible
- this interface will have to accept text input and be able to return text output, similar to e.g. a terminal running Bash.
- it has to be possible to define commands that the CLI will recognize, including
- the command itself
- possible arguments
- a white- or blacklist for when the command can be used
- the output of the command (which may depend on the arguments)
- effects to the game state, that running this command will have (depending on both the current game state and the given arguments)
An example of how this may look is:
There are also several open questions, including:
- should the user be able to edit text files? If so, a navigation within a 2D environment (the text file) is required.
- should there be a history of previously called commands? If so, how many commands should be saved in the history at any given point in time? (e.g. the last 5 commands)
- should tab completion be available?
- should arguments be possible in any order?
- should combined arguments with spaces (e.g.
--room 2) be allowed or should those always be connected (e.g.--room=2)? - should any kind of scripting be allowed? (e.g. branching, loops, pipes, ...)
An MVP would be an interface that is:
- always visible to the player
- accepts text input
- recognizes commands
- recognizes combined arguments (so
--room=2is one argument but--room 2would be two) - allows the definition of output which may depend on the arguments
- allows limited game state changes (e.g. calling the
bcs --room=2 --device=lamp activatecommand may cause the lamp in room 2 to be activated
Metadata
Metadata
Assignees
Labels
No labels