Originalmente estaba pensando en crear un juego con Python y SFML. Entiendo que Python es lento en comparación con C ++, pero ¿cómo se compara con Game Maker?
La razón principal por la que pregunto es que recientemente jugué un juego de Game Maker (The Iconoclasts) que funcionaba a una velocidad de cuadro bastante mala en mi computadora (GMA 950). Me preocupa tener problemas de rendimiento similares con Python / SFML.
Respuestas:
Decir "Python es lento en comparación con C ++" es una generalización que ignora muchos aspectos prácticos del mundo real y, por lo general, es un tipo de juicio pobre en el que confiar. Lo que realmente quiere hacer es ver lo que un lenguaje o tecnología en particular puede aportar a la mesa en términos de sus necesidades y, de manera similar, evaluar cualquier posible caída de esa tecnología contra sus necesidades.
Si tiene que hacer este tipo de preguntas, existe una gran posibilidad de que el factor limitante en términos de rendimiento de cualquier juego que realice sea usted y no las elecciones tecnológicas en sí. En consecuencia, la opción óptima es la que le da más poder, en otras palabras, la tecnología o el idioma que ya conoce mejor.
En cuanto al bajo rendimiento del juego Game Maker que jugaste, eso podría atribuirse a una serie de factores, algunos de los cuales son específicos de ese juego, como un código pobre específico que puede haber sido escrito a través de las herramientas de Game Maker o los lenguajes de secuencias de comandos. No es necesariamente una falta del propio Game Maker.
fuente
Si tuviera que adivinar que la razón más importante por la que el juego que jugaste es tan lento no es que sea un juego para creadores de juegos, sino que ese creador de juegos se comercializa específicamente para los no programadores. Debido a que no tienes programadores haciendo juegos, es muy probable que el juego en cuestión use algunos algoritmos muy ineficientes que hacen que se ejecute lentamente.
Como en la mayoría de los casos, la velocidad del lenguaje solo afectará ligeramente el rendimiento general del programa. Cuando la gente dice "omg, este idioma es un 50% más lento que este otro idioma" y la velocidad sigue siendo estúpidamente rápida en ambos casos, entonces encontrará poca o ninguna diferencia apreciable para el usuario final.
fuente
Game Maker es una buena herramienta para principiantes. Pero recomiendo pasar a programas más grandes y mejores si tienes experiencia previa en programación. Usé GameMaker para un curso universitario de desarrollo de juegos en 2D, tiene un sistema agradable y fácil de arrastrar y soltar. Sin embargo, el problema es que la función de arrastrar y soltar del programa no utiliza los comandos más eficientes (o lógicos). Además, arrastrar y soltar no admite muchos de los comandos avanzados que el programa es capaz de ejecutar, por lo que el programador debe ser creativo con él o aprender a codificar. Sin embargo, si aprende a usar el código de GameMaker, podrá evitarlo con relativa facilidad.
Pero, puede ser difícil aprender un código para un solo programa con los horarios ocupados que todos tenemos, lo cual es muy probable por qué experimentó el lento rendimiento.
Pero como dijo Kort Pleco anteriormente, la mayoría de las velocidades de lenguaje no son notablemente diferentes. Todo depende de cómo se escriba y ejecute el código. Muchas redundancias pueden hacerlo considerablemente más lento, lo que normalmente se debe a la falta de experiencia en codificación.
fuente
Para el juego en el que estoy trabajando, utilizo un algoritmo de diamante cuadrado para crear terreno al azar al comenzar un nuevo juego. Para decidir entre usar Python con Pygame para el proyecto o GameMaker, implementé el generador de terreno en ambos. Pygame se desempeñó un poco más rápido, pero la diferencia fue insignificante. Finalmente, elegí GameMaker porque puedo trabajar mucho más rápido en él.
fuente
La respuesta aceptada es acertada pero solo quería agregar mis 2 centavos como usuario de GM durante casi 8 años.
GM tuvo muchos problemas con las optimizaciones, por lo que existe una preocupación legítima. Hay un grupo de métodos obsoletos * _variable_exists? que solía existir en Gamemaker pre-studio. Debido a este método de conveniencia, se aprovechó en casi todas las bibliotecas y extensiones imaginables que se escribieron para GM. Resulta que estos métodos eran terriblemente caros y causaban un problema importante al ejecutar juegos a gran escala.
Por lo tanto, hay muchos casos en los que GM puede ser realmente malo, pero con el conocimiento adecuado y el uso cuidadoso, no es menos legítimo que cualquier otro método (unity2d, pygame, etc.). Solo haz juegos y diviértete.
fuente