Jump to content
  • Advertisement
Sign in to follow this  


This topic is 2351 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I recently had a course about networks and a concept was mentioned but not explained so I've tried to find out more about it but the internet seems so void of information about it.

An old exam had the question what differences and advantages of short-circuit relays vs two-way relays in game networking. And on one power point slide during the course I also saw the mentioning of short-circuit relays and something about they being faster. Considering the subject I guess it has to do with massages but where? Is it during routing, is it something I control when building a server/client or peer solution? etc...

I'm itching with curiosity so if anyone knows what it is I'd love to found out. :)

Share this post

Link to post
Share on other sites
Terminology is somewhat uncommon and seems to come from this article.

Two-way means that all data is sent to remote server without understanding context.
Short-circuit means that some data may be sent to either some local server or directly to other peers, such as those on same LAN.

Short-circuit design would be old Skype, where some users could opt to become super nodes and where communication is done either as peer-to-peer or over a super node.

In practice, each authoritative networked node adds considerable complexity, especially in unreliable or untrusted environment. Added complexity of such systems is typically not worth the trade-offs considering strict latency requirements, which cannot be provided by ad-hoc hosts.

Another form of short-circuit evaluation however is regularly done - inside the client itself. Rather than being true dumb terminal (ssh/telnet), client hides latency by optimistically executing actions before receiving confirmation (avatar moves before server confirming valid destination).

This approach solves the reliability and complexity issues by not introducing an independent node, but by running inside same simulation loop, eliminating reliability problems.

In practice, moving parts add exponential complexity to the system. The more different types of servers there are, the more physical boxes there are, the more different architectures there are, the worse things will be to manage and more failure modes will need to be handled. Two parts are mandatory - client and main server. Adding a third proxy or even peer-to-peer makes things considerably more complicated.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!