0
\$\begingroup\$

I am trying to observe the effects of lag compensation in my game by increasing my ping to 200+, adding loss, and by the limiting bandwidth to simulate wide area network delays using Network Emulator for Windows Toolkit.

It seems no matter the degree of latency that is applied I never see any visual changes to my character position on the server, as the lag compensation / interpolation method is always able to predict my exact position.

But in real-world situations, players connected from a far distance away do have poor synchronization. How can I produce the same poor synchronization that I witness in players connected from a far distance so that I can choose the ideal lag compensation technique for my game.

For reference, I'm making this game using Unity 3D and it's a fast-paced, twitch shooter game.

\$\endgroup\$
  • \$\begingroup\$ I am asking how can I simulate the wide area network delays, as it seems artificial delay is not having any affect on any lag compensation techniques in any other game (including my own)? It's a fast-paced twitch shooter, yes. How can I figure out if my lag compensation is working without being able to observe how my game behaves under poor network conditions? \$\endgroup\$ – user1933466 Feb 8 '16 at 17:25
  • \$\begingroup\$ Okay, I adjusted and re-opened your question; if I've misunderstood or misrepresented anything feel free to edit it. \$\endgroup\$ – Josh Feb 8 '16 at 17:30
  • \$\begingroup\$ Yes, that's fine, I didn't know things were so pedantic around here. \$\endgroup\$ – user1933466 Feb 8 '16 at 17:32
  • 1
    \$\begingroup\$ Yea, there are some particular rules around here. It still may be worth your time to also float your question over at GDNet's multiplayer forum which is both less rigid w.r.t to what you can ask and has a bunch of very excellent networking/multiplayer programmers who frequent it. \$\endgroup\$ – Josh Feb 8 '16 at 17:42
  • \$\begingroup\$ Do you have 2 separate computers and a phone with network on it? \$\endgroup\$ – Bálint Feb 8 '16 at 18:14
2
\$\begingroup\$

I actually wanted to add this as a comment, but since I need reputation to comment...

A long time ago, back in Unity 4, I tried using the Network Emulation and got this feeling that my prototype was handling lag and packet losses very nicely. Then I discovered that there are unclear circumstances in which the Network Emulation adds to nothing - in fact, even with emulation set, the game was behaving as if running with 100% near-instant delivery. I don't know if this problem persists in Unity 5 nor the reasons that made the emulation not kick in, but this might be exactly what's happening to you.

The way was to simulate packet losses and latency by myself - the game was simple so I just added another component between the network and game components with the responsibility of "dropping" messages or "delaying" them. For your game that might be too much work to do, so you might want to dig around software like Clumsy (https://jagt.github.io/clumsy/) - I DIDNT TEST IT - and/or use virtual machines.

Side note, latency is bad, but your real enemy when using many compensation techniques will be the Jitter.

\$\endgroup\$
0
\$\begingroup\$

The Unity editor had built in network emulation which introduces latency and packet loss and slower download/upload speeds: http://docs.unity3d.com/Manual/NetworkEmulation.html

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.