What is a server?


Look I do send a monthly bit of cash to downlord to help. Its not much but its what I can send on my humble musician lifestyle.

As for research it doesn't take much more than above brain-dead levels to know that peer to peer is over 15 years outdated. If I can play cs go with russians and have some lag than the I should be able to play FAF with mostly east of atlantic lobbies and have it be playable. These guys literally just point fingers at me and say "spy lags, fix it" and I have 550 mbps down and 500 mbps up with 12 ping to node. My internet could not possibly be more blingy. Streaming is not taking even 10% of that data rate.

The issue is one p2p branch is getting throttled by some node somewhere and the game doesn't re-route around that intermittency so then the slowest person by range to those players goes behind. Many times the player who is getting blamed is the one getting delay on this once removed. And since USA has largely all gotten bug eyes at cyberpunk 2017 and is going "wut do elo score?" I'm literally alone here. USA is a big country (and our neighbors north and south) so something scared them all away and this is it. Getting blamed for some shitty netcode.

Just buy some server space in France and build in an add portal on the lobby screen and FAF client. Should even out.

  1. You can't compare FPS with RTS. If you want a cheat free environment in a client-server model you need a central server to run the simulation. The simulation is what happens on every pc right now. And you probably know it's very cpu intensive. So basically you would need a whole server (1 machine) to simulate 1 FA game. In the morning you need like 50 of them, in the evening like 200 of them. 1 of them costs like 30-40€ a month. Peer to peer is not over 15 years outdated. Peer to peer is the choice to work around one particular problem (in exchange for other problems).

  2. Just because we know of the problem doesn't mean we are capable of fixing it.
    a) We don't have the SC:FA source code
    b) None of our developers have any professional experience in game development overall
    c) Almost none of the developers are experienced in C++
    d) Almost none of our developers are experience in networking stuff
    You can throw money at us, it won't change anything. When I say "experience" I'm talking about years of professional experience, where you already built stuff like that and shipped it to real customers. It's more than just reading a book.

  3. With regard to giving money to devs. Take Downlord as an example (even though he reduced his FAF engagement to like 1% of what he did earlier). He lives in Switzerland where life is fucking expensive and educated guess tells me he earns the equivalent of roundabout 150.000$ per year (pre taxes etc.). Thats 12.500$ a month. So if you want to have Downlord working a full work day per week you'd need to collect 2500$ per month.
    One dev, one day per week (that's just 8 hours) - 2500$. Of course there are cases where it's cheaper. But even if you find someone who can do it for 500$ per month, that is still 8 hours per week. But fun fact: Many of us already work much more than 8 hours a week for free. If you start paying for us, we probably reduce the "free" invested time. So overall you pay a lot of money, but you don't get much in return.

So giving money to us is a very nice sign of appreciation, thanks for that. But in doesn't really change the "total dev time available".

If playing FAF from the US is so horrible (I really can't tell) the only solution once again (we have the same topic with the Australian people) is to run your own FAF instance in the US. The software is free and available on Github, the people are willing to share the knowledge. But at least I'm not willing to maintain a second instance of FAF.


So obviously you said a lot of dumb shit, but I was kinda surprised to hear "central game clock", because this is possible with the deterministic p2p networking model.

You'd have a proxy server that all clients connect to. This proxy server would run an authoritative game clock. On each clock cycle the server distributes accumulated player commands to all clients. You'd also want to do some shenanigans with dynamically adjusting the server clock to the fastest client (client whose messages arrive first and with commands that were given during correct step)

Clients are now no longer limited by each other's clock speeds, however if your simulation runs slow you experience it instead as massive latency (if you are 1 minute behind the simulation, it'd play like having 1 minute ping and every second u lag it gets worse). Obviously this isn't a very practical solution since supcom games are regularly slowed down by performance issues. In practice you'd probably implement some pauses every now and then to let players catch up. It would be annoying as hell, but at least eliminate stuttering 😄 it would also completely eliminate stuttering due to high ping like your situation

Keep in mind that this also requires a command buffer clientside that may or may not exist in current supcom implementation (possibly making it hard to impossible to implement without source). Other possible considerations are maybe having to change the structure of a packet so that server can concat a step number + related changes in the client.

So yea not very practical for supcom, but fun to think about!


The players from USA cannot play with people from Europe currently because of this game's fossil level P2p netcode. Nothing about the data rate of this game is preventing it from functioning correctly, its 100% over-strict p2p coding that could have easily been resolved by now.

This paragraph is really funny. You sure have a lot of confidence in your opinions despite not understanding how the netcode works or what the alternatives are. The entire reason the data rate is small is the networking model, were we running an authoritative server model you'd be looking at closer to 1 mb/s rather than a few kilobytes because you'd have to transfer game state (unit and projectile positions velocities etc.) rather than just the player inputs.

Disclaimer: numbers for illustrative purposes only


Also need to add here that USA based players should have no issues to europe. Regular latency should be 80-140ms which is completely fine for supcom and doesn't introduce any stuttering. The problem is somewhere else.


try to enable "force relay connection" in client settings


@Blodir One Minute is a ridiculously long example as I'm sure you know. There is some wiggle room that should be allowed for connections that seem to have random intermittency but does not stat disconnected for long enough periods to get them out of sync with the overall model checks.

Also I do have tons of empirical experience with the game play and when it lags, and how this looks on the F11 screen. You can see who is behind, and you can also tell from this and enough experience that people who do not have connection issues often register as the problem due to a reflection of the the initial problem complicated by high.er ping.

My question is why does not the connections with intermittency problems re-route to another node? and also all of these problems get solved by a server so even a basic attempt at a fund raiser to move partial gameplay over to a test environment to see if it's game-changing would be worth it. If FAF gets eyeballs waiting for games, then that is ad revenue, and after a test period large cost offsets or full cost coverage could be possible.

As for the netcode rework, It should be a piece of cake. Mostly deleting lines cross checking position commands taking at the same time on P2p and replacing them with an almost identical server based central response. The result is small problems no longer slow the game down to 1/2 speed, less disconnection problems overall, hopefully better re-routing of net access, and I don't get blamed for lagging living in the USA playing with mostly euros. Also more sales and return of USA player base would be likely.

Right now one glitchy person on the P2p net, and everyone is getting flashy cursors, slow gameplay, endless RE cycles, and frustration instead of competition.


We all think it's hard. If reworking netcode is a piece of cake for you, then do it. You'll be a FAF hero.


This guy still has not understood what it means to not have the source code. I doubt he has ever written code in a compiled programming language ever.

Im sorry to say that there is probably no random hero dev hiding in the woods that is just waiting to be encouraged by your non-sensical expectations and will spring into action once you say "its so easy" 100 times in a row.


Assembly is fun


Locking this thread. Question has been answered thoroughly by multiple people.

If you want assistance with connection issues feel free to ask in the tech forum.

Log in to reply