For sure, an UDP implementation is more adapted to fast games than TCP.
But an incomplete UDP implementation is as useless as an incomplete TCP
implementation.

So, there is really no point to provide an UDP alternative to the existing
network layer, if in the end it still remains unused.

The network layer in CEL has been thought this way:
- 1: design an API abstracting the actual implementation of the network layer
- 2: write a TCP implementation of this API since this is the most easiest
way to do it
- 3: design and implement the property classes needed to define the
network behavior
- 4: implement more advanced solutions for the network layer, eg UDP, P2P,
or based on Raknet, etc

So, we are at step 2 and would like to go to step 3 and 4, not to start
again to steps 1 and 2, or skip to step 4 before step 3.
The goal of a GSOC project about that would be to do step 3 and optionally
start step 4, if and only if step 3 has been completed, but the step 3 is
probably big enough to cover a whole GSOC project.


What would be needed for step 3:
- a system so that the whole networking behavior is defined through
property classes: basically, you would have to define eg a property class
for each of the main concepts defined in network.h, ie game/game
client/game server. As a result, a network game should be defined only by
using some specific entities and property classes, and nothing else. This
is not the case for example of CEL/apps/nettest.

- define for each existing property classes how they update efficiently
to/from the network: this is NOT at all a matter of simply writing or
reading data to a buffer or doing some sort of compression, this job is
already done by the network layer. Instead, the job would be to find an
advanced extrapolation/interpolation scheme for each different property
class. So for example iPcLinearMovement would use dead reckoning, the
physical propclasses would need some complex scheme due to the complexity
of their behavior, etc.

- the demo recording and loby facilities would still need to be added


About ENET, I'm sorry but I don't agree with you :)
This library implements a semi-reliable transmission over UDP. This is of
course achieved by re-sending multiple time a same UDP packet until an
acknowledgment is received.
This is NOT what would be needed for an UDP layer of a networked game
because it would introduce too much latency. An UDP layer should implement
by itself the semi-reliability of the transmission, and that would be its
only difference with a TCP layer.


> Can I ask who would mentor this project?

Maybe the original author of the network layer would be interested to keep
an eye on it ;)



------------------------------------------------------------------------------
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

Reply via email to