Note that there are some explanatory texts on larger screens.

plurals
  1. POUsing IOCP with UDP?
    primarykey
    data
    text
    <p>I'm pretty familiar with what <strong><em>Input/Output Completion Ports</em></strong> are for when it comes to <strong>TCP</strong>. </p> <p>But what, if I am for example coding a FPS game, or anything where need for low latency can be a deal breaker - I want immediate response to the player to provide the best playing experience, even at cost of losing some spatial data on the go. It becomes obvious that I should use <strong>UDP</strong> and aside from sending coordinate updates frequently, I should also implement kind of semi-reliable protocol (afaik TCP induces packet loss in UDP so we should avoid mixing these two) to handle such events like chat messages, or gunshots where packet loss may be crucial. </p> <p>Let's say I'm aiming at performance which would apply to MMOFPS game that allows to meet hundreds of players in one, persistent world, and aside from fighting with guns, it allows them to communicate through chat messages etc. - something like this actually exists and works well - check out PlanetSide 2.</p> <p>Many articles there on the net (e.g. these from msdn) say overlapped sockets are the best and IOCP is god-tier concept, but they don't seem to distinguish the cases where we use other protocols than TCP.</p> <p>So there is almost no reliable information about I/O techniques used when developing such a server, I've looked at <a href="http://www.gamedev.net/topic/533159-article-using-udp-with-iocp/" rel="nofollow noreferrer">this</a>, but the topic seems to be highly controversial, and I've also seen <a href="http://www.codeproject.com/Articles/1871/IP-Multicasting-Using-I-O-completion-ports-with-UD" rel="nofollow noreferrer">this</a> , but considering discussions in the first link, I don't know if I should follow assumptions of the second one, <strong>whether I should use IOCP with UDP at all</strong>, and if not, <strong>what is the most scalable and efficient I/O concept when it comes to UDP</strong>.</p> <p>Or maybe am I just making another premature optimization and no thinking ahead is required for the moment ?</p> <p>Thought about posting it on gamedev.stackexchange.com, but this question better applies to general-purpose networking I think.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload