Будет ли игра 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-материалов.


Я

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.