Re: [CsMain] [GSoC2011] Multi-Purpose UDP Networking System For Robust Client To Server Communication

Mike Gist <[email protected]>
Newsgroups gmane.comp.graphics.crystalspace.general
Message-ID <[email protected]>
I have one question about the UDP bit.
What does rolling our own custom networking solution give us over supporting
existing high-performance networking libraries for games e.g. raknet?
If nothing, then I would suggest to focus more on the property class level
of things.

Who might mentor what is a little unknown at this point :) A few of us might
be interested, depends on other proposals.

On 4 April 2011 10:44, Dan Walters <[email protected]> wrote:

> On 3 April 2011 23:27, Christian Van Brussel
> <[email protected]> wrote:
> > Hi,
> >
> > a network layer in CEL is clearly of great interest.
> >
> > But I see one main problem to your current proposition: it does not seem
> > to care at all about the current network layer of CEL (see
> > CEL/include/physicallayer/network.h). However, if I remember correctly,
> > the guy who wrote it spent almost a year thinking about this API and
> > asking questions on the CEL forum before commiting it.
>
> I will look up on the forums. The CEL implementation is a very
> important part and the most unique of the design. Am also looking at
> network.h. The interface looks robust and well thought through, and
> features some of the things I discussed such as channels for example.
> I will try to amend my proposal to add to this rather than replace
>
> >
> > The current implementation of the network plugin is TCP-based, but the
> API
> > abstracts the actual implementation of the plugin, so this can be
> replaced
> > later by a UDP or Peer-to-Peer implementation. The API is rather good so
> > there is no real point to start a complete new one doing basically the
> > same thing.
>
> I agree that there is no point in re-writing code that already works.
> My argument in the pdf document is that a TCP library will not be able
> to provide high performance networking as the TCP protocol
> incorporates certain time delays when waiting for lost packets,
> keeping packets in order, etc. which in poor network conditions (when
> packet loss occurs such as when using wireless for example) can cause
> 'jumpy' flow of data. This is fine for a strategy game, a chat server,
> etc. but will not give acceptable performance for a game that requires
> responsiveness such as a first person game.
>
> This is a point that I would like to discuss - is this kind of
> performance required?
>
> It is possible to add an additional networking interface for UDP for
> when the TCP library isnt responsive enough, but having two libraries
> when UDP could do the job of both seems pointless.
>
> Likewise, we could not add UDP if time critical delivery is not a
> prioritized feature, instead focusing on communication and entity
> layers.
>
> >
> > What the current network plugin lacks is described in the GSOC page: "A
> > first need would be to define and implement a system so that the whole
> > networking behavior is defined through property classes, e.g. so that a
> > CEL game can become a networked game simply by adding some specific
> > entities and property classes. Another need would be to define for each
> > existing property classes how they update efficiently to/from the
> > network."
>
> I do try to discuss this at length in the object / entity layer. As
> far as I can tell, it is a case of serializing entities or members of
> entities and synchronizing those values. For this I was considering
> inspiration from Boost.Serialize where the programmer could implement
> write and read virtual functions for an entity and the networking
> engine could take care of the rest.
>
> I was also proposing that the networking implementation was slightly
> open ended so that the application programmer could decide under what
> data should be send and when. Different types of games will lend
> themselves to different implementations, sometimes a game will want to
> sync positions and rotations, other times it will want to sync physics
> forces, other times user input.
>
> In the pdf I was proposing a simple set of objects that handle the
> synchronization of an entity or the property of an entity. This would
> also include a framework for managing games, providing callback for
> players joining and disconnecting, etc. It looks like much of that is
> already implemented.
>
> >
> > That would be the main topic of a GSOC project on it. An UDP
> > implementation is clearly interesting, but it would have any interest
> only
> > once the network layer is actually completely integrated in CEL.
> >
>
> Perhaps I should amend the application to propose something more along
> the lines of developing the existing library into production code
> including implementing the synchronization handling objects, game
> management, etc?
>
> If at all, UDP could be an optional deliverable. This way, the focus
> would be on developing a finished product rather than an entire
> networking framework and CEL would probably have more to show for as a
> result.
>
> Can I ask who would mentor this project?
>
> Best wishes,
>
> Dan
>
>
> ------------------------------------------------------------------------------
> Create and publish websites with WebMatrix
> Use the most popular FREE web apps or write code yourself;
> WebMatrix provides all the features you need to develop and
> publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
> _______________________________________________
> Crystal-main mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/crystal-main
> Unsubscribe: mailto:[email protected]
> ?subject=unsubscribe
>



-- 
- Mike

------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf

_______________________________________________
Crystal-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/crystal-main
Unsubscribe: mailto:[email protected]?subject=unsubscribe
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.