No tengo preferencia hacia Ruby (o Python), yo mismo soy una persona Java. Pero la respuesta de UnknownDevice sobre cómo Ruby de alguna manera "no es realmente para juegos" y Python sí, me frustraron. Espero que lo aclare.
Sé que Pygame existe y ha existido, y reconozco que Python tiene una base de usuarios más grande que Ruby. Pero para ser sincero, ninguno de ellos parece un lenguaje "para juegos". Tampoco Java, y ese es mi lenguaje de programación de juegos de elección. (y cuando digo "de elección", me refiero a elección , no porque sea lo que se enseña en la escuela o porque es algo que "sé"). Y realmente, ¿qué es un lenguaje "para juegos"? Bueno, la velocidad es un factor, y obviamente debe tener bibliotecas para gráficos y otros sistemas de juego (audio, entrada, etc.).
En cuanto a la velocidad, parece ser un cambio entre Ruby y Python. Haga algunas búsquedas y encontrará rápidamente puntos de referencia y argumentos para ambos lados del espectro, y varias configuraciones que ponen uno u otro por delante. Python con algo llamado "Psycho" parece un demonio de velocidad popular en comparación con Ruby, pero Python normal parece ser un poco más lento que Ruby. Al final, si eliges un lenguaje de tan alto nivel, obviamente no te preocupan las velocidades nativas; ve con el idioma que mejor conoces. Y obviamente conoces mejor a Ruby, ¡así que lo animo!
El otro factor es si la tecnología está ahí para crear juegos; si puede soportar dibujar en la pantalla y recopilar entradas y reproducir audio. Ruby puede hacer todo esto. De hecho, hay un buen número de opciones a este respecto. Hay un paquete ruby-opengl en RubyForge que le dará soporte OpenGL a Ruby (¿o podría estar incluido por defecto?). Alternativamente, Chingu proporciona "gráficos 2D acelerados por OpenGL a la velocidad del rayo". según su página de inicio; construye funciones adicionales sobre Gosu , que puedes elegir usar si Chingu es demasiado para ti. O para gráficos en 3D, si no quieres usar ruby-opengl, prueba G3DRuby , "un conjunto muy limpio de clases de envoltura para muchas de las funciones más avanzadas de OpenGL". Allí'Rubygame , sobre el que no puedo encontrar mucha información, pero dice ser "una biblioteca multimedia multiplataforma" y debe dar su nombre, debe hacer hincapié en el desarrollo del juego. Si está familiarizado con la popular biblioteca SDL para C ++, hay Ruby / SDL o RUDL , los cuales son envoltorios Ruby de SDL. O si prefiere el SFML más nuevo y más orientado a objetos , ¡también está disponible para Ruby!
No hay razón para que Ruby sea menos lenguaje de programación de juegos que Python; si hay uno, me gustaría escucharlo para poder argumentar en contra. Si te sientes más cómodo programando en Ruby, y conoces los pros y los contras en comparación con otros lenguajes populares, ¡entonces puedes desarrollar juegos en Ruby!
http://gafferongames.com/2009/01/11/ruby-is-not-at-all-suitable-for-game-development/
La URL es probablemente un poco spoiler.
tl; dr: el ingenuo recolector de basura es un problema real.
fuente
No hay razón por la que no puedas. Mientras haya soporte multimedia para un idioma, entonces es material de gamedev. Diablos, una gran proporción de uno de los juegos Rollercoaster Tycoon se hizo a mano en ASM.
fuente
Si bien no estoy familiarizado con gran parte del trabajo de especificaciones profundas que rodea a Ruby, Enterbrain creó los programas de creación de juegos RPG Maker VX y RPG Maker XP que usan guiones de juegos basados en Ruby: http://www.rpgmakerweb.com/
Esta fue mi primera inmersión en el idioma. Como dijo la mayoría de la gente, probablemente no obtendrá el alto rendimiento de otros idiomas, pero si está buscando comenzar un juego de rol 2D (u otro juego 2D, en realidad), es probablemente uno de los editores de juegos más sofisticados para ayuda.
fuente
Ruby es un lenguaje agradable, pero en realidad no es para que los juegos sean honestos. Si no quieres usar C ++ pero quieres algo como Ruby, echa un vistazo a Python. Para un buen marco de Python, debe consultar algo como www.cocos2d.org/.
fuente
Depende del tipo de juego que te interese escribir. He usado ruby para escribir clientes de IA para varios juegos, incluidos Diplomacy , poker y Lost Cities . Creo que es un lenguaje muy amigable para experimentar rápidamente con diferentes conceptos. Por otro lado, no me gustaría usarlo para escribir mi tirador en tiempo real, simplemente no tendrá el rendimiento que necesito.
fuente
Tu pregunta es demasiado general. ¿Solo quieres escribir algún juego de computadora como un proyecto de pasatiempo o quieres entrar en el desarrollo de juegos independientes / profesionales? ¿Tendrá gráficos? ¿En qué plataformas se supone que debe ejecutarse?
En general, Ruby es adecuado para proyectos de hobby (por cierto, mi juego favorito de Ruby es Ruby Warrior ) y para el desarrollo de juegos basados en la web como Farmville. Incluso hay una cierta demanda de tales programadores, intente googlear algo como: "juego social de programador ruby".
Por otro lado, si desea desarrollar juegos de escritorio o móviles con gráficos, Ruby no es la mejor opción. Considerar:
fuente
No esperes escribir juegos 3D profesionales, comerciales y de alto rendimiento con Ruby, pero Ruby es un gran lenguaje para usar cuando aprendes conceptos de desarrollo de juegos.
Gosu es la biblioteca más popular (y mantenida activamente) para escribir juegos 2D en Ruby. Tiene una biblioteca subyacente de C ++ que utiliza para mejorar el rendimiento e interactuar con las bibliotecas de representación de pantalla subyacentes como OpenGL.
En cuanto al rendimiento, la implementación "predeterminada" de Ruby (MRI) funcionará bien (sugiero el último Ruby 2.0 para un mejor rendimiento) pero hay implementaciones alternativas que tienen hilos nativos y algoritmos alternativos de recolección de basura como Rubinius, JRuby, etc. Si está utilizando hilos, puede probar Rubinius, de lo contrario, MRI Ruby funcionará bien.
fuente
Dije Python porque tiene una base de usuarios más grande y más opciones cuando se trata de frameworks / bibliotecas para el desarrollo de juegos. Es bastante obvio que esta persona no tiene experiencia en el desarrollo de juegos, por lo que no tiene sentido recomendar que usen algo como Ruby solo porque es posible.
Cuando trabajo en juegos, uso C ++ con Lua, no salgo y escribo mi juego en Visual Basic solo porque tiene soporte multimedia. Estoy seguro de que todos aquí han escuchado a alguien decir ciertas herramientas para ciertos trabajos. Estoy seguro de que puedes clavar un clavo con un zapato, pero ¿por qué lo harías si puedes usar un martillo?
fuente