I legit spent 5 days researching what open source games you can run a server for. Like games anyone can play for free and host for free plus server costs. 5 days trying 4 different game servers and probably a 1000 commands typed in Ubuntu, I got one running. If you want to play Transid Quest aka Kaetram goto to quest.transid.org. I didn’t program this link to open source project. https://github.com/Kaetram/Kaetram-Open. The game could theoretically supports hundreds of players on a few GB of ram. The project was designed to only load the part of the map where players are. The world is huge. This one wasn’t too hard to get running. I’ll give an overview. Install Ubuntu on a server, Install node 16 18 or 19. The hard part is getting an old version 20 is the lastest one. clone the code from the git repo. then you edit the .env file. Be sure to skip the database in the env for testing. (Test by running the commands on the github page once the env file is set up besides that database) And Then you are going to want to install docker, to automagically down load a database, set up a matching username and password for both the .env file and the the data base. Mount the storage in docker to the host machine. With a database inside docker container it is like it simulates another computer, you what to get the data out to the main computer. I know I listed many steps but it wasn’t too hard. Like I said I tried to get 4 games server working. And this was the one where almost everything I wanted to work worked. Except ssl :(. I was exhausted after 5 days and skipped that step (encryption). What this means is if you were on a shared Starbucks or Hotel wifi someone could listen to the wifi signal and steal the password… to the game. I made sure the transid wiki passwords are encrypted. I just thought security for a password to a game was less important. And I was totttaly exhausted from working on game servers for 5 days. If I ever do this again (another game server) I’ll do a pretty vanilla Minecraft server. That should be much quicker.

But what great about this game Transid Quest (rad queer’s welcome) is it’s free on PC and mobile. You can fight monsters, or gather material, or craft. And also you can explore and do quests. The world is huge but to explore all of it you have to battle and get stronger. again it’s at quest.transid.org if you want to give to a try you don’t even need to make an account or download anything.

  • Tal🌸
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    you can check if it works through a reverse proxy such as Caddy, it should handle TLS/SSL on its own

    • YukiOPM
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      I’ll take a look a caddy. In the server settings I could specify tls on of off, but not port. I found a weird command that wasn’t in the game server documentation to start the game with the forced port 80 “npm run dev – --port 80” instead of the normal “yarn start --host” that starts it on port 9000 but that same command did not work on 443 with tls enabled in the settings. It always went to a back up port. However, the game server by default works web serverless (no apache2 or nginx). So I realized that I had not defined where the key files were anywhere. I tried adding an Apache 2 server to try and define the locations in a config, but couldn’t get the right. I’ve only been doing server stuff for a year. The other projects were more plug and play on this part.

      Tal you seem knowledgeable. Feel free to post able you own projects in this community. I bet you have done some interesting ones.

      • Tal🌸
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        run it on port 9000 with TLS disabled in the configuration, it should be handled by the reverse proxy (like said Caddy)

        while nginx or apache are more verbose caddy is easier to use and you can just expose the application via this in your Caddyfile:

        quest.transid.org {
            reverse_proxy http://localhost:9000
        }
        
        • Tal🌸
          link
          fedilink
          English
          arrow-up
          3
          ·
          1 year ago

          also configure kaetram to listen on IP 127.0.0.1, so no one can connect to the server through 9000 port from outside