Skip to content
A novel text input method for use with game controllers.
C++ Ruby C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Resources
README.md
UNLICENSE
brain.cpp
brain.hpp
build_release.rb
build_resources.rb
config.cpp
config.hpp
context.cpp
context.hpp
controller.cpp
controller.hpp
dBoard.cpp
dBoard.sln
dBoard.vcproj
damageable.cpp
damageable.hpp
debug.cpp
debug.hpp
dist.cpp
dist.hpp
engine.cpp
engine.hpp
entity.cpp
entity.hpp
entity_manager.cpp
entity_manager.hpp
game.cpp
game.hpp
kranzky.rc
menu_item.cpp
menu_item.hpp
mouse.cpp
mouse.hpp
node.cpp
node.hpp
readme.txt
resource.h
splash.cpp
splash.hpp
trie.cpp
trie.hpp
viewport.cpp
viewport.hpp

README.md

d-board

The d-board is an innovative text input system for games consoles. The name d-board is suggestive of both "d-pad", the four-way button commonly found on game controllers, and "keyboard".

Rather than presenting the user with a metaphorical interface (such as an on-screen keyboard or a cell phone keypad), the d-board has been developed from first principles to provide a painless, usable method of entering text on a games console with a games controller.

The d-board has many unique features, and is built on top of an adaptive predictive text technology. The novel aspects of the d-board include:

1. The cursor *is* the interface. Rather than having their attention drawn
   to two different areas of the display (the interface used to enter the
   text, and the text being entered itself), the user need only look at
   where the next character is to be inserted, as all controls are overlaid
   on the cursor.

2. The d-board constantly predicts what the user is going to enter next,
   and displays this prediction. Predictions can span word sequences,
   unlike other predictive text technologies, meaning that the d-board can
   make grammatically correct predictions, and predict common word
   sequences (such as United States, for example).

3. The predictive component of the d-board is constantly learning, adapting
   to the user on-the-fly, allowing it to shape itself to the words unique
   to the user, without the user having to manually enter words into a
   dictionary.

Entering text may be achieved as follows:

1. Move up and down, using either the cursor keys on your keyboard or the
   d-pad of a plugged-in controller, to select the character you want.

2. Hold down the shoulder buttons of the controller, or the shift and
   control keys, to toggle the set of characters.

3. Move right to enter the currently selected character, or move left
   to delete the previously entered character.

4. Hit enter, or one of the controller buttons, to start a new line.

Note that the character list consists of a small number of characters predicted by the d-board (in yellow), followed by a larger number of characters in a familiar order. This makes the predicted characters easier to select, but still allows any character to be selected.

As the user enters text, the d-board is constantly learning and refining its predictions. This means that the first time the user enters a word that the d-board has never encountered before, the user may need to expend more effort to select the requisite characters. However, repeated usage of the word will render it easier to enter. The d-board is therefore a text compression system which aims to minimise user effort to input the text.

To aid the user, the d-board displays a sequence of characters to the right of the cursor which it predicts that the user is likely to want to enter next. Therefore, even though the user must enter a character at a time, entering the first few characters of a word may be sufficient to reveal the remainder of the word, after which the user need only move the d-pad to the right to accept the characters that the d-board has predicted that they intend to enter.

This version of the d-board is merely a rough-and-ready prototype. We intend to develop it further, if given the opportunity, in the following areas:

* Enhance the predictor to give more accurate results.

* Allow a memory budget to be placed on the predictor. Our tests suggest
   that a memory cap of 100k is achievable. Doing this may make it feasible
   to store a separate profile per-user.

* Add infinite undo and redo capabilities.

* Allow the d-board interface to be hidden, after which the cursor may be
  moved around the entered text without modifying it. Add capabilities to
  insert, delete and modify existing text on the page.

* Investigate supporting other languages.
You can’t perform that action at this time.