2019-10-09 20:15
Command Line Review ======
In Command Line you start in a dark room with nothing but the command line and a robot in the distance. The polish of the visual aspects is impressive, and I love the concept. Part of the game is trying to figure out how to play the game. Luckily the UI borrows from Command Line Interfaces (CLIs) that many users or text adventure players will be familiar with. Typing `help` will fill you in and point you toward a few more commands.
Command Line starts with a simple, if cumbersome, UI: You can start and stop motors, set their speed. ``` setMotor 0 true setSpeed 0 400 ```
But it has a compositional means for you to create your own idiosyncratic UI. (I've wished I could do this for DwarfFortress too many times.) The CLI allows you to run commands _and_ write scripts. So any command you can run, you can run serially with other commands. You can have your scripts call other scripts you've written. It wasn't clear to me if scripts can accept arguments, which hinders one from being able to succinctly write:
``` $ createSequence on $ add setMotor $1 true
$ playSequence on 0 ```
Instead you might write:
``` $ createSequence on0 $ add setMotor 0 true $ playSequence on0 ```
One can imagine writing scripts like "go", "stop", "turnLeft", "turnRight" which would represent a great jump from a cumbersome low-level UI to a high-level UI that the user really would create for themselves.
It's not clear that users really could create this interface, however. The joints are driven by speed not by desired angle. There isn't a command to control timing like `sleep` or `run-after
One notable omission from the game's online documentation is it does not list the command `release` which is essential to getting your robot to start its task. One nice-to-have feature request I'd put in for is tab-completion at the prompt.
Overall, I really liked this game and its terminal glow aesthetic. The swiveling between monitors using the arrow keys felt good, like you could focus on one thing when you choose to. The robot battery is a good way to ensure users don't spend too long on a poorly setup robot. I'd love to see scripts accept arguments and tab completion, but as this is a jam game, I'm happy to have been able to play it as is. After a number of trials, I'm happy to say [I did get my robot past the finish line](https://twitter.com/shanecelis/status/1181999705959653377).
BUGS ====
* The `release` command is not mentioned in help.
* The goal state doesn't appear to be recognized. I had a robot pass the line and hit the other side of the wall, but the goal state never got past 90%.
* The only way to play sequences was to set them up for editing I found.
##### Didn't work. ``` $ ps on ``` ##### Worked ``` $ es on $ ps ```