Чи буде гра Python працювати на декількох платформах?


10

У мене є плани написати гру в Python і, мабуть, якийсь SQL. Я стурбований тим, наскільки універсальною буде моя програма, коли я закінчу її, в ідеалі хотілося б, щоб вона працювала на Windows, Mac, Android та iPhone ... однак у мене є відчуття, що телефони будуть для цього заборонені. щось таке. Як би я міг писати програму, яка працює на декількох платформах? Це навіть можливо для початківця програміста?

Відповіді:


12

Python сам по собі досить портативний (працює на багатьох платформах), але вам потрібно врахувати наступне:

  • Які обмеження платформи, на яку ви орієнтовані? Ви хочете продати через мобільний магазин?

    Наприклад, ринок WP7 дозволяє продавати лише програми, написані в керованому коді (.NET). AppStore також досить заблокований і дозволяє лише натиснуті програми, написані на Objective-C. Android дозволяє запускати як Java, так і рідний код через NDK. Люди розробили обхідні шляхи, щоб дозволити запускати, наприклад, JavaScript у вбудованих додатках в iOS або перетворювати веб-додатки в рідні

  • Наскільки портативними є бібліотеки, які ви хочете використовувати?

    Ось приклад: Cocos2D - бібліотека Python з портом Objective-C. Ви можете побудувати свою гру в Python для платформ на робочому столі та переписати її в Objective-C, зберігаючи більшу частину структури завдяки бібліотеці. Але тоді у вас є лише підтримка для робочого столу + iOS.

Загалом, Python не є легким для мобільних платформ через відсутність підтримки. Ось три можливі альтернативи:

  • XNA була створена для створення ігор для Windows, Xbox 360 та Windows Phone 7. Є два проекти ( MonoGame та ExEn ), які дозволяють перетворити ці ігри, майже не змінюючи , на додатки для iOS (через MonoTouch), додатки для Android (через MonoDroid ). Хоча MonoTouch і MonoDroid мають ліцензійні витрати .

  • Unity дуже портативний і дозволяє орієнтуватися майже на всі платформи (хоча ще немає підтримки Linux )

    Це безкоштовно для настільних ігор. У них є версія Pro, але для більшості ігор можна обійтися просто чудово. Існує діаграма, що порівнює різні видання для кожної платформи: http://unity3d.com/unity/licenses

  • Веб-додатки (так званий HTML5) із програмою Canvas 2D API або WebGL запускаються в останніх браузерах та смартфонах. Підтримка покращиться лише з часом. Існує багато двигунів, як вищезгаданий ImpactJS або Three.JS для виготовлення 3D-матеріалів.


хотілося б додати, що Unity підтримує 3 мови: C #, Javascript та Boo, що синтаксично дуже схоже на Python
George Profenza

3

PyGame говорить про це на своїй сторінці About :

Воістину портативний. Підтримує Linux (pygame поставляється з більшістю дистрибутивів Linux, основний потік), Windows (95, 98, ME, 2000, XP, Vista, 64-розрядна Windows тощо), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX і QNX. Код містить підтримку AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS та OS / 2, але вони офіційно не підтримуються. Ви можете використовувати його на портативних пристроях, ігрових консолях та на комп'ютері One Laptop Per Child (OLPC).

Сам Python надзвичайно портативний і досить простий для порту на нові платформи (якщо припустити, що хтось цього ще не зробив для вас). Речі ставатимуть "цікавими" щоразу, коли вам потрібно отримати доступ до певних біт платформи, саме тут PyGame може допомогти вам, якщо він підтримує платформи, на які ви дивитесь, або ви можете їх передати.

Половина пов'язана проблема полягає в тому, що деякі методи розповсюдження (магазини додатків) можуть не дозволяти програмам, які можуть запускати невідомий код сторонніх розробників. Вам доведеться заблокувати ваш Python та його сценарії, щоб вони не мали доступу до нічого поза програмою, і, можливо, не дозволяли йому запускати сценарії, які ви не надали в рамках гри.


1

Я не впевнений в Android, але Python не може працювати на iPhone. В даний час найкращими інструментами для розгортання гри в Windows, Mac, Android та iPhone було б використання HTML5 або Unity3D. Існує маса інших інструментів, які менш відомі і, таким чином, менш вагомі, наприклад Ideaworks Gamestudio.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.