An Input Prototype

December 18, 2020

Command Line Processing

I've created an export release of a UI/UX prototype for MacOS and Windows. This prototype demonstrates three CLI features:

  1. Command auto-completion: when pressing TAB, a look-up is performed to find the closest match against all input options. If a match is found the rest of the command is filled in automatically
  2. Command hinting: when pressing ESCAPE, the same auto-completion look-up is performed and presents all options that match the current input string. If no look-up matches are found, then all options are displayed based upon the previous token
  3. Command parsing: any input is parsed as a command. If an invalid command is submitted the prompt displays a corresponding error message. Otherwise it will be executed. However, this prototype includes only four distinct commands that produce results because game mechanics are not implemented

The d-pad can also be used for the entire command input process. Some ficticious command targets are presented for test purposes.

Workspace and View Navigation

I've determined how navigating the cursor between views will work after doing a bit more research on existing tools and interfaces like tmux, Oberon, and i3. When pressing a modifier key, inputs will be switched from the command line to view (or focus) navigation. In this mode, number keys will navigate between workspaces and arrow keys will switch between views within the current workspace. Furthermore, each command output will be loaded into a distinct view that can be focused in this manner. In summary:

  1. Workspace navigation: pressing the modifier key + the number keys will switch between workspaces
  2. View navigation: pressing the modifier key + arrow keys will navigate the focus to a new target view
  3. View inputs: when focused on a view that does not use a CLI, key presses are handled by that view

This prototype uses the command and control as the modifier key for MacOS and Windows, respectively. Views will also scale appropriately when resized. The prototype demonstrates the workspace navigation but not the view navigation or the view inputs. I found that it's easy to modify Godot input mapping, GUI themes, and focus management. However, it is not easy to modify the rendering of non-standard components even with a custom theme. So that remains to be a work in progress.

The Missing Pieces

In a follow-up, I expect to implement the following:

Prototype Files

You can download a windows version of the prototype here: Automaton Input Test.exe
A macOS version is available for download here: Automaton Input Test.dmg

These were both exported directly from Godot. I have not tested the Windows version because I don't have my PC with me while visiting family for the holiday.

Project Status Update

The following elements of the plan have been mostly accomplished:

The following elements of the plan have mostly not been accomplished:

I also suffered the following setbacks:

My original plan was to publish the very first prototype version of the game before Christmas. However that turned out to be too impractical. The very earliest prototype I could launch might be January 2nd. Furthermore, that would exclude time needed for developing the AI completely. As a consequence, I'll need to consider a new development plan if I expect to finish the game at all.