2008-09-05 15 views
6

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.C# Game Network Library

{EDIT} Me olvidé de 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. {/ EDIT}

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

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

¿Alguien tiene real experiencia mundial con estas u otras bibliotecas?


Me tropecé en RakNetDotNet:

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

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

Respuesta

1

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). propia .NET

5

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

+2

De acuerdo con [wiki] (http://en.wikipedia.org/wiki/Microsoft_XNA#License_Agreement): * "El EULA de Microsoft XNA Framework 2.0 específicamente prohíbe la distribución de juegos comerciales en red que se conectan a Xbox Live y/o Juegos para Windows Live en ausencia de un acuerdo específico firmado tanto por el desarrollador como por Microsoft. "* –

2

También me gustaría señalar que "Games for Windows", que XNA utiliza en las ventanas con su vivo! API de red es ahora libre ... lo que significa que si usted escribe un juego XNA que utiliza las características de red, los usuarios no hacer tiene que tener una membresía de oro :-)

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

+0

Según [wiki] (http://en.wikipedia.org/wiki/Microsoft_XNA#License_Agreement): *" The Microsoft XNA Framework 2.0 EULA prohíbe específicamente la distribución de juegos comerciales en red que se conectan a Xbox Live y/o Games para Windows Live en ausencia de un acuerdo específico firmado tanto por el desarrollador como por Microsoft. "* - ¿Esto ya no es cierto? –

+0

desafortunadamente, sigue siendo fiel a mi conocimiento :-(Realmente me gustaría que aclararan la historia sobre este –

0

Si' 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.

0

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

1

Aunque esta pregunta es bastante antigua, un sistema de nivel algo superior 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 del juego de forma similar a UML y un generador de códigos en línea crea ensamblajes que contienen los objetos del juego. El envío de actualizaciones de estado es tan simple como llamar a métodos setter.

No es lo correcto, si desea hacer frente a los sockets por su cuenta. Tenga en cuenta también que soy desarrollador de APlay, por lo que esta es una respuesta parcial.

4

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

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

0

Una pregunta antigua, pero voy a poner esto a disposición de 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.