This forum is locked and will eventually go offline. If you have feedback to share you can find us in our Discord channel "MythoLogic Interactive" https://discord.gg/nECKnbT7gk

Forum rules

Client side vs. Server side

Discuss everything to do with Superfighters Deluxe here that doesn't fit in other Superfighters Deluxe Forums!
Forum rules
By using the forum you agree to the following rules.
Locked
User avatar
Splinter
Superfighter
Superfighter
Posts: 314
Joined: Sat Mar 19, 2016 5:03 pm
Title: Grenade chef
Started SFD: 1.1.6
Location: Brazil
Gender:

Client side vs. Server side

Post by Splinter » Fri Jun 10, 2016 11:35 pm

Hey guys, I wanted to make a post about client side movement. First of all, I don't know how much work it would take revert client side movement (and I know how much work and time it took to code it) but in case it is viable, maybe we should discuss about bringing back server side movement.
The two main arguments I have are these:

- Client side movement was made back in 1.7.0, in order to allow the game to be more playable with higher ping. I remember many players complaining about command delay, not knowing that ping is a matter of distance mainly, not just internet connection or a game design problem. But now we have a new feature, a very important one: Dedicated server software. I'm optimistic, and I think more and more players will join this community as the game grows, so hopefully we will always have players hosting. Therefore, we will always have nice servers to play on, with good ping.

- With server side movement, if we had a server with 4 players, 3 of them having green ping, and one having 150 ping, the only player harmed was the guy with high ping. The 3 players would still play normally, and the guy with a worse connection would have to deal with lag. But now with client side movement, if there's one guy with 150 ping, he teleports around during the game, making it hard for everybody (including him) to play and predict his moves.

After over a year with client side movement, players have a better notion of how it works and feels while playing. It's definitely much easier to move around (and rocket ride) with client side, but there are some disadvantages. With server side, we knew what was going on, we pressed a key and there was a delay, then you knew you were lagging, but every player in the server knew exactly what was going on. Now some things that happen feel like cheating, like a post Zyfex made about melee hitboxes not connecting. Even with a good ping (20-30), some players still teleport a little bit, specially during melee fights, making you think "but I blocked!", while with server side, having 20-30 ping felt like having 1 ping.

Sorry for the long post and for bringing up an old discussion. I think server side movement is better for the game, of course it's just something to be thought about and discussed, maybe client-side will be improved in future updates, or maybe they'll consider going back to server-side, but not right now. Well, just something to think about. :)

Share your opinions about it! Don't just tell us what you prefer, explain why.
6 x
Hold your breath.

User avatar
Gurt
Lead Programmer
Lead Programmer
Posts: 1887
Joined: Sun Feb 28, 2016 3:22 pm
Title: Lead programmer
Started SFD: Made it!
Location: Sweden
Gender:
Age: 36

Post by Gurt » Sat Jun 11, 2016 12:13 am

I think client side movement is better for a platform oriented game like SFD. There are of course disadvantages having server side only controls like very SLUGGISH AND DELAYED INPUT which doesn't suit SFD's action platforming (which is a big why we made client side movement in the first place) and there are disadvantages with client side movement like people with network jitter, unstable network and high ping that can teleport around - something we tend to address in the future. If we put high ping and unstable network aside I think SFD plays very well on stable servers with < 50 ms ping.
0 x
Gurt

User avatar
Lunatic
Moderator
Moderator
Posts: 666
Joined: Tue Mar 15, 2016 10:03 pm
Title: I hope Klipeh bans himself
SFD Alias: (LM) Lunatic
Started SFD: 1.0.5 Pre-Alpha
Gender:
Age: 29

Post by Lunatic » Sat Jun 11, 2016 2:32 am

Except we're back to limiting ourselves to small pings when it comes to playing, something you tell us to do both before and after client side. Client side was supposed to mask this movement problem, but it created a ball of other issues that hinder gameplay more than input delay ever did. The thing I like most about movement delay is there isn't any confusion. When I play a fighting game online and I press a button with my response coming out a full second later, I can adapt to that and play from there. When I play SFD with 150+ ping, I can be set on fire and not even know until I've taken a full second's worth of max fire damage, with more on the way depending on where I'm at.

I know we've brought it up before, that's why I know you won't go back. I do hope it's something you understand us talking about, and I do hope you'll consider being able to host client and server in the future. Client side for rocket riding is probably one of the best things it offers. In terms of combat being understandable so that nobody feels like they were cheated - guess we just have to find lower pings, huh?
4 x
Originally posted by Gurt
SFD BADASS! 8-)

User avatar
Relgap
Fighter
Fighter
Posts: 36
Joined: Sun Mar 20, 2016 11:34 am
SFD Alias: (LM) Relgap
Started SFD: 1000 bc
Gender:
Age: 28

Post by Relgap » Sat Jun 11, 2016 10:14 am

Gurt wrote: If we put high ping and unstable network aside I think SFD plays very well on stable servers with < 50 ms ping.
Can't that point also be said about server side hosting? I feel like a large part of the community has been arguing with the devs on the client side movement issue since it was released, and I've come to my own personal conclusion that you either don't understand why we dislike client side, or you simply just don't care that we don't like it. We can't magically fix our pings or find better games, at least with server side we were able to adapt to the delay, whereas now you just can't even react to it. I know several big players who have left SFD since the client side movement, on the grounds that the game was no longer playable for them.

IF you do actually plan on the selling the game via steam or some other media, you're going to get a LOT of shit from people who want to play with their international friends, and then you won't be able to ignore it, because those people have paid money for the game, it's only logical that you take more consideration of their opinions.
4 x
Big memes on the daily

Scarface
Superfighter
Superfighter
Posts: 150
Joined: Sat Mar 19, 2016 11:00 am
Gender:

Post by Scarface » Sat Jun 11, 2016 11:51 am

Our only hope now is that client side will be improved to that point where would be no teleporting and other stuff. You see, devs are improving the game, Zyfex really helps by reporting bugs. Yes, with client side we got a bunch of issues like melee hitboxes not matching, but they all will be eventually fixed.

Actually, every online game has these problems. If you have 200+ ping, you will have bad time playing with it, unless you predict when your move will come out. Let's say, I'm playing a fighting game with some guy who lives in Brazil. He hosts. I have 300 ping. If I predict when my move will come out and match it with my opponent's move cooldown, I can hit him. And by repeating this, I can do some serious damage.

So. the only thing we can do now is wait. We can't magically fix our pings(quoting Relgap), we can only use features such as auto-kick etc.

P.S I'm waiting when the devs fix this problem that has been really long: If one player has red ping, he affects other players pings, obviously, to bad side.
1 x
Decisions, decisions.

User avatar
Gurt
Lead Programmer
Lead Programmer
Posts: 1887
Joined: Sun Feb 28, 2016 3:22 pm
Title: Lead programmer
Started SFD: Made it!
Location: Sweden
Gender:
Age: 36

Post by Gurt » Sat Jun 11, 2016 1:20 pm

Lunatic wrote:When I play a fighting game online and I press a button with my response coming out a full second later, I can adapt to that and play from there.
This is what boggles my mind in so many levels. I can't simply understand how players can adapt to this delay (1 second as you say? Even 200 ms is very problematic for some.). What is this fighting game if I may ask? As I said in another similar thread (this has already been discussed) once we added client side movement the amount "lagg" and "they should fix the lagg" comments just decreased over night.
Lunatic wrote:When I play SFD with 150+ ping, I can be set on fire and not even know until I've taken a full second's worth of max fire damage
Sounds like you're exaggerating - this specific example of burning would be the same with or without server side movement. You will only noticing you burning 150 ms after you started to burn on the server. Doesn't matter how you control your character.
Scarface wrote:I'm waiting when the devs fix this problem that has been really long: If one player has red ping, he affects other players pings, obviously, to bad side.
I would really like you to point to a technical article explaining how this works in practice, how ones connection can affect another one, because it's just plain wrong in my experience and how SFD is designed. If I have 20 ping or 1000 ping I won't affect your connection/ping to the same server as long as the server meet hosting requirements and as long as I don't perform any DDoS attack. Some that host can only allow for max 4 players before reaching their upload cap after which everyone will have high ping if player 5 joins as the throughput is not enough. That might be why this "rumor" as I like to call it is flowing around a lot. There is no /clear ping command either as people claimed in early versions.

