Un gioco Python funzionerebbe su più piattaforme?


10

Ho in programma di scrivere un gioco in Python e probabilmente un po 'di SQL. Sono preoccupato per quanto versatile sarà il mio programma quando lo finirò, idealmente mi piacerebbe che funzionasse su Windows, Mac, Android e iPhone ... comunque ho la sensazione che i telefoni sarebbero vietati per questo genere di cose. Come potrei scrivere un programma che gira su più piattaforme? È fattibile anche per un programmatore principiante?

Risposte:


12

Python è abbastanza portatile di per sé (funziona su molte piattaforme), ma devi tenere conto di quanto segue:

  • Quali sono i limiti della piattaforma di destinazione? Vuoi vendere attraverso un negozio mobile?

    Ad esempio, il marketplace WP7 consente solo di vendere app scritte in codice gestito (.NET). Anche l'AppStore è piuttosto bloccato e consente solo l'applicazione nativa scritta in Objective-C. Android consente di eseguire sia Java che il codice nativo tramite NDK. Le persone hanno sviluppato soluzioni alternative per consentire l'esecuzione, ad esempio, di JavaScript in app native in iOS o la conversione di app Web in app native

  • Quanto sono portatili le librerie che vuoi usare?

    Ecco un esempio: Cocos2D è una libreria Python con una porta Objective-C. Puoi creare il tuo gioco in Python per piattaforme desktop e riscriverlo in Objective-C, mantenendo gran parte della struttura grazie alla libreria. Ma poi hai solo il supporto per desktop + iOS.

Nel complesso, Python non si adatta facilmente alle piattaforme mobili, a causa della mancanza di supporto. Ecco tre alternative praticabili:

  • XNA è stato creato per creare giochi per Windows, Xbox 360 e Windows Phone 7. Esistono due progetti ( MonoGame ed ExEn ) che consentono di trasformare quei giochi, con quasi nessuna modifica, in app iOS (tramite MonoTouch), app Android (tramite MonoDroid ). Tuttavia, MonoTouch e MonoDroid hanno costi di licenza .

  • Unity è molto portatile e consente il targeting di quasi tutte le piattaforme (anche se non è ancora supportato Linux )

    È gratuito per i giochi desktop. Hanno una versione Pro ma per la maggior parte dei giochi puoi farlo senza di essa. C'è un grafico che confronta le varie edizioni per ciascuna piattaforma: http://unity3d.com/unity/licenses

  • Le applicazioni Web (il cosiddetto HTML5) con l'API 2D Canvas o WebGL vengono eseguite su browser e smartphone recenti. Il supporto migliorerà nel tempo. Ci sono molti motori come il già citato ImpactJS o Three.JS per realizzare oggetti 3D.


vorrei aggiungere che Unity supporta 3 lingue: C #, Javascript e Boo che è molto simile nella sintassi a Python
George Profenza,

3

PyGame dice questo nella loro pagina Informazioni :

Veramente portatile. Supporta Linux (pygame viene fornito con la maggior parte delle distribuzioni linux del flusso principale), Windows (95, 98, ME, 2000, XP, Vista, Windows a 64 bit, ecc.), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX e QNX. Il codice contiene il supporto per AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS e OS / 2, ma questi non sono ufficialmente supportati. Puoi usarlo su dispositivi portatili, console di gioco e sul computer One Laptop Per Child (OLPC).

Python stesso è estremamente portatile e abbastanza facile da portare su nuove piattaforme (supponendo che qualcuno non l'abbia già fatto per te). Le cose diventeranno "interessanti" ogni volta che è necessario accedere ad alcuni bit specifici della piattaforma, che è dove PyGame può aiutarti, se supporta le piattaforme che stai guardando o puoi portarlo.

Un problema semi-correlato è che alcuni metodi di distribuzione (app store) potrebbero non consentire applicazioni in grado di eseguire codice di terze parti sconosciuto. Dovrai bloccare Python e i suoi script in modo che non possano accedere a nulla al di fuori dell'applicazione e possibilmente impedirgli di eseguire script che non hai fornito come parte del gioco.


1

Non sono sicuro di Android, ma Python non può funzionare su iPhone. Attualmente i migliori strumenti per distribuire un gioco su Windows, Mac, Android e iPhone sarebbero usare HTML5 o Unity3D. Ci sono un sacco di altri strumenti che sono meno conosciuti e quindi meno garantiti, come Ideaworks Gamestudio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.