Space Walk comes with a few tools that you can find in the appropriately named /tools/
folder in the repository. It is a collection of tools, that might be of use during development or testing.
The bridge offers a simple translation service between WebSockets and TCP sockets. WebSockets is a fairly recent standard, and support in libraries or even programming languages is not that wide spread yet. WebSockets by its nature are more complex than TCP sockets and it might just be easier to use TCP sockets in the target application.
On one end the bridge acts as WebSocket server that itself connects to the TCP server in the target application. TCP messages are \n
terminated and use the same space walk protocol. They are just simply handed over in the bridge without modification.
To use the bridge you need a working node.js installation. The bridge takes the following command line parameters:
Usage: bridge.js [options]
Options:
-h, --help output usage information
-V, --version output the version number
-v, --verbose verbose output
-h, --host [host] IP address of the TCP host/server
-p, --port [port] TCP port number of the host/server
The input logger allows you to analyse different games without access to their source code. Just run the input logger in parallel with your own project or the game you want to analyse. Since it is using TCP you also have to run the bridge.
The input logger is a small tool that just reads in gamepad input and then makes it available over the network. In the tools folder you will find 3 sample implementations of the tool: One using Unity3D (which only works if the window has focus) and two based on C++ using SDL2 or glfw.
Under the following links you can find prebuilt packages. They all have the same features, but might look a bit different. Choose the version that works best for you. To run the OSX version you might need to install some dependencies (Xcode, sdl2). Let me know if you are running into any problem and I will try to help solve them. Reach out to me via email or twitter
If you happen to be on Linux, just build the input logger yourself. It uses CMake as a build system and requires a recent C++11 compliant compiler chain.
The protocol test server was written to have a convenient data source during plugin development, and also to provide a reference implementation of the protocol. It is recommended to use it during development of core
and ext
plugins and it is also handy to extend the protocol test server with custom protocol features for new plugins.
The test server uses node.js and offers the following options:
Usage: test-server.js [options]
Options:
-h, --help output usage information
-V, --version output the version number
-v, --verbose verbose output
-u, --generate-user-input generating user input data
-l, --generate-location-data generating location data
-s, --generate-scalar-data generating scalar data
-t, --generate-time-series-data generating time series data
-L, --generate-log-data generating log data
-p, --port [port number] the port number to be used
-i, --interval [interval in ms] the send interval in ms
Space Walk was built for real time analysis, but that does not mean, that you can not record the data for later analysis. The recorder simply writes the data to JSON files.
The recorder also uses node.js and offers the following functionality:
Usage: recorder.js [options]
Options:
-h, --help output usage information
-V, --version output the version number
-v, --verbose verbose output
-d, --dry-run dry run, i.e. don't write to disk
-o, --output-folder [folder] output folder path
-t, --timeout [seconds] session timeout in seconds
Files are streamed to disk during recording, and the file is finished and closed once the timeout is reached without new data arriving. This way multiple sessions can be recorded without having to restart the tool.