Yes, it's not really about sending different types of data, so much as it is differing latency needs of data. If I am sending truckloads of unreliable packets on one channel, sending even occasional reliable messages in that channel might cause a stall, so segregating it allows me to prevent that stall. That said, the number of channels should still be kept within reason. Pretty much the entire point of ENet is sending data within less latency than TCP by allowing you to turn off stuff in TCP you normally couldn't.

Lee

Ruud van Gaal wrote:
My idea of channels is that they separate streams of reliable packets. So
for example if you have 2 events, one being a chat message and the other
being a player damage event, you'd probably want both to get there reliably.
However, if you put both on different channels, a delayed chat message won't
interfere with the damage event, and your gameplay might suffer less if the
damage packet was delivered (and the chat failed the first time).

Cheers,
Ruud
-----Oorspronkelijk bericht-----
Van: [email protected] [mailto:[email protected]] Namens Alex Milstead
Verzonden: Sunday, January 17, 2010 11:04
Aan: [email protected]
Onderwerp: [ENet-discuss] A query about channels

Hey all,

Is it possible for anyone to give a brief overview of the feature purpose of channels within ENet? I'd like to discover the real concept behind them to in/validate the idea I have for using them. I don't want to abuse the channeling system with what I intend to do, especially if they weren't meant for it.

Without loss of generality, I'd like to use different channels to send different types of information. The application I'm working with (like many who've posted before), happens to be a fledgling online-game. I'd like to be able to send different basic subsets of data via different channels (e.g., login through channel 0, character lists through channel 1, movement updates through 2, etc.). I'm using common structs inside a wrapper library on both client and server side applications, so it isn't a big deal to capture the type/make-up of the struct on both ends (easily done with a simple memcpy!). It seems as though structs are the most efficient way of sending data back and forth between apps. Is this idea of separation of information involved in what channels were originally designed to handle (my hunch says no)?

Also, if different channels for different structs shouldn't be my solution, does anyone have any advice on how I should handle varying types of common information being sent to and fro?

Thanks in advance for any comments/advice/instruction.

Cheers,
Alex
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss

_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss


_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss

Reply via email to