write socket receive available async c# network-programming

socket - Biblioteca de la red C#Game



socket tcp ip c# (8)

Estoy desarrollando un juego de estrategia en línea usando .Net v2. Aunque el juego es principalmente estratégico, tiene algunos elementos tácticos que requieren un rendimiento de red razonable. Planeo usar paquetes TCP para datos estratégicos y paquetes UDP para datos tácticos.

{EDIT} Olvidé mencionar que me estoy alejando de WCF y .NET 3+ por un par de razones. Primero, porque quiero mantener mi descarga pequeña y la mayoría de mis clientes ya tienen .NET 2.0. Segundo, porque me gustaría tener la opción de portar a Mac y Linux y no estoy seguro de la disponibilidad de WCF en Mono. {/EDITAR}

Estoy buscando recomendaciones de la biblioteca de red. He encontrado algunas opciones, como Torque Network Library (C ++) de GarageGames, RakNet (C ++) y la biblioteca de red de lidgren (C #):

http://www.opentnl.org/ http://www.jenkinssoftware.com/ http://code.google.com/p/lidgren-network/

¿Alguien tiene experiencia en el mundo real con estas u otras bibliotecas?

Acabo de tropezar con RakNetDotNet:

http://code.google.com/p/raknetdotnet/

Esto podría ser lo que estoy buscando ...


Aunque esta pregunta es bastante antigua, un sistema de nivel un poco más alto desarrollado específicamente para juegos es APlay : entre las plataformas compatibles también está C #. Hay versiones de evaluación y es gratuito para uso personal.

Define los objetos de su juego de forma similar a UML y un generador de códigos en línea crea ensamblajes que contienen los objetos de su juego. El envío de actualizaciones de estado es tan simple como llamar a métodos setter.

No es lo correcto, si quieres arreglártelas solo. Tenga en cuenta también que soy desarrollador de APlay, por lo que esta es una respuesta parcial.


El XNA basado en .NET de Microsoft le permite crear juegos en red en Windows y XBox 360.


Por qué limitarse a .NET 2.0. .NET 3.0 (o 3.5) contiene WCF y es un subsistema de comunicaciones sólido y de alto rendimiento con buena seguridad. .NET 3.0 es solo .NET 2.0 con bibliotecas adicionales (WCF, WF, WPF).


Puede echar un vistazo a Entanglar ( http://entanglar.dunnchurchill.com ) si está buscando algo de nivel superior. Entanglar proporciona ciclo de vida completo de la entidad y sincronización.


Si eres nuevo en el desarrollo de juegos, recomendaría XNA, es fácil programarlo. La ventaja de Torque, sin embargo, es que tiene herramientas de creación de activos, que también pueden ser invaluables. Para un juego de nivel superior o FPS, el motor Source es excelente.


También me gustaría señalar que "Juegos para Windows", que XNA usa en Windows con su Live! las API de red ahora son gratuitas ... lo que significa que si escribe un juego XNA que utiliza las características de red, sus usuarios no necesitan tener una membresía dorada :-)

http://www.engadget.com/2008/07/22/games-for-windows-live-now-free/


Una pregunta antigua, pero explicaré esto a cualquier persona que tropiece con esto. Estamos usando OpenTNL para nuestro juego, Bitfighter, y estoy constantemente sorprendido de lo bien que funciona. Y es gratis si puedes vivir con GPL.


http://code.google.com/p/lidgren-network-gen3/

Lidgren.Network es una biblioteca de redes para .NET Framework que utiliza un solo socket udp para entregar una API simple para conectar un cliente a un servidor, leer y enviar mensajes.