View Poll Results: Would you find a remote server function useful?

Voters
7. You may not vote on this poll
  • Great idea!

    6 85.71%
  • Not really

    1 14.29%
Results 1 to 7 of 7

Thread: Headless/Remote Server Application

  1. #1

    Headless/Remote Server Application

    I think a huge quality of life improvement would be to have server software that can be hosted in a proper hosting facility.

    Eg. A person could procure a Windows (or Linux, preferrably) server/VPS/etc from a host that allows gaming servers, and run a Tabletop Simulator instance on it, controlling it remotely.

    This would allow people with sub-par home internet connections (the majority of Australians for example) to host games that can handle more than 1 or 2 players and likely also negate a lot of NAT issues since most servers come with a public IP.

    Additional features -
    - Persistent permissions system (eg, allow multiple admins based on steamID) to allow other users to utilise the server when the main host isn't online/around.
    - Scheduling system (to support the above, possible just an API call for people to hook into with other scripts to control)

  2. #2
    Hey a5tp Welcome to the community

    I'll admit this side of things is a little lost on me.

    Is this type of setup expensive to instigate and run ?

  3. #3
    Quote Originally Posted by Lucky seven View Post
    Hey a5tp Welcome to the community

    I'll admit this side of things is a little lost on me.

    Is this type of setup expensive to instigate and run ?
    It really depends how intensive the server software is on CPU and RAM. You could make an estimate by looking at what a player server with 8-10 players is using, then subtract what could be attributed to the graphical engine as this wouldn't be outputting anything on a co-located or virtualised server.

    Virtual private servers with 1gb RAM/1 CPU core can start as low as $5/month, while actual dedicated physical servers can run anywhere from $50 to $500+/month depending on specs.

    Some of us however might have access to datacentres/virtual machines anyway that could host such servers.

    Certainly many many other multiplayer games are remotely hosted in one form of another. An easy example to match up to TTS would be Minecraft, which simply requires any platform that can run Java to run a server. Most FPS games are remotely hosted as well, as latency is import.

    Edit: putting my business hat on, if the Devs could work out how to do this they may find a revenue stream in providing scheduled server hosting in various geographic regions - a bit like the proxies they run already. A group of Australians might be quite happy to pay a few dollars an hour to rent time on a local server to run a regular game of something with low latency/no bandwidth issues. Etc.

  4. #4
    I'll second this suggestion, but with some practical advice on how to achieve it in the actual code:

    1) Need a 'host password' feature, so that you can become get 'host player' abilities (such as access to the chest and so on) - not to be confused with being the actual server host - that obviously can't change
    2) Provide a couple of command line options so that the game can immediately skip startup, loading and menu screens and directly host a game.
    3) Need to be able to provide a command line option to not start or do any UI related thing - ie. Don't create a window for the game, don't do any graphical things (like camera, world rendering, etc)
    4) Some logging to stdout simply stating events in the game, 'server ready', 'player joined', 'player left', etc.
    5) optional: command line option to load a game automatically - this is optional, since the person who takes over 'host player' can set this up manually, after the fact.

    Once these things are done, it will be possible to fire off a long-running headless server that can run in the background and shouldn't eat up as much resources

    The next steps would be to optimise the game code even further for headless server mode, to minimize resources as much as possible, but the above first steps would be a great step since I'd love to host long running games (like a custom 3-board Go table that people can just continually play on, but I won't be able to man it 24/7)

  5. #5
    Quote Originally Posted by CmdrDats View Post
    I'll second this suggestion, but with some practical advice on how to achieve it in the actual code:

    1) Need a 'host password' feature, so that you can become get 'host player' abilities (such as access to the chest and so on) - not to be confused with being the actual server host - that obviously can't change
    2) Provide a couple of command line options so that the game can immediately skip startup, loading and menu screens and directly host a game.
    3) Need to be able to provide a command line option to not start or do any UI related thing - ie. Don't create a window for the game, don't do any graphical things (like camera, world rendering, etc)
    4) Some logging to stdout simply stating events in the game, 'server ready', 'player joined', 'player left', etc.
    5) optional: command line option to load a game automatically - this is optional, since the person who takes over 'host player' can set this up manually, after the fact.

    Once these things are done, it will be possible to fire off a long-running headless server that can run in the background and shouldn't eat up as much resources

    The next steps would be to optimise the game code even further for headless server mode, to minimize resources as much as possible, but the above first steps would be a great step since I'd love to host long running games (like a custom 3-board Go table that people can just continually play on, but I won't be able to man it 24/7)
    Fantastic, a great list of features!

    For what it's worth, I fired up a small Windows Server VPS via Vultr to see if it would run at all, and it does.

    It slams the CPU the whole time it's running, mostly I'm guessing due to having to do software rendering of the graphical output. I setup a second steam account with the game to act as a 'server' and I found performance as a client to be ok, but I suspect the CPU load was causing some additional latency despite actual latency to the server being sub-10ms over the internet (both located in the same city).

    This isn't a great solution really, headless would make it a lot better but the main area it falls down is not being able to delegate complete admin powers to another user (persistently or otherwise). I had to keep changing back to the RDP client to access the server to perform various tasks which was a pain (although the game itself ran fine and was easy enough to interact with, framerate would have been around 15-20FPS I think).

    So my conclusion is it's not impossible to run a server on a remote server currently, but the features listed so far would make this a much more viable option if implemented.

  6. #6
    Bumpity bump

  7. #7
    Quote Originally Posted by CmdrDats View Post
    I'll second this suggestion, but with some practical advice on how to achieve it in the actual code:

    1) Need a 'host password' feature, so that you can become get 'host player' abilities (such as access to the chest and so on) - not to be confused with being the actual server host - that obviously can't change
    2) Provide a couple of command line options so that the game can immediately skip startup, loading and menu screens and directly host a game.
    3) Need to be able to provide a command line option to not start or do any UI related thing - ie. Don't create a window for the game, don't do any graphical things (like camera, world rendering, etc)
    4) Some logging to stdout simply stating events in the game, 'server ready', 'player joined', 'player left', etc.
    5) optional: command line option to load a game automatically - this is optional, since the person who takes over 'host player' can set this up manually, after the fact.

    Once these things are done, it will be possible to fire off a long-running headless server that can run in the background and shouldn't eat up as much resources

    The next steps would be to optimise the game code even further for headless server mode, to minimize resources as much as possible, but the above first steps would be a great step since I'd love to host long running games (like a custom 3-board Go table that people can just continually play on, but I won't be able to man it 24/7)
    i would love to see this as a feature too

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •