Jump to content

Analyzing Match. Cheats? Or Sh*tty Netcode?

Gameplay General Balance

63 replies to this topic

#21 LordNothing

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Ace Of Spades
  • Ace Of Spades
  • 12,833 posts

Posted 23 December 2020 - 11:19 AM

View PostQuicksilver Kalasa, on 22 December 2020 - 09:11 AM, said:

They don't hide rubberbanding, the game CANNOT look into the future to show you where the enemy will be once they react to your movement. The best it can do is go back in time according to your average latency and do what it does and "rewind" the state of the game and adjust accordingly. Not saying there isn't room for improvement because other games handle this better (looking at you Overwatch) and something still feels wonky about laser hit reg but it is still better than without HSR. I don't miss those days.


not entirely true. you can extrapolate the most probable location an object will be at. the game physics model is known and you can fast forward it given the last known state of the object. until the server sends an update for that object it can use a best guess. under normal situation the object would have not moved much from its predicted location, the jump can then be corrected with interpolation so it looks more natural. this also happens many times a second. you only notice it when a client has a lot of packet loss and it has been many ticks since it last reported in. at that point the server is just making stuff up. the error between its prediction and what the client is actually doing grows linearly with time. after long enough time you are shooting a figment of the server's imagination.

the way other games handle it belter is simple, they have more servers, and they are popular enough where those servers can be filled and have adequate match making. that and they have active developers who can actually fix bugs in the netcode. mwo has a lot of known bugs, but pgi doesn't know how to fix them. pgi can actually be a bit lazy as mechs tend to move slowly anyway. one of the reasons we dont have a firemoth (also i think the game engine couldn't load geometry fast enough to keep up with it, game spends too much time paging in the higher lods).

Edited by LordNothing, 23 December 2020 - 11:21 AM.


#22 Quicksilver Kalasa

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • The Venom
  • The Venom
  • 10,837 posts
  • LocationKansas City, MO

Posted 23 December 2020 - 12:20 PM

View PostLordNothing, on 23 December 2020 - 11:19 AM, said:

not entirely true. you can extrapolate the most probable location an object will be at. the game physics model is known and you can fast forward it given the last known state of the object.

It extrapolates by just using the last known movements of the object like most modern game engines (I would assume since, inserting AI to predict typical movements seems.....overkill), HOWEVER you will always be behind what the server sees because of latency which is what I meant by looking into the future. Again, not saying their netcode is perfect but it's not awful like when the game started either (where HSR didn't exist and everything even zoom was server authoritative).

View PostLordNothing, on 23 December 2020 - 11:19 AM, said:

the way other games handle it belter is simple, they have more servers, and they are popular enough where those servers can be filled and have adequate match making. that and they have active developers who can actually fix bugs in the netcode. mwo has a lot of known bugs, but pgi doesn't know how to fix them. pgi can actually be a bit lazy as mechs tend to move slowly anyway. one of the reasons we dont have a firemoth (also i think the game engine couldn't load geometry fast enough to keep up with it, game spends too much time paging in the higher lods).

I mean this what tends to happen when you don't have documentation, spaghetti code, and no way to pull engineers who can and will learn. That said, networking is hard and I'm impressed we have what we do.

Edited by Quicksilver Kalasa, 23 December 2020 - 12:23 PM.


#23 Nightbird

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • The God of Death
  • The God of Death
  • 6,273 posts

Posted 23 December 2020 - 12:23 PM

The only thing bad with host state rewind is that a lot of shots that appear to miss you hit, and some shots that hit you miss. This is always due to the hits and misses that occur from the shooters perspective. What would be better is if the server could curve projectiles based on whether it hits or misses, so at least visually it looks more accurate.

Edited by Nightbird, 23 December 2020 - 12:23 PM.


#24 Gagis

    Member

  • PipPipPipPipPipPipPipPip
  • FP Veteran - Beta 1
  • FP Veteran - Beta 1
  • 1,210 posts

Posted 23 December 2020 - 01:13 PM

View PostNightbird, on 23 December 2020 - 12:23 PM, said:

What would be better is if the server could curve projectiles based on whether it hits or misses, so at least visually it looks more accurate.

Ooh I like that. No idea how feasible it is without causing overhead and it'd look really silly but it would be good visual feedback for players. I wonder if any other game that has relatively slow flying projectiles does something like that.

