Skip to content

Create the command line interface system #47

@blalasaadri

Description

@blalasaadri

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=2 is one argument but --room 2 would 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 activate command may cause the lamp in room 2 to be activated

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions