Next revision | Previous revision |
howto:game_server [2023/03/16 12:04] – created digital man | howto:game_server [2023/03/17 12:55] (current) – more stuffs digital man |
---|
====== Use Synchronet as a Door Game Server ====== | ====== Use Synchronet as a Door Game Server ====== |
| |
| 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: | Synchronet makes an excellent door game server: |
* The Synchronet Virtual FOSSIL/UART driver enables the fast and reliable running of the vast majority of legacy (16-bit DOS) BBS door games | * The Synchronet Virtual FOSSIL/UART driver enables the fast and reliable running of the vast majority of legacy (16-bit DOS) BBS door games on Windows |
* The RLogin protocol allows for automatic user identification and authentication | * The RLogin protocol allows for automatic user identification and authentication (no entering of user-ids or passwords) |
* Seamless new game server user record creation is supported through simple configuration and customization changes | * Seamless new //user creation// is supported through simple configuration changes and customization |
| * The stock [[module:logon|Synchronet logon module]] supports automatic invocation of a specified external program (door) or direction to a menu of external programs (door games) |
| |
This guide will help a sysop that wants to use their Synchronet BBS as a door game server. | This guide will help a sysop that wants to use their Synchronet BBS as a door game server. |
| |
| ===== Setup ===== |
| |
Follow these steps for initial setup: | Follow these steps for initial setup: |
| |
- [[howto:door:|Install and test your door games]] via normal (e.g. Telnet or SSH) user login first. | - [[howto:door:|Install and test your door games]] via normal (e.g. Telnet or SSH) user login first. |
- Confirm RLogin support is enabled and working for accessing your Synchronet Terminal Server (e.g. test from remote RLogin clients or [[http://vert.synchro.net/scanmyports.ssjs|TCP port scanners]]). | - Confirm RLogin support is enabled and working for accessing your Synchronet Terminal Server (i.e. from a local RLogin client, e.g. [[http://syncterm.net|SyncTERM]]) |
- Set ''rlogin_xtrn_menu=true'' and/or ''rlogin_auto_xtrn=true'' in the ''[[module:logon|[logon]]]'' section of your ''[[dir:ctrl]]/[[config:modopts.ini]]'' file. | - If remote RLogin support is desired, insure RLogin access from the Internet (e.g. test from remote RLogin client or [[http://vert.synchro.net/scanmyports.ssjs|TCP port scanners]]). |
| - Set **''rlogin_xtrn_menu=true''** and/or **''rlogin_auto_xtrn=true''** in the ''[[module:logon|[logon]]]'' section of your ''[[dir:ctrl]]/[[config: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'' is enabled), 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>''). | 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 system 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 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 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. |
| |
===== New users ===== | ===== New users ===== |
| |
It's a good idea to test this flow and disable any undesired prompts or questions that a new game server user might encounter. | It's a good idea to test this flow and disable any undesired prompts or questions that a new game server user might encounter. |
| |
| ===== Gating ===== |
| |
| 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 [[module:rlogin|RLogin Gateway Module]] invoked via one or more online external programs (configured in [[util: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. |
| |
===== See Also ===== | ===== See Also ===== |
* [[:howto:|howto index]] | * [[:howto:|howto index]] |
| * [[:server:terminal|Synchronet Terminal Server]] |
| * [[:module:rlogin|Synchronet RLogin Gateway Module]] |
| |
{{tag>door game rlogin server}} | {{tag>door game rlogin server}} |
| |