2011-01-02 18 views
7

Me gustaría probar suerte en algún desarrollo de juegos de PC. Sigo escuchando que Python es lento en comparación con C++. ¿Es esto algo por lo que debería estar preocupado?¿Qué tan "lento" es Python para el desarrollo de juegos?

Estoy más familiarizado con Python que C++. Si estoy buscando hacer algunos juegos, ¿debería tomarme el tiempo para aprender C++ o simplemente seguir con Python?

+5

¿Qué tipo de juego? ¿Es algo simple como sudoku o un FPS en 3D? –

+1

Además, tenga en cuenta que una serie de juegos * utilizan * python (u otro lenguaje de "secuencias de comandos", como LUA) debajo. Es decir, los pesados ​​gráficos/renderización/física (donde el procesamiento de la CPU/GPU realmente importa) pueden realizarse en un motor escrito en C/C++, mientras que la lógica/mecánica del juego puede (y con frecuencia) transferirse. –

Respuesta

5

Elebenty-seven.

No, realmente, es lo suficientemente rápido para la mayoría de las cosas, y puede caer a C cuando realmente se necesita velocidad. Perfil dos veces, optimice una vez.

+2

Error ortográfico - eso es "Elebenty-seven" – Steve314

12

Hay una diferencia en ser lento para el desarrollo y lento en el tiempo de ejecución. Tenga cuidado de no confundir a los dos.

Muchos juegos pasan la mayor parte de su tiempo esperando la entrada del usuario o esperando a que un temporizador marque. En estos casos, la velocidad del tiempo de ejecución generalmente es de poca importancia y más importante es la velocidad de desarrollo: llevar tu juego al mercado lo más rápido posible y lo más barato posible, y hacer que el juego sea lo mejor posible con tu presupuesto. Para este tipo de juegos, los idiomas de alto nivel son una elección adecuada.

Para los juegos que requieren un alto rendimiento, generalmente el motor está escrito en un lenguaje como C++, pero la secuencia de comandos todavía se puede hacer en un lenguaje de alto nivel. Python no es la única opción. Lua es probablemente la opción más popular para un lenguaje de scripting en juegos.

+0

aunque estoy de acuerdo contigo, simplemente leer "Pontificia Universidad Católica de Río de Janeiro en Brasil" me está haciendo no recomendar nunca esto, pero esto: ¡pitón sin apilamiento! – StefanNch

+0

@StefanNch Lo que sea que estés bebiendo ... Quiero un poco de –

+0

@Steve amen ... hic! – StefanNch

4

El tipo de juego es muy importante. Los juegos de alto rendimiento como los PC de gran nombre o los juegos de consola son casi exclusivamente del dominio de C++.

Los juegos casuales se pueden escribir en casi cualquier idioma, incluidos idiomas más lentos como Python.

Si eres un desarrollador de tipo garaje que se moja las manos con un simple desarrollo de juegos por primera vez, Python sería más que suficiente. Sin embargo, si tienes la ambición de trabajar para un estudio de desarrollo de juegos, definitivamente recomendaría aprender C++.

2

Muchos, si no la mayoría de los juegos comerciales de alta gama en estos días incluyen algún tipo de motor de scripting para la lógica del juego. Las decisiones lógicas del juego, en su mayor parte, no son particularmente sensibles al rendimiento en la forma en que, p. el motor de renderizado es

BTW - No estoy afirmando ningún conocimiento interno sobre el desarrollo de juegos; esto es bastante conocido fuera de la industria. Algunos editores de juegos incluso han permitido que los usuarios accedan a material de scripting y otras herramientas para el modelado de juegos, durante años.

Si encuentra un motor de juego envuelto para ser utilizado en Python, tendrá los mismos principios básicos. Escribe la lógica del juego en Python, y probablemente estarás bien.

PyGame es básicamente compatible con SDL para Python, y es compatible con juegos 2D en su mayor parte (aunque OpenGL puede usarse para 3D en SDL, no está seguro para PyGame).

Es un buen punto de partida. Es posible que tengas problemas de rendimiento al administrar los objetos de tu juego y ejecutar tu loop de blit, ya que SDL solo maneja cosas de gráficos muy básicos, pero deberías encontrar que está bien para la mayoría de las cosas.

Como lo implica Ignacio: preocúpate por los problemas de rendimiento cuando sabes que tienes problemas de rendimiento, no antes.Algunos problemas de rendimiento son predecibles de antemano, pero si no está escribiendo el motor del juego real en Python, debería estar bien; no caiga en la trampa de la optimización prematura, IOW.

-4

C++ es mucho más fácil para la orientación del objeto. Cuando haces cosas, es más fácil hacer un seguimiento de todo, porque la mayoría de los IDE para C++ están más basados ​​en proyectos, ya que IDLE está más basado en archivos individuales.

La conclusión es que para el desarrollo del juego, utiliza aquello con lo que te sientas cómodo. Quiero decir, el desarrollo del juego se trata de lo que quieres hacer, no de lo que sería mejor, porque mejor == lo que quieres.

Cuestiones relacionadas