2010-03-13 18 views
13

¿Algún juego escrito en C# tendrá algún problema de velocidad después de largos períodos de juego, como por 24 horas a la vez? Estoy hablando específicamente de un RPG 2D similar a los antiguos juegos de Final Fantasy o Dragon Quest. Sé que idiomas como Python se ralentizarán demasiado, curioso cómo se mantendría C#.Es C# lo suficientemente rápido para juegos

de edición: programas que escribo son muy parecidos a un árbol infestado de termitas :)

@jimmy - ése es el punto de esta totalidad. Estoy trabajando en un pequeño clon de FF para mejorar mi codificación

+7

"problemas de velocidad después de largos períodos de juego" - sin importar el idioma, que suena como pérdidas de memoria, o 'bichos ol apenas aclara .. –

+1

@Mitch Trigo - ¿No es posible que la forma en que funciona el recolector de basura lo afecte? Si no es muy bueno y causa fragmentación, es concebible que después de 24 horas las cosas se ralenticen. –

+1

@Edan: eso sería un error en el recolector de basura. – kervin

Respuesta

11

Sí, lo es. Eche un vistazo al XNA. Ya hay algunos juegos escritos en C#.

0

El kit de XNA Game para XBox 360 utiliza C# ...

+0

No hay idea por qué obtuviste un voto negativo. +1 de mi parte –

2

que tomaría un vistazo a este vídeo de Canal 9 añadido hace un año de Eric Lippert

Eric Lippert - Have you noticed a performance hit in .NET?

Es un gran reloj si te estás preguntando sobre el rendimiento comparativo. El hardware de la computadora ha avanzado mucho más desde entonces, pero el concepto no ha cambiado, C# /. Net puede tener un excelente rendimiento si lo está utilizando correctamente.

+1

Guau, eso es un viejo. Me encontré con Charles en el autobús hoy; con suerte, obtendremos algunos videos de Canal 9 más uno de estos días. –

2

Si el código se ralentiza en el curso de su ejecución, y con eso me refiero a que hacer lo mismo lleva más tiempo, es una señal de que la memoria no se está administrando correctamente. No sé a qué te refieres con la ralentización de Python, pero no tengo mucha experiencia con eso. Es posible que algunas bibliotecas de juegos o gráficos no manejen la memoria correctamente, lo que podría ocasionar que el rendimiento sufra (y finalmente se bloquee). Pero cerrar la aplicación y reiniciar solucionaría cualquier problema como ese, ¿y seguramente tendrías una función de guardado si un usuario jugara durante 24 horas?

Para responder a su pregunta, C# correctamente escrito no se ralentizará si juega el mismo juego por mucho tiempo. (Pero tampoco escribiría correctamente el código de Python, o cualquier otro idioma).

2

La lógica del juego de alto nivel definitivamente podría escribirse en Python. De hecho, es bastante común usar un lenguaje de scripting "lento" para permitir más libertad al diseñador del juego. En la práctica, los niveles más bajos del juego (como la interfaz de hardware/controladores) están escritos en C. Todo lo demás está abierto para el debate, dependiendo del tipo de rendimiento que requiera y del tipo de hardware con el que se ejecutará.

-1

La reescritura .NET de Quake:

http://www.codeproject.com/KB/mcpp/quake2.aspx

+0

¡Excelente ejemplo del potencial del rendimiento de .NET! Pero ese puerto realmente se hizo con C++ administrado y no con C#. –

+1

Sí, es correcto, Paul. Al final del día tenemos un poco de IL y una aplicación administrada. El lenguaje utilizado para llegar allí no debería importar demasiado. – Alex

+0

@Alex, Managed C++ también acepta el uso de bibliotecas nativas no administradas. Parte de su programa podría ser administrado y el otro podría no ser administrado, eso es lo especial sobre Managed C++. Por lo tanto, no es exactamente como VB .NET y C# que son ensamblajes puramente administrados con IL. – Mzn

Cuestiones relacionadas