Würde ein Python-Spiel auf mehreren Plattformen laufen?

10

Ich habe vor, ein Spiel in Python und wahrscheinlich etwas SQL zu schreiben. Ich mache mir Sorgen darüber, wie vielseitig mein Programm sein wird, wenn ich es fertigstelle. Idealerweise möchte ich, dass es unter Windows, Mac, Android und iPhone ausgeführt wird. Ich habe jedoch das Gefühl, dass die Telefone dafür gesperrt sind so etwas. Wie würde ich ein Programm schreiben, das auf mehreren Plattformen ausgeführt wird? Ist das für einen Anfänger überhaupt machbar?

Ranke
quelle

Antworten:

12

Python ist an sich ziemlich portabel (läuft auf vielen Plattformen), aber Sie müssen Folgendes berücksichtigen:

  • Was sind die Einschränkungen der Plattform, auf die Sie abzielen? Möchten Sie über ein mobiles Geschäft verkaufen?

    Auf dem WP7-Marktplatz können beispielsweise nur in Managed Code (.NET) geschriebene Apps verkauft werden. Der AppStore ist ebenfalls ziemlich gesperrt und erlaubt nur native Anwendungen, die in Objective-C geschrieben wurden. Android ermöglicht das Ausführen von Java- und nativem Code über das NDK. Die Benutzer haben Problemumgehungen entwickelt, mit denen beispielsweise JavaScript in nativen Apps unter iOS ausgeführt oder Webanwendungen in native Apps konvertiert werden können

  • Wie portabel sind die Bibliotheken, die Sie verwenden möchten?

    Hier ein Beispiel: Cocos2D ist eine Python-Bibliothek mit einem Objective-C-Port. Sie können Ihr Spiel in Python für Desktop-Plattformen erstellen und in Objective-C neu schreiben, wobei der größte Teil der Struktur dank der Bibliothek erhalten bleibt. Aber dann haben Sie nur Unterstützung für Desktop + iOS.

Insgesamt ist Python aufgrund mangelnder Unterstützung nicht einfach für mobile Plattformen geeignet. Hier sind drei praktikable Alternativen:

  • XNA wurde entwickelt, um Spiele für Windows, Xbox 360 und Windows Phone 7 zu erstellen . Es gibt zwei Projekte ( MonoGame und ExEn ), mit denen diese Spiele fast ohne Änderungen in iOS-Apps (über MonoTouch) und Android-Apps (über MonoDroid) umgewandelt werden können ). MonoTouch und MonoDroid haben jedoch Lizenzkosten .

  • Unity ist sehr portabel und ermöglicht das Targeting fast aller Plattformen (obwohl es noch keine Linux-Unterstützung gibt ).

    Es ist kostenlos für Desktop-Spiele. Sie haben eine Pro-Version, aber für die meisten Spiele können Sie ohne sie gut auskommen. Es gibt eine Tabelle, in der die verschiedenen Editionen für jede Plattform verglichen werden: http://unity3d.com/unity/licenses

  • Webanwendungen (sogenanntes HTML5) mit der Canvas 2D-API oder WebGL werden auf aktuellen Browsern und Smartphones ausgeführt. Der Support wird mit der Zeit nur besser. Es gibt viele Engines wie die oben genannten ImpactJS oder Three.JS für die Herstellung von 3D-Sachen.

Elisée
quelle
Ich
3

PyGame sagt dies auf ihrer Info- Seite:

Wirklich tragbar. Unterstützt Linux (Pygame wird mit den meisten Linux-Distributionen geliefert), Windows (95, 98, ME, 2000, XP, Vista, 64-Bit-Windows usw.), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX und QNX. Der Code enthält Unterstützung für AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS und OS / 2, diese werden jedoch nicht offiziell unterstützt. Sie können es auf Handgeräten, Spielekonsolen und dem OLPC-Computer (One Laptop Per Child) verwenden.

Python selbst ist extrem portabel und einfach genug, um auf neue Plattformen zu portieren (vorausgesetzt, jemand hat es noch nicht für Sie getan). Die Dinge werden "interessant", wenn Sie auf einige plattformspezifische Bits zugreifen müssen. Hier kann PyGame Ihnen helfen, wenn es die Plattformen unterstützt, die Sie sich ansehen, oder Sie können es portieren.

Ein halb verwandtes Problem besteht darin, dass einige Verteilungsmethoden (App Stores) möglicherweise keine Anwendungen zulassen, in denen unbekannter Code von Drittanbietern ausgeführt werden kann. Sie müssen Ihr Python und seine Skripte sperren, damit sie nicht auf etwas außerhalb der Anwendung zugreifen können, und möglicherweise verhindern, dass Skripte ausgeführt werden, die Sie nicht als Teil des Spiels bereitgestellt haben.

chrish
quelle
1

Ich bin mir bei Android nicht sicher, aber Python kann nicht auf dem iPhone ausgeführt werden. Derzeit ist die Verwendung von HTML5 oder Unity3D das beste Tool für die Bereitstellung eines Spiels unter Windows, Mac, Android und iPhone. Es gibt eine Reihe anderer Tools, die weniger bekannt und daher weniger bekannt sind, wie Ideaworks Gamestudio.

jhocking
quelle