Jump to content

victorcrimea

Community Newbie
  • Posts

    4
  • Joined

  • Last visited

Everything posted by victorcrimea

  1. When you normally host a game, server is created under the hood with random controller secret. Then you connect (locally though) to your server and by prenting that secret you are identified as controller, so you can change match settings and start the game, kick and ban players. As of the rest of the questions: even though I called it dedicated server, it nothing more than "just server". I do not host it for public use. I expect others (and wildfiregames eventually) to use it to host their own games. As of logs, it doesn't store anything but of course it has lots of debug prints. But in general, it doesn't "know" more about you than any other Game howt in the lobby when they host normally. DDOS protection is not implemented. But it is possible to write integration with fail2ban, so that offenders(incorrect auth, impersonation, too much packets per minute) canbe banned on iptables level. I never knew that langames have any rules regarding mods compatibility. But if you host in lobby it shows mods of the controller as usual. Draw in stale somewhat harder to implement without server-side simulation. Draw in laggy game is very much possible, since it is easily observable from ping times. Could you please explain how is it a violation of the ToS hosting a single game from single(own) account? It is no different than hosting a game normally. Just server is topologically decoupled from the client.
  2. Hey everyone, I've been working on a dedicated server for 0 A.D. and it's reached a point where I'd love to get some community feedback on it. The idea came from two problems that have bugged me (and probably many of you) for a while: players who can't host games and players rage-quitting rated games. What it does (implemented and working): Game hosting - players connect to the dedicated server instead of directly to each other. No more NAT headaches. If you have ipv4, you can play. Lobby integration - the server connects to the lobby and games appear in the game list like any regular hosted game. Player rejoin - If you disconnect (crash, or intentionally), you can rejoin the game in progress. The server keeps the session alive. Rejoining with AI still not supported. Automatic controller assignment - the first player to connect becomes the game controller. Unlimited observers - no cap on how many people can watch a game in progress. Server-authoritative pause - In rated games, the server controls pause functionality rather than leaving it up to players. No more abuse of the pause button to stall or tilt your opponent. Every player has a total budget of 3 minutes. It used both for pause time and disconnected time. Rage-quit detection. When a player disconnects from a rated game without resigning, the server posts a public message in the lobby chat. It won't stop anyone from quitting, but at least there's a visible record. I hope this can be integrated with existing lobby bots. Auto-restart - when last client disconnects, server is pruned and started again from scratch. The server supports following operating modes depending on how you want to integrate with the lobby: - no lobby, for direct IP connection. - single lobby account - use your own credentials to host advertise the game in the lobby. The problem is that you won't see your own game. TBD - multiple lobby account - server can use a pool of lobby accounts. In this case it can host as many games as number of accounts provided. At the moment this is against TOS, to use multiple user accounts. so this mode is a proof of concept only. Technical details for the curious The server is written in Rust. It's a network-only relay, it coordinates packet forwarding between clients but doesn't run the game simulation itself. The actual gameplay still uses pyrogenesis's existing lockstep networking model. the server just sits in the middle instead of one player acting as host. Code is here: https://gitea.wildfiregames.com/victorcrimea/0ad/src/branch/feature/dedicated-server/server What I'm looking for: I'd love to hear from real players what features are especially valuable to you? Would you use this? Any concerns about the approach, reliability, trust, anything really.
  3. This https://gitea.wildfiregames.com/0ad/0ad/pulls/8758 Dedicated server partially solves this problem. When player leaves rated game without previously sending resign -> it is detected and reported. Can be automated to the rating bot. I also think that some grace period needed: players may connect and realize that their networking conditions are not allowing a good gameplay and disconnect or basically drop the connection. Maybe in first 2 minutes this is ok to tolerate.
  4. While I'm against "wild west" in competitive gaming (in extremes it will become a challenge of automation tools). I completely agree with the incentive to make game fair by-design. 1. In order to make game fair and truly transparent it is essential to play competitive matches without fog of war. I understand it is not THAT fun, but at least it eliminates a possible map reveal hack. 2. I do not agree with the quote above that sharing only relevant state is not possible and here is where I come from: I can easily play 0ad game via Parsec(remote desktop application). So my host computer simulates and renders 0ad, captures frames and sends me only video stream which is limited to 10 mbit/s. Total video stream lag is 20ms (encode 7ms, network(LAN) 13ms, decode 10ms) and game is very much playable. Which is an extreme edge case showing that sending only relevant information is possible. So let's derive a useful solution from that: if two players Alice and Bob want to play a very important competitive match I could host a game for them on my computer. Running two vanilla instances of 0ad, and give them access via remote desktop(be it parsec or whatever else). Thus they won't be able to reveal what's under fog of war in any way and their computers will never access the full simstate. This last example shows that it is ultimately possible to do that. I assume that video stream(knowing nothing about it's content) is way less optimized that the game could be. I also totally understand that my network is low latency and supporting less reliable connections is harder, but again if you look at a video stream it gets jelly and pixelated when network has hiccups, it doesn't make game OOS. @bb_ what do you think about this?
×
×
  • Create New...