Ever since I decided to work on this project again about 2 weeks ago (Memzi.net) I have reconfigured my virtual environment (both on-prem and remote) about a dozen times. These were not small reconfigurations either, they were factory resets, migrations, breaking things unintentionally, but this all played out rather well. While I am sure some improvements could be made, this seems to be the best case scenario considering my current knowledge, budget, and short term plans. I will be giving a brief overview of the setup, but for now let’s focus on…
Rust
When I think of my top 5 favorite games, Rust without a doubt is on that list somewhere. I have poured about 1400 hours across my 11 years of owning the game, and have watched this game turn from a laughable DayZ clone into a high-stakes, adrenaline rushing experience. I feel like this game was the best candidate for my first “official” public server. Many would suggest easier to maintain games such as Minecraft, but I think this would limit the potential of what it has to offer as there is no in-game server browser. I feel like that would be my greatest tool when trying to gain players on a budget, and fortunately I think this could work out well. While having a higher latency is usually the end-all for gamers when choosing a server, I think the ping is…manageable.
Not the ideal case for server hosting, but it is what it is. I take pride in being able to configure everything myself for smaller costs, and because of my efforts my annual costs are still cheaper than most monthly costs when going the usual route of renting a game. And not for nothing, while network connection will be the biggest issue, resources will be the least of my concerns which allows for consistency. The player limit is capped far lower than what it can handle, but I think this is for the best for the player experience I’m going for.
The Backend
I can hear it already…“why are you discussing your backend on a public page?!?”
Should something go wrong, I’ll surely be asking myself that same question, but with how much I’ve implemented as far as security goes…I’m confident there will be no issue. I actually think the protocols I’ve implemented far outpace a traditional rentable server, and the memzi.net environment is completely isolated from anything I care about anyway. So…let’s get into the nitty gritty.
Where is the server located?
Both of the servers are located in Ashburn, Virginia and New York City.
Two servers? I thought you were hosting one Rust server?
I am using two Linux boxes, one that functions as the Rust server which is not publicly exposed, and one that functions as a reverse proxy. This allows for me to be able to provide connection information without needing a subdomain (ex: play.memzi.net). So, you can use connect memzi.net in the Rust console to reach the game server. Aside from this, reverse proxies are generally more secure as far as routing things to the open internet go. Should the server get DDoS’d I can turn off the proxy to make sure the server itself doesn’t crash and change the IP of the proxy, and it also prevents bad guys from seeing the real public IP of what is important, the Rust server. This however does lead to a few complications.
Latency
Yes, as you’d expect connecting to an IP in Ashburn that points back to a New York datacenter will result in increased latency for the end user. However, in my testing it is not as severe as you would expect, and in a game like Rust where the net code is pretty good, I don’t think most people will notice much more of a difference, and given Ashburn’s geographic location, I think South/West coast players will have a similar experience to those on the east coast. If you’re in New York, think of it as though you’re connecting to a West Coast hosted server.
I do have plans to purchase a VPS in the same datacenter as the server itself, which would result in no difference in ping (especially if routed locally), but my budget doesn’t exactly account for that right now. The New York option only offered higher-end units, and when reverse proxy software on average uses between 50-200Mb of RAM, I’d experience severe diminishing returns. However, if enough people decide to buy me a coffee *wink wink* it would be a no brainer to invest in a proxy closer to the host.
Launch Date/Times
It’s quite the coincidence that Thursday lands on the 1st of May right after I overhauled my entire infrastructure, and as such I plan to have this server launch officially on Thursday, 5/1. If enough people play this month (realistically if ONE person plays, I’d be happy enough) I will keep the same server up in June. If not, it will be spun down (not deleted!) so that another, hopefully fruitful, game can take its place.
I am working towards task scheduling where the server will automatically wipe and restart upon the first update of the month, and I do not think this will be difficult to do. In either case, you can expect to be able to connect to this instance on 5/1 shortly after the monthly update drops.
Final Remarks
I will be making a shorter post on the day of go-live providing connection information and game settings. In the meantime, you can join my discord and ask any questions you may have there!
-Memzi