unity roguelite rogue juegos roguelike

roguelike - juegos - roguelite



¿Qué lenguaje de programación sería mejor para crear un juego roguelike? (11)

Bueno, he hecho un par de roguelikes en C, pasando bastante tiempo en roguebasin , que es un gran sitio para todo lo relacionado con el desarrollo de roguelike.

En cuanto a qué idioma debe usar, realmente no lo veo haciendo una gran diferencia. Escojo C debido a la portabilidad, y muchas bibliotecas funcionan bien con él. Pero un lenguaje orientado a objetos puede limpiar algunas cosas que puede que no desee realizar un seguimiento.

No hay ningún idioma que considere específicamente más importante que el resto para roguelikes. Si lo está haciendo gráfico, puede preferir algo que tenga incorporado, como flash / silverlight. Pero incluso entonces hay bibliotecas para otros lenguajes que los acercan al mismo grado de dificultad en ese sentido.

Así que diría que tomes un idioma que conoces y te gusta, o que no sabes y quieres aprender ...

Con el interés de crear un RPG roguelike (como Nethack, Rogue y ADOM), ¿qué lenguaje de programación sería el más adecuado y por qué?

Con el idioma que elija, asegúrese de enumerar las bibliotecas o las facetas del idioma que lo hacen especialmente adecuado.


El nethack original fue escrito en C, y la fuente está disponible si desea obtener algunas ideas sobre cómo fue escrito, y los desafíos que puede encontrar que pueden ser una buena manera de comenzar a decidir sobre un idioma.



Podrías considerar Silverlight.

Se encuentra encima de C # y .Net, así que no hay mucho que preocuparse por la administración de la memoria. Con SL obtendrás soporte para la representación del tipo de gráfico de escena: descarte de cosas que no están en la pantalla, teclado, eventos del mouse, clics en objetos, etc.

Hay una curva de aprendizaje inicial, pero creo que es un gran entorno para trabajar.


Recomiendo Actionscript para esos juegos.


Mi lenguaje de uso (también estoy intentando crear roguelike) es Python porque:

  • Es un lenguaje de programación de alto nivel, no necesito pensar en la asignación de memoria todo el tiempo, etc., pero tengo en mente los algoritmos.
  • Hay toneladas de bibliotecas útiles para casi todo. Recientemente he encontrado TDL / libtcod que puede ser útil para el desarrollo de roguelike.
  • Con enlaces, puede usar fácilmente bibliotecas C / C ++ o incluso escribir algunas funciones críticas en C / C ++, y usarlas.
  • Es el lenguaje de programación más legible que he visto en mi vida.
  • Mientras programaba en Python, aprendí a usar documentación interna. Es muy útil, acabo de leer mi código unos meses después y todavía sé lo que está haciendo.

Mi primera pregunta sería si el juego va a tener una interfaz de usuario basada en la web o algún tipo de asunto de consola / ventana como los juegos originales similares a Rogue. Si fuera el primero, diría que cualquier idioma con el que se sienta cómodo sería una buena opción. Ruby on Rails, Python / Django, PHP / CakePHP, etc. serían geniales.

Pero si la respuesta es la última, este es un juego que desea que las personas puedan descargar e instalar localmente, voy a ir con Java. Es un gran lenguaje sin administración de memoria para que puedas manejarlo. Alcanza un rendimiento muy alto gracias a la compilación y optimización justo a tiempo, y tiene una biblioteca extremadamente rica para ayudarlo con las estructuras de datos, Swing hace que algunas UI realmente bellas, y la biblioteca 2D permite la plataforma multiplataforma más rica representación fuera de PostScript. También tiene la disponibilidad en Windows, Mac OS X y Linux que no obtendrá de otras opciones.

Finalmente, la distribución de su aplicación también es fácil a través de Java Web Start, por lo que las personas pueden descargar e instalar el juego con solo un par de clics una vez que tengan Java y lo mantengan en su máquina para que se ejecute mientras lo deseen.


La mayoría de estas respuestas son geniales, pero hay algo que decir acerca de la potencia combinada de las cosas orientadas a objetos y los comandos de bajo nivel que se pueden abusar en C ++. Si está buscando algo de inspiración, el código fuente de C para NetHack está ampliamente disponible y documentado lo suficiente como para poder aprender algunas cosas. Dicho esto, es un gran proyecto que ha estado creciendo durante décadas, y no todo es tan limpio como lo que vas a querer para tu propio proyecto: no te arriesgues a tomar malas decisiones de diseño basadas en lo que encuentras en NetHack. .

Honestamente, sin embargo, en términos de lo que usas, probablemente no importe en absoluto, aunque recomiendo usar un lenguaje OO. Hay tanta mierda para manejar en un roguelike (diablos, cualquier CRPG realmente) que OOP es la forma más fácil de mantenerse cuerda.


Esa es una elección muy personal como siempre :-)

Escribí mi juego Roguelike (Tyrant) en Java por las siguientes razones:

  • Muy portátil (incluso con gráficos)
  • Recolección de basura / administración de memoria
  • Muchas buenas librerías libres / de código abierto disponibles (útiles para algoritmos, estructuras de datos y manipulación de guardar archivos de juegos, etc.)
  • Es un lenguaje estáticamente tipado; esto tiene beneficios de rendimiento y robustez que, a mi juicio, valen la pena por la complejidad de codificación adicional.
  • Quería perfeccionar mis habilidades Java en general para utilizarlas en otros proyectos

EDITAR: para los interesados ​​es de código abierto, todo el código está disponible en SourceForge


Para hacer cualquier juego, cualquier idioma será correcto si:

  1. puede usarlo (puede usarlo, por conocimiento o si es lo suficientemente fácil de aprender ahora mismo para usted o para su equipo)
  2. produce aplicaciones que se ejecutan en la computadora de su cliente
  3. puede producir fácilmente aplicaciones que funcionen lo suficientemente rápido para las necesidades de su juego.

Creo que para un Rogue-Like, cualquier idioma que conozcas será correcto en lo que se refiere a tu objetivo. Las actuaciones no son realmente un problema en este tipo de juegos. La generación mundial puede requerir un alto rendimiento si tu generación mundial es realmente compleja ...


simplemente vaya con algo que maneje los detalles de bajo nivel para usted. lo que sea que sepa debería funcionar

hey, pueden escribir uno en javascript.