Hi,
I’m trying to run my own gameserver over SSH and I can’t find good resources on the topic, so I figured I would ask the one community I know about that does it well.
Can anyone describe how CDO serves games over SSH? The list of things I know I don’t understand is as follows:
-
How does the user authenticate with the server? Do they only need to provide their public key?
-
How does data get served back to the user in curses alternate-screen mode? Do you just force the user’s connection to run an instance of crawl, and ssh handles the rest?
-
How are multiple simultaneous connections handled? I’ve gotten as far as understanding I need to have my Docker container connected to the outside world on a port != 22, but if multiple users need to connect, can they all do that over the same port, or is there another step involved?
Apologies if this doesn’t really fit the subforum, I’m just at my wits’ end with trying to get information on how to do this properly.
1 Thank
dgamelaunch manages accounts and allows users to play games through ssh. See also https://github.com/crawl/dgamelaunch-config
Related: Checkout the README here https://github.com/crawl/crawl/tree/master/crawl-ref/source/webserver to get a webtiles server running.
I’ve only run the webtiles server for testing purposes so that’s all I know about it.
We run an ssh server on crawl.montres.org.uk so I hope I can help.
The user typically has a private key which is not so private; you’ll find it on How to play Online « Dungeon Crawl Stone Soup. Normally this would not be best practice, but it serves here just to shut down random probes; anyone with the private key can get to the dgamelaunch menu and then log in with their username and password.
I’m afraid I don’t know what you mean by “curses alternate-screen mode”. Can you say where you read the expression?
We don’t have a Docker container (and we do connect to the outside world on port 22), but that said, multiple simultaneous connections do just work; the ssh daemon forks a new instance of itself for each new connection, as normal. (That said, I wonder why you have a Docker container…)
We used Setting Up dgamelaunch and WebTiles [DCSS - Code and Docs Wiki] which for all it says it is obsolete appears basically correct to me.
1 Thank