A classic ASCII platformer revived with a Telnet interface
- Game
- Implement original game logic
- Recover and import original default levels
- Add interface for exploring the default levels
- Add additional info to game HUD
- Telnet
- Implement basic spec
- Create framework for terminal input processing and output rendering
- Support Telnet window size options (RFC 1073)
- Support user persistence (e.g. keeping statistics between sessions)
- Level Pit
- Recover and import original user-submitted levels
- Track level attempt statistics
- Add level attempt playback
- Add level creator
- Internals
- Support single-player and multi-player configurations
- Support Linux builds
- Support macOS builds
- Support Windows builds
- Use SQLite as a data store
ssb
requires CMake, a C11 compiler, *nix headers, and SQLite (optionally
installed with the included vcpkg manifest).
To build and run unit tests:
cmake .;
make;
ctest --verbose;
ssb
can ran as either a multi-player Telnet server, or as a single-player
terminal game.
Both modes require a database and optionally, a folder of existing levels to
import. The path to the database file can be specified using
-d path/to/db.sqlite
(defaulting to ./ssb.sqlite
otherwise), and the path
to the levels folder can be specified using -l path/to/levels/
(defaulting
to ./levels/
).
ssb
is designed to run as a Telnet server, allowing multiple simultaneous
players and player-submitted level designs.
-
To run the server:
./ssb
-
To connect as a client locally:
telnet 127.0.0.1
Traditionally, Telnet servers are exposed on port 23. Linux, however, prevents non-superuser access to privileged ports, i.e. ports below 1024. You can either:
-
Run
ssb
as root (bad idea):sudo ./ssb
-
Give the
ssb
binary theCAP_NET_BIND_SERVICE
capability (better idea):sudo setcap CAP_NET_BIND_SERVICE=+eip ./ssb
-
Run
ssb
on a higher port:./ssb -p 8080
ssb
can also be ran serverless via standalone mode:
./ssb -s
"Super Serif Brothers" was a web platformer created by Robin Allen in the early days of the internet. This is a faithful recreation that takes the ASCII game one step further and brings it into the terminal.
The original game included fourteen 80x25 character levels, plus a "level pit"
where netizens could share their own level designs -- some wonderful works of
art that pushed the format to its limits, among other levels that serve as more
of "digital graffiti." Unfortunately a good chunk of these player-submitted
levels have been lost to time. Those that could be recovered are included,
along with the original fourteen levels, in the levels
directory.
ssb
is released under the MIT License. See LICENSE
for more information.