#25 VonBruinwald

    Member

  • PipPipPipPipPipPipPipPipPip
  • The Undisputed
  • The Undisputed
  • 3,458 posts
  • LocationRandis IV

Posted 23 December 2020 - 01:25 PM

View PostVonBruinwald, on 21 December 2020 - 12:07 PM, said:

I don't think ftl will make a difference. All it will do is allow devs to get lazier, resulting in poorer optimisation.


View PostQuicksilver Kalasa, on 22 December 2020 - 09:11 AM, said:

:wat: this legitimately doesn't make sense.


It doesn't make sense because it's the result of developers being lazy and expecting the hardware to carry them.

If you lose 10% of packets on a 60Mb that's a sizeable chuck.
If you lose 10% of packets on a 100Mb that's still a sizeable chuck but you have a much higher throughput so you can take the hit.

The problem is, because the throughput is compensating they can afford to be a little more lax in the optimisation, at 20% they're still performing better than before. So, the specifications go up, and the standards keep dropping, which is fine for those on the cutting edge but for the rest of us on legacy hardware, we feel the hit.

Remember when physical media was a thing, games would use the same model for different enemies and palette swap it to save space. Well now, there's games that don't, they'll have 5 identical models, each with a palette of its own! I've even seen this done with scenery, imagine that, 50 identical rocks saved individually...

#26 Quicksilver Kalasa

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • The Venom
  • The Venom
  • 10,837 posts
  • LocationKansas City, MO

Posted 23 December 2020 - 02:12 PM

View PostVonBruinwald, on 23 December 2020 - 01:25 PM, said:

developers being lazy and expecting the hardware to carry them.

This is legitimately the dumbest thing I've heard in a while.

View PostVonBruinwald, on 23 December 2020 - 01:25 PM, said:

If you lose 10% of packets on a 60Mb that's a sizeable chuck.
If you lose 10% of packets on a 100Mb that's still a sizeable chuck but you have a much higher throughput so you can take the hit.

The problem is, because the throughput is compensating they can afford to be a little more lax in the optimisation, at 20% they're still performing better than before. So, the specifications go up, and the standards keep dropping, which is fine for those on the cutting edge but for the rest of us on legacy hardware, we feel the hit.

Remember when physical media was a thing, games would use the same model for different enemies and palette swap it to save space. Well now, there's games that don't, they'll have 5 identical models, each with a palette of its own! I've even seen this done with scenery, imagine that, 50 identical rocks saved individually...

Games do not need or use that much network throughput, nowhere near enough to bother with "optimization" in netcode at least. This game is also poorly optimized to use available hardware, it has nothing to do with people poorly optimizing for legacy hardware, but just hardware in general. This game is incredibly CPU dependent and barely presses my GPU unlike most other games, yet I get less frames in this than in new games because of my CPU.

#27 LordNothing

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Ace Of Spades
  • Ace Of Spades
  • 12,833 posts

Posted 23 December 2020 - 08:24 PM

View PostQuicksilver Kalasa, on 23 December 2020 - 12:20 PM, said:

It extrapolates by just using the last known movements of the object like most modern game engines (I would assume since, inserting AI to predict typical movements seems.....overkill), HOWEVER you will always be behind what the server sees because of latency which is what I meant by looking into the future. Again, not saying their netcode is perfect but it's not awful like when the game started either (where HSR didn't exist and everything even zoom was server authoritative).


its not really ai, just physics. an object has a velocity, multiply by the amount of time that has passed and you can figure out where it will would be assuming the object state did not change in that time. in most cases it doesnt given the slowness of mechs.

#28 Quicksilver Kalasa

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • The Venom
  • The Venom
  • 10,837 posts
  • LocationKansas City, MO

Posted 23 December 2020 - 10:03 PM

View PostLordNothing, on 23 December 2020 - 08:24 PM, said:


its not really ai, just physics. an object has a velocity, multiply by the amount of time that has passed and you can figure out where it will would be assuming the object state did not change in that time. in most cases it doesnt given the slowness of mechs.

Oh yeah, you aren't talking about mechs. I've been talking about mechs which are more event driven than projectiles, that said similar stuff could be done it just might seem odd.

#29 LordNothing

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Ace Of Spades
  • Ace Of Spades
  • 12,833 posts

Posted 23 December 2020 - 10:38 PM

View PostQuicksilver Kalasa, on 23 December 2020 - 10:03 PM, said:

Oh yeah, you aren't talking about mechs. I've been talking about mechs which are more event driven than projectiles, that said similar stuff could be done it just might seem odd.


unguided projectiles are 100% deterministic. in fact the more things that the game designer can make deterministic, the less data you have to move to the server. you just need an initial state and a time stamp. and that can be abstracted down further. for example you dont need a full quaternion for a bullet model you can use the velocity vector and compute the quaternion at the other end. it wont give you any roll axis orientation data, but you really dont need it. for single precision you save 128 bytes. and you send one report to the server, when the object was created and thats it. server will tell you if you hit anything.

non-deterministic things, like anything controlled by a player, is the x factor and will eat most of the bandwidth. these things need to regularly send reports to the server every tick and that can get expensive fast. the old john carmack analogy of trying to fill an olympic swimming pool through a silly straw comes to mind.

Edited by LordNothing, 23 December 2020 - 11:06 PM.


#30 Quicksilver Kalasa

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • The Venom
  • The Venom
  • 10,837 posts
  • LocationKansas City, MO

Posted 23 December 2020 - 11:19 PM

View PostLordNothing, on 23 December 2020 - 10:38 PM, said:

unguided projectiles are 100% deterministic. in fact the more things that the game designer can make deterministic, the less data you have to move to the server. you just need an initial state and a time stamp. and that can be abstracted down further.

I figured that was already the case but you know what they say when you assume.

Edited by Quicksilver Kalasa, 23 December 2020 - 11:19 PM.


#31 VonBruinwald

    Member

  • PipPipPipPipPipPipPipPipPip
  • The Undisputed
  • The Undisputed
  • 3,458 posts
  • LocationRandis IV

Posted 24 December 2020 - 07:47 AM

View PostQuicksilver Kalasa, on 23 December 2020 - 02:12 PM, said:

Games do not need or use that much network throughput, nowhere near enough to bother with "optimization" in netcode at least.


When a packet is lost it gets resent, having a higher throughput allows more (lost) packets to be (re)sent. The idea that you don't need to optimise your netcode because the connection is faster is just lazy and leads to problems when things do slow down.

View PostQuicksilver Kalasa, on 23 December 2020 - 02:12 PM, said:

This game is also poorly optimized to use available hardware, it has nothing to do with people poorly optimizing for legacy hardware, but just hardware in general. This game is incredibly CPU dependent and barely presses my GPU unlike most other games, yet I get less frames in this than in new games because of my CPU.


That's just CryEngine. It was designed under the assumption we'd have less cores running faster than what we have now.

#32 LordNothing

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Ace Of Spades
  • Ace Of Spades
  • 12,833 posts

Posted 24 December 2020 - 09:40 AM

View PostQuicksilver Kalasa, on 23 December 2020 - 11:19 PM, said:

I figured that was already the case but you know what they say when you assume.


been working on a game engine on and off for over a decade. timing is one of the first things i sorted out. netcode and physics are stubs at the moment, the latter being in the more advance state of completeness. though a modern game developer would never bother with their own engine anymore unless the company's business model had plans to sell it. games like crysis, unreal, and various quake/doom installments have really just been tech demos for their respective engines. i mostly do it because i like to know how things actually work and nothing will ever really become of it.

#33 LordNothing

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Ace Of Spades
  • Ace Of Spades
  • 12,833 posts

Posted 24 December 2020 - 10:07 AM

View PostVonBruinwald, on 24 December 2020 - 07:47 AM, said:

When a packet is lost it gets resent, having a higher throughput allows more (lost) packets to be (re)sent. The idea that you don't need to optimise your netcode because the connection is faster is just lazy and leads to problems when things do slow down.



thing is you usually don't need to resend packets. they are formatted such that if you lose one, you can figure out what happened with the previous packet and the next one when it comes in. however say you fire your weapon, and the report is stuck in the packet and the packet gets lost. when the server sends its update, the client will be able to tell that no weapon was fired because an instance of that weapon's shot wasnt in the report. it can then put that report into the next packet. since everything is timestamped the server will create the projectile and then fast forward it to the current time such that to the player it seems like it fired on time. games do quite a bit of time travel to figure things out. thing is you dont have to resend the full packet, you just need to resend the important bits.

#34 Sergeant Destroy

    Member

  • PipPipPipPipPip
  • Bad Company
  • 177 posts

Posted 24 December 2020 - 11:08 AM

When a packet is lost it gets resent, having a higher throughput allows more (lost) packets to be (re)sent.

What the ****?

#35 VonBruinwald

    Member

  • PipPipPipPipPipPipPipPipPip
  • The Undisputed
  • The Undisputed
  • 3,458 posts
  • LocationRandis IV

Posted 24 December 2020 - 11:47 AM

View PostSergeant Destroy, on 24 December 2020 - 11:08 AM, said:

What the ****?


Maths!

#36 ANDR123

    Member

  • Pip
  • Ace Of Spades
  • Ace Of Spades
  • 10 posts

Posted 24 December 2020 - 02:18 PM

View Postuwuziel, on 19 December 2020 - 09:47 PM, said:

https://youtu.be/Cw-6fRBuEx8

To summarize if you dont feel like clicking;
I was in a solaris match facing 'arabidhamster,' His Victor VS my Piranha. He spotted me, took a shot and missed...But it didnt miss?? The AC20 went over my mech and to my left. Missed my a mile (god bless you speed tweak) but then outta nowhere my right leg goes red. My only assumption is that the shot hit. But it didnt?? It missed? But it hit????? Not 20 seconds later the same thing happens. He fires a shot at a steep angle, and this time I dont even see where it flys! And it hits my RL again. I was in a match with him before and ive seen him around for a while. I know hes at least good at the game but this??

I think his scorecard shows hes got a 30/2 W/L ratio or something. If anyone can back him up cool. I'm not upset he hit, im upset the game told me he missed. I find it funny there isnt a "bug report" tag or forum topic...





unless he was cheating after all in which case bro imagine dropping 4.99 a month to cheat in MWO Solaris. But hey. im open minded. I dont would like to think no one is THAT sad.


clear cheat to me. it's the same used also by others players

#37 VonBruinwald

    Member

  • PipPipPipPipPipPipPipPipPip
  • The Undisputed
  • The Undisputed
  • 3,458 posts
  • LocationRandis IV

Posted 24 December 2020 - 02:31 PM

View PostANDR123, on 24 December 2020 - 02:18 PM, said:


clear cheat to me. it's the same used also by others players


Lag switch combined with HSR or hack?

#38 ANDR123

    Member

  • Pip
  • Ace Of Spades
  • Ace Of Spades
  • 10 posts

Posted 24 December 2020 - 02:41 PM

View PostVonBruinwald, on 24 December 2020 - 02:31 PM, said:


Lag switch combined with HSR or hack?

it would have been impossible to hit that leg with the sencond ac 20 shot. auto aiming to me

Edited by ANDR123, 24 December 2020 - 02:41 PM.


#39 LordNothing

    Member

  • PipPipPipPipPipPipPipPipPipPipPip
  • Ace Of Spades
  • Ace Of Spades
  • 12,833 posts

Posted 24 December 2020 - 02:52 PM

View PostVonBruinwald, on 24 December 2020 - 11:47 AM, said:


Maths!


its amazing how much you can do with just a timestamp.

View PostSergeant Destroy, on 24 December 2020 - 11:08 AM, said:

When a packet is lost it gets resent, having a higher throughput allows more (lost) packets to be (re)sent.

What the ****?


the beauty of it all is you dont really have to resend anything. its mostly in the format 'this is the state at this time', then if something is missing, you can fill in the gap with interpolated data. the tick rate is such that you probably wouldn't have noticed.

you are also using udp. tcp requires ack/nak returns to be considered complete so double your latency. and if you get a nak you have to do the whole thing over again. you might also receive your packets out of order as a result. you can get that with udp too, but its usually due to some packets taking a different route. so a format that lets you receive them out of order or lose them completely is desirable.

Edited by LordNothing, 24 December 2020 - 03:02 PM.


#40 Nightbird

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • The God of Death
  • The God of Death
  • 6,273 posts

Posted 24 December 2020 - 03:49 PM

Also worth pointing out Solaris only has a few viable mechs per division, and you need to ban maps your mechs underperform on. The OP picked a bad mech for the division, and also didn't ban the worst map for his mech, so there is plenty to learn from this not just how MWO does hit reg.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users