Un jeu Python fonctionnerait-il sur plusieurs plateformes?

10

J'ai l'intention d'écrire un jeu en Python et probablement du SQL. Je suis préoccupé par la polyvalence de mon programme lorsque je le terminerai, idéalement, je voudrais qu'il fonctionne sur Windows, Mac, Android et iPhone ... mais j'ai le sentiment que les téléphones seraient interdits pour cela genre de chose. Comment pourrais-je écrire un programme qui s'exécute sur plusieurs plateformes? Est-ce même possible pour un programmeur débutant?

Vigne
la source

Réponses:

12

Python est assez portable en soi (fonctionne sur de nombreuses plates-formes), mais vous devez prendre en compte les éléments suivants:

  • Quelles sont les limites de la plateforme que vous ciblez? Voulez-vous vendre via une boutique mobile?

    Par exemple, le marché WP7 permet uniquement de vendre des applications écrites en code managé (.NET). L'AppStore est également assez verrouillé et n'autorise que les applications natives écrites en Objective-C. Android permet d'exécuter à la fois Java et du code natif via le NDK. Les gens ont développé des solutions de contournement pour permettre d'exécuter par exemple JavaScript dans des applications natives dans iOS ou de convertir des applications Web en applications natives

  • Comment portables sont les bibliothèques que vous souhaitez utiliser?

    Voici un exemple: Cocos2D est une bibliothèque Python avec un port Objective-C. Vous pouvez construire votre jeu en Python pour les plates-formes de bureau et le réécrire en Objective-C, en conservant la majeure partie de la structure grâce à la bibliothèque. Mais vous ne disposez que de la prise en charge de bureau + iOS.

Dans l'ensemble, Python n'est pas un ajustement facile pour les plates-formes mobiles, en raison du manque de support. Voici trois alternatives réalisables:

  • XNA a été créé pour créer des jeux pour Windows, Xbox 360 et Windows Phone 7. Il existe deux projets ( MonoGame et ExEn ) qui permettent de transformer ces jeux, sans presque aucune modification, en applications iOS (via MonoTouch), applications Android (via MonoDroid ). MonoTouch et MonoDroid ontcependant des coûts de licence .

  • Unity est très portable et permet de cibler presque toutes les plateformes (bien qu'il n'y ait pas encore de support Linux )

    C'est gratuit pour les jeux de bureau. Ils ont une version Pro mais pour la plupart des jeux, vous pouvez très bien vous en passer. Il existe un tableau comparant les différentes éditions de chaque plateforme: http://unity3d.com/unity/licenses

  • Les applications Web (dites HTML5) avec l'API Canvas 2D ou WebGL s'exécutent sur les navigateurs et smartphones récents. Le support ne fera que s'améliorer avec le temps. Il existe de nombreux moteurs comme ImpactJS ou Three.JS susmentionnés pour créer des trucs 3D.

Elisée
la source
aimerait ajouter que Unity prend en charge 3 langages: C #, Javascript et Boo qui est très similaire en syntaxe à Python
George Profenza
3

PyGame dit ceci dans leur page À propos :

Vraiment portable. Prend en charge Linux (pygame est fourni avec la plupart des distributions linux de flux principal), Windows (95, 98, ME, 2000, XP, Vista, Windows 64 bits, etc.), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX et QNX. Le code contient la prise en charge d'AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS et OS / 2, mais ceux-ci ne sont pas officiellement pris en charge. Vous pouvez l'utiliser sur des appareils portables, des consoles de jeux et l'ordinateur OLPC (One Laptop Per Child).

Python lui-même est extrêmement portable et assez facile à porter sur de nouvelles plateformes (en supposant que quelqu'un ne l'a pas déjà fait pour vous). Les choses deviendront "intéressantes" chaque fois que vous aurez besoin d'accéder à des bits spécifiques à la plate-forme, c'est là que PyGame peut vous aider, s'il prend en charge les plates-formes que vous regardez ou si vous pouvez le porter.

Un problème semi-lié est que certaines méthodes de distribution (magasins d'applications) peuvent ne pas autoriser les applications qui peuvent exécuter du code tiers inconnu. Vous devrez verrouiller votre Python et ses scripts afin qu'ils ne puissent accéder à rien en dehors de l'application, et éventuellement l'empêcher d'exécuter des scripts que vous n'avez pas fournis dans le cadre du jeu.

chrish
la source
1

Je ne suis pas sûr d'Android, mais Python ne peut pas fonctionner sur iPhone. Actuellement, les meilleurs outils pour déployer un jeu sur Windows, Mac, Android et iPhone seraient d'utiliser HTML5 ou Unity3D. Il existe un tas d'autres outils moins connus et donc moins garantis, comme Ideaworks Gamestudio.

jhocking
la source