¿Funcionaría un juego de Python en múltiples plataformas?

10

Tengo planes de escribir un juego en Python y probablemente algo de SQL. Me preocupa cuán versátil será mi programa cuando lo termine, idealmente me gustaría que se ejecute en Windows, Mac, Android y iPhone ... sin embargo, tengo la sensación de que los teléfonos no estarán permitidos para esto. tipo de cosa. ¿Cómo haría para escribir un programa que se ejecute en múltiples plataformas? ¿Es esto incluso factible para un programador principiante?

Vino
fuente

Respuestas:

12

Python es bastante portátil en sí mismo (se ejecuta en muchas plataformas), pero debe tener en cuenta lo siguiente:

  • ¿Cuáles son las limitaciones de la plataforma a la que apunta? ¿Quieres vender a través de una tienda móvil?

    Por ejemplo, el mercado WP7 solo permite vender aplicaciones escritas en código administrado (.NET). AppStore también está bastante bloqueado y solo permite aplicaciones nativas escritas en Objective-C. Android permite ejecutar Java y código nativo a través del NDK. La gente ha desarrollado soluciones alternativas para permitir ejecutar, por ejemplo, JavaScript en aplicaciones nativas en iOS o convertir aplicaciones web en aplicaciones nativas

  • ¿Qué tan portátiles son las bibliotecas que desea usar?

    Aquí hay un ejemplo: Cocos2D es una biblioteca de Python con un puerto Objective-C. Puedes construir tu juego en Python para plataformas de escritorio y reescribirlo en Objective-C, manteniendo la mayor parte de la estructura gracias a la biblioteca. Pero entonces solo tienes soporte para escritorio + iOS.

En general, Python no se ajusta fácilmente a las plataformas móviles, debido a la falta de soporte. Aquí hay tres alternativas viables:

  • XNA fue creado para hacer juegos para Windows, Xbox 360 y Windows Phone 7. Hay dos proyectos ( MonoGame y ExEn ) que permiten convertir esos juegos, casi sin modificaciones, en aplicaciones iOS (a través de MonoTouch), aplicaciones Android (a través de MonoDroid ) Sinembargo,MonoTouch y MonoDroid tienen costos de licencia .

  • Unity es muy portátil y permite apuntar a casi todas las plataformas (aunque todavía no hay soporte para Linux )

    Es gratis para juegos de escritorio. Tienen una versión Pro, pero para la mayoría de los juegos puedes hacerlo sin ella. Hay una tabla que compara las diferentes ediciones para cada plataforma: http://unity3d.com/unity/licenses

  • Las aplicaciones web (llamadas HTML5) con Canvas 2D API o WebGL se ejecutan en navegadores y teléfonos inteligentes recientes. El soporte solo mejorará con el tiempo. Hay muchos motores como el mencionado ImpactJS o Three.JS para hacer cosas en 3D.

Elisée
fuente
quisiera agregar que Unity admite 3 idiomas: C #, Javascript y Boo, que es muy similar en sintaxis a Python
George Profenza
3

PyGame dice esto en su página Acerca de :

Realmente portátil. Admite Linux (pygame viene con la mayoría de las distribuciones principales de Linux), Windows (95, 98, ME, 2000, XP, Vista, Windows de 64 bits, etc.), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX y QNX. El código contiene soporte para AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS y OS / 2, pero estos no son oficialmente compatibles. Puede usarlo en dispositivos de mano, consolas de juegos y la computadora One Laptop Per Child (OLPC).

Python en sí es extremadamente portátil y lo suficientemente fácil de portar a nuevas plataformas (suponiendo que alguien no lo haya hecho por usted). Las cosas se volverán "interesantes" cada vez que necesite acceder a algunos bits específicos de la plataforma, que es donde PyGame puede ayudarlo, si es compatible con las plataformas que está viendo, o puede portarlo.

Un problema semi relacionado es que algunos métodos de distribución (tiendas de aplicaciones) podrían no permitir aplicaciones que puedan ejecutar código desconocido de terceros. Tendrá que bloquear su Python y sus scripts para que no puedan acceder a nada fuera de la aplicación, y posiblemente evitar que ejecute scripts que no proporcionó como parte del juego.

chrish
fuente
1

No estoy seguro acerca de Android, pero Python no puede ejecutarse en iPhone. Actualmente, las mejores herramientas para implementar un juego en Windows, Mac, Android y iPhone serían usar HTML5 o Unity3D. Hay un montón de otras herramientas que son menos conocidas y, por lo tanto, menos aprobadas, como Ideaworks Gamestudio.

jhocking
fuente