Akankah game Python berjalan di berbagai platform?

10

Saya punya rencana untuk menulis game dengan Python dan mungkin beberapa SQL. Saya khawatir tentang seberapa fleksibelnya program saya ketika saya menyelesaikannya, idealnya saya ingin dijalankan di Windows, Mac, Android, dan iPhone ... namun saya merasa ponsel akan terlarang untuk ini semacam itu. Bagaimana saya bisa menulis program yang berjalan di beberapa platform? Apakah ini bahkan layak untuk seorang programmer pemula?

Merambat
sumber

Jawaban:

12

Python cukup portabel dalam dirinya sendiri (berjalan pada banyak platform), tetapi Anda harus mempertimbangkan hal-hal berikut:

  • Apa batasan dari platform yang Anda targetkan? Apakah Anda ingin menjual melalui toko seluler?

    Misalnya, pasar WP7 hanya memungkinkan untuk menjual aplikasi yang ditulis dalam kode terkelola (.NET). AppStore juga cukup dikunci dan hanya memungkinkan aplikasi asli yang ditulis dalam Objective-C. Android memungkinkan menjalankan kode Java dan asli melalui NDK. Orang-orang telah mengembangkan solusi untuk memungkinkan menjalankan, misalnya, JavaScript di aplikasi asli di iOS atau mengonversi aplikasi Web ke aplikasi asli

  • Bagaimana portables perpustakaan yang ingin Anda gunakan?

    Berikut ini contohnya: Cocos2D adalah pustaka Python dengan port Objective-C. Anda dapat membangun game Anda di Python untuk platform desktop dan menulis ulang di Objective-C, menjaga sebagian besar struktur berkat perpustakaan. Tetapi kemudian Anda hanya memiliki dukungan untuk desktop + iOS.

Secara keseluruhan, Python tidak cocok untuk platform seluler, karena kurangnya dukungan. Berikut adalah tiga alternatif yang bisa diterapkan:

  • XNA dibuat untuk membuat game untuk Windows, Xbox 360 dan Windows Phone 7. Ada dua proyek ( MonoGame dan ExEn ) yang memungkinkan untuk mengubah game-game itu, dengan hampir tanpa modifikasi, menjadi aplikasi iOS (melalui MonoTouch), aplikasi Android (melalui MonoDroid) ). MonoTouch dan MonoDroid memiliki biaya lisensi .

  • Unity sangat portabel dan memungkinkan penargetan hampir semua platform (meskipun belum ada dukungan Linux )

    Ini gratis untuk permainan desktop. Mereka memiliki versi Pro tetapi untuk sebagian besar permainan Anda bisa melakukannya tanpa itu. Ada grafik yang membandingkan berbagai edisi untuk setiap platform: http://unity3d.com/unity/licenses

  • Aplikasi web (disebut HTML5) dengan Canvas 2D API atau WebGL dijalankan di browser dan smartphone terbaru. Dukungan hanya akan menjadi lebih baik seiring waktu. Ada banyak mesin seperti ImpactJS atau Three.JS yang disebutkan di atas untuk membuat barang 3D.

Elisée
sumber
ingin menambahkan bahwa Unity mendukung 3 bahasa: C #, Javascript dan Boo yang sangat mirip dalam sintaksisnya dengan Python
George Profenza
3

PyGame mengatakan ini di halaman Tentang mereka :

Benar-benar portabel. Mendukung Linux (pygame hadir dengan sebagian besar distribusi linux aliran utama), Windows (95, 98, ME, 2000, XP, Vista, Windows 64-bit, dll), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX, dan QNX. Kode ini berisi dukungan untuk AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, OS RISC, SymbianOS, dan OS / 2, tetapi ini tidak didukung secara resmi. Anda dapat menggunakannya di perangkat genggam, konsol game, dan komputer One Laptop Per Child (OLPC).

Python sendiri sangat portabel, dan cukup mudah untuk port ke platform baru (dengan asumsi seseorang belum melakukannya untuk Anda). Berbagai hal akan menjadi "menarik" setiap kali Anda perlu mengakses beberapa bit khusus platform, yang merupakan tempat PyGame dapat membantu Anda, jika itu mendukung platform yang Anda lihat, atau Anda dapat porting.

Masalah semi-terkait adalah beberapa metode distribusi (toko aplikasi) mungkin tidak mengizinkan aplikasi yang dapat menjalankan kode pihak ketiga yang tidak dikenal. Anda harus mengunci Python dan skripnya sehingga mereka tidak dapat mengakses apa pun di luar aplikasi, dan mungkin mencegahnya menjalankan skrip yang tidak Anda sediakan sebagai bagian dari permainan.

Chrish
sumber
1

Saya tidak yakin tentang Android, tetapi Python tidak dapat berjalan di iPhone. Saat ini alat terbaik untuk menyebarkan game di Windows, Mac, Android, dan iPhone adalah menggunakan HTML5 atau Unity3D. Ada banyak alat lain yang kurang dikenal sehingga kurang dijamin, seperti Ideaworks Gamestudio.

jhocking
sumber