A door game server is a TCP server (typically using the RLogin protocol) that provides remote user (player) access to BBS door games, only.
Synchronet makes an excellent door game server:
This guide will help a sysop that wants to use their Synchronet BBS as a door game server.
Follow these steps for initial setup:
rlogin_xtrn_menu=true
and/or rlogin_auto_xtrn=true
in the [logon]
section of your ctrl/modopts.ini
file.
At this point, another BBS or user using an RLogin client or proxy/gateway should be able to connect to your Synchronet BBS, automatically authenticate as an existing BBS user, and either go directly to a door game menu (if rlogin_xtrn_menu
was enabled) or go directly to a specified door game (if rlogin_auto_xtrn
was enabled). The automatic invocation of a client-specified door-game is achieved by specifying the internal code of the door game to execute (in the form “xtrn=<doorcode>”) as the terminal-type string sent as part of the RLogin initial connection negotiation. No other logon screens or typical BBS logon features (e.g. news, bulletins, new messages) will interfere with the user's door game experience. The user will be automatically disconnected when done with either the external program menu (where multiple door games may be run) or when done running the door game specified during login (terminal-type: xtrn=<doorcode>
).
If you wish to only allow RLogin connections to your game server that have initiated from your same computer system (e.g. running another BBS software), then insure that your RLogin server is only bound to a localhost network interface (e.g. 127.0.0.1). If you wish to only allow RLogin connections to your game server that have initiated from (other systems) within your local/private network, then filtering/blocking/not-forwarding the relevant TCP port (e.g. 513) in your Internet gateway/router configuration should achieve that.
If you wish for new RLogin users to have accounts automatically created on the Synchronet BBS/game server:
Test new user creation by connecting to the Synchronet RLogin server with a new/unique username specified in the 2nd string (server-user-name) of the RLogin connection negotiation. If an acceptable user password is specified in the 1st string (client-user-name), it will be automatically used as the user's password.
When an unrecognized user connects via RLogin and a new user record is about to be created, you should see a terminal server log message similar to the following:
!UNKNOWN specified username: 'name', starting new user signup
It's a good idea to test this flow and disable any undesired prompts or questions that a new game server user might encounter.
If the desired RLogin client is actually a user on another BBS system (Synchronet or otherwise), that other BBS system will need to support gating or proxying that BBS user connection (e.g. Telnet, SSH, Raw TCP, WebSocket, etc.) to an RLogin connection to your game server.
If this other system is a Synchronet BBS, then this is typically accomplished using the RLogin Gateway Module invoked via one or more online external programs (configured in SCFG->External Programs->Online Programs (Doors)).
To login to a Synchronet RLogin (e.g. door game) server automatically from another Synchronet system, using the same user alias and password as on the client-side Synchronet BBS, you would set up the online program in the client-side SCFG with a command-line of:
?rlogin <server-address>[:port] -p
Where <server-address>
is the IP address or hostname of the Synchronet game server and [:port]
is the optional TCP port number to connect to (default: 513).
If the Synchronet door game server is configured to send RLogin users directly to the external program menu, then you should see/interact with the game server's external program menu upon successful connection and authentication. Exiting the door game menu will disconnect the user.
To login to a Synchronet door game server and automatically run a specific door game, using the same user alias and password as on the client-side Synchronet BBS, you would set up the online program in client-side SCFG with a command-line of:
?rlogin <server-address>[:port] -p -t xtrn=<door-game-code>
Where <door-game-code>
is the internal code of the door game as configured on the Synchronet game server (in SCFG).
If the Synchronet door game server is configured to accept direct door game connections via RLogin (rlogin_auto_xtrn=true
) and it recognizes the specified external program internal code, the user should be automatically seeing and interacting with the specified door game. Exiting the door game will disconnect the user.