Donnerstag, 11. Oktober 2018

The SSH Game

After reading William Gibsons Neuromancer as well as Michael W Lucas' SSH Mastery we got an idea for a virtual reality game. But since we lack the time (and possibly the skills) to actually make the game we decided to write something like a games design document instead and blog about it.

Overview

The ssh game is somewhat similar to virtual dekstop. You are located in either a room or open space that represents the machine you are logged in. Depending on the machine settings you can do what ever you want on the machine, there may even be a desktop if X forwarding is active. The game itself is a fun client to ssh that lets you connect to other machines and enter their "rooms".

Events

The events of the game are either interacting with the machine you're logged into (running software, interact with OS, create files etc.) or interacting with the games ssh client. That means defining ip addresses or machine names that you want to connect to, using ssh keys and connecting to machines. 

Objects

  • The game contains a field where you enter ip addresses of machines you want to log into.
  • A display that lets you know on what machine you're currently logged in. 
  • And a display/shell (or desktop) to interact with the machine you're logged in. 
  • Public and private ssh keys, that can be put into a key whole. Here is an example of how a private key can look like:


Actions

The main action of the game is logging into machines. First you enter the ip address of the machine, then you start connecting by putting your ssh key in the key whole. The connection process is visualized as a tunnel that you're flying through. If the connection was successful you enter the new room. Unsuccessful connections will lead you back into the old room. Here is an example of how the ssh connection process can look like:


Configuration 

You can configure the ssh client part as you would configure other ssh clients e.g. if you want to use x forwarding. As well as the ssh server part for users that may connect to your machine. It could also be fun to add a way to customize the virtual room players will enter when logging into your machine. 

Controls

You can look around using the VR headset. Everything that needs to be entered is done using a keyboard. (Maybe it makes sense to have a virtual keyboard in the game since the player can't see his real keyboard as long as he's in the game.) The ssh keys are wielded with either a mouse or a VR glove if available. 

Soft and hardware

We think the VR portion of the game can be implemented using the unity engine. 
One of the most difficult aspects of the game is to interact with ssh. We either need an interface to something like the OpenSSH client or we need our own ssh client implementation in unity. Both sound hard =D
The game can work with headsets from either oculus or vive. We don't think mobile devices like Google's cardboard are feasible though. 

Finally we want to mention this tutorial, that taught us how to create that tunnel animation.

Keine Kommentare:

Kommentar veröffentlichen