We're certain that new players first experiencing SFD today will find it unacceptable with delayed input and therefor not buy the game. So client side movement will be standard.

For the past months I have been thinking about the teleportation problems and how to address it. And seeing this server movement vs client movement discussion again (it seem to pop up once in a while and probably never die) it might be time to tell you how we tend to solve this problem.
We will lerp smaller gaps over time so teleporting players will not just randomly teleport but lerp to their new position. This will allow for proper hit detection on the server. Bigger gaps will force the client to resync its position so anyone teleporting big gaps (or hackers) will not move until they accept the syncing request from the server - basically making them teleport on their own screens. Here comes the big catch - if you teleport a lot because of your network jitter/unstable connection or if you hack you will be forced to a server side only movement scheme as a penalty as that seem to be the only proper way to deal with players with very unstable connections. You can no longer perform movement on your client as it just results in teleportation issues. So if that actually will be a thing why not add that as an option in your own config file? USE_SERVER_MOVEMENT=1. That will force yourself to only use server movement if you for some reason like that better and can adapt to a delayed input (which just boggles my mind). Then it's more of a "what you see is what you get - but you also get delayed input".

That's a few more words from me regarding this matter and some other non-related matters.
6 x
Gurt

User avatar
Lunatic
Moderator
Moderator
Posts: 666
Joined: Tue Mar 15, 2016 10:03 pm
Title: I hope Klipeh bans himself
SFD Alias: (LM) Lunatic
Started SFD: 1.0.5 Pre-Alpha
Gender:
Age: 29

Post by Lunatic » Sat Jun 11, 2016 2:02 pm

EDIT: So I was about to make this post when Gurt made his! I'd love to address it before I get on to what I had to say, not that it was anything ground breaking.

The game I adapt to online is Super Smash Bros. 4 (sm4sh). I'd love to play Mortal Kombat or Street Fighter but I don't have the time or money to dedicate to such super technical games. That said, I am interested in Project M... It's fantastic, highly technical, and has a crazy-high skill ceiling.

Another game I adapted to well was actually previous versions of SFD. The delay was noticeable but once you adapted to it you didn't play along the lines of "I press this and it happens NOW" but rather "I expect this and this, and I want to do this and this, and I have to do it at this time, so as a result I press these buttons a fraction of a second earlier to get them to happen at just the right times." It's the same process in Sm4sh with any amount of lag, really. I'm 99% sure MK has server side, I'm certain Sm4sh is server side, and I'd be willing to bet on Street Fighter being server side too. If you want good games, play games with low ping. If ping is high, there will be a higher delay - you can't stop that. This problem will be in client-side, too, it's just presented differently.

The goal has always been to play in servers with as little ping as possible to remove as much lag as you can. When you switched to client side, yeah, a lot of lag threads went away because you hid the lag. To the average player (aka the newer players/casual, fun-loving players) they won't notice the lag issues that much, though there will be moments where they'll scratch their head because something wonky happened. This is what I want most - to remove the "what just happened?" moments.

I completely understand where you're coming from when you say you don't understand how players adapt to this kind of input lag. I don't know how some players can be so technically skilled, making over 100 inputs a minute - some players can make 2 to 3 per second. The endurance it takes with precision and skill to make each input without tiring out your fingers/wrist while also making correct inputs and not just wrong ones... While also playing against someone so that each of these inputs has meaning??? Crazy stuff to me.

Competitive communities in the fighting game department run through server side, and a competitive environment will be more healthy with this feature. I understand this game wasn't meant to be super competitive, and I know that it's community isn't on the forefront of your mind, but as a player that hopes for a long-lasting game life, the things I talk about and ask for are only with love for SFD. I'm not the one making the game, and I haven't invested all the blood, sweat, and tears to code or create it, but I have been here for 3-4 years, playing and testing everything as it's added. I want to push it towards an end product that will be enjoyed for years to come, not just for a couple months after it's release. I'm sure the game will be enjoyed casually as well, which is great! Fun is a good thing. I'm just also interested in attracting a certain kind of people; making a group of these individuals that want to push the game to it's limits to test the might of human skill. idk, I like competing haha.

I'm incredibly excited to hear you talking about a toggle to use server-side inputs. This is a fantastic step towards competitive play. Between this, grabs, and all the melee changes you've made recently, I've been very excited and hyped for SFD lately. Thank you!

Now, the post I was going to make:
Client side vs Server side: The pros and cons

Server Side
Cons:
-The higher your ping, the more delay all of your actions have.
-If ping is fluctuating wildly, it is near impossible to line up your actions as needed.
Pros:
-What you see is what's happening; absolutely nothing of it is incorrect.
-You can adapt to the delay and input your actions accordingly.
-Melee isn't fucking busted lmao

Client Side
Cons:
-My screen and the server don't always line up:
---My actions/movement can be interrupted, "teleporting" me back to where I was previously where the server said I was knocked down.
---I roll on my screen while multiple bullets hit me before I start to actually roll.
---If I go to aim the second after I land, my aim snaps back down as if I had just started aiming
-Weird things happen with melee, which is the biggest issue imo.
-Players can modify their files to hack/hacking is much easier.
-Higher ping creates more glitchy bugs and weird things.
Pros:
-Movement is crisp and instantaneous; it's easy to navigate.
-Rocket Riding is perfect.


The problem with this debate is that both sides have obviously strong pros. The question is whether or not the good makes up for the bad.

DOUBLE EDIT: With server side, it will be easier to test bugs since we can rule out whether or not it's client side. Example: Multiple dive syndrome.
4 x
Originally posted by Gurt
SFD BADASS! 8-)

User avatar
Wozenbelt
Superfighter
Superfighter
Posts: 144
Joined: Sat Mar 19, 2016 6:35 pm
Title: MASTER OF MOVEMENT
SFD Alias: (LM) Wozenbelt
Started SFD: Pre-Alpha 1.1.1
Gender:
Contact:

Post by Wozenbelt » Sat Jun 11, 2016 3:32 pm

Gurt wrote:This is what boggles my mind in so many levels. I can't simply understand how players can adapt to this delay (1 second as you say? Even 200 ms is very problematic for some.). What is this fighting game if I may ask? As I said in another similar thread (this has already been discussed) once we added client side movement the amount "lagg" and "they should fix the lagg" comments just decreased over night.
Firstly, I'm very glad that you guys are thinking of how to deal with the issue.
Adapting to input delay is like leading a shot on a moving target. I think that's a very reasonable comparison to make, and it's less mind-boggling when you think about it this way. Sure, it's difficult when you have to repeatedly make this prediction, but with a stable yet poor ping, you can just get used to the steady delay you have. Also, the lag threads from the server side days have now been replaced with false bug reports that are just symptoms of client side. I like the idea to enable a server side movement option, I just hope that truly fixes the issue of multiple dives and fighting players that aren't actually there and whatnot. If I want to fight ghosts, I can load up Luigi's Mansion.
5 x

User avatar
Splinter
Superfighter
Superfighter
Posts: 314
Joined: Sat Mar 19, 2016 5:03 pm
Title: Grenade chef
Started SFD: 1.1.6
Location: Brazil
Gender:

Post by Splinter » Sun Jun 12, 2016 7:08 am

Nice discussion here, really happy about Gurt's plans with this "lerp" thing (taking an average of 2 positions, from what I googled) and locking some players to server side. I think this will greatly improve the game :)

About high ping players affecting other connections, maybe it was a bug with calculating the actual ping? I haven't seen it happen in a while actually. Sometimes when a big map loads, everyone's ping raises a lot, then it slowly goes down (even though their actual ping is good - you can see it dropping like 500-->434-->230-->120-->25, but actually it's 25 all the time)
3 x
Hold your breath.

Locked