Czy gra Python działałaby na wielu platformach?

10

Planuję napisać grę w języku Python i prawdopodobnie trochę SQL. Martwię się o to, jak wszechstronny będzie mój program, kiedy go ukończę, idealnie chciałbym, aby działał na Windowsie, Macu, Androidzie i iPhonie ... mam jednak wrażenie, że telefony byłyby dla niego niedostępne coś w tym rodzaju. Jak mam napisać program, który działa na wielu platformach? Czy jest to w ogóle możliwe dla początkującego programisty?

Wino
źródło

Odpowiedzi:

12

Python sam w sobie jest dość przenośny (działa na wielu platformach), ale musisz wziąć pod uwagę następujące kwestie:

  • Jakie są ograniczenia platformy, na którą celujesz? Czy chcesz sprzedawać w sklepie mobilnym?

    Na przykład rynek WP7 pozwala sprzedawać tylko aplikacje napisane w kodzie zarządzanym (.NET). AppStore jest również dość zamknięty i zezwala tylko na natywną aplikację napisaną w Objective-C. Android umożliwia uruchamianie zarówno kodu Java, jak i kodu macierzystego za pośrednictwem NDK. Ludzie opracowali obejścia, które pozwalają na przykład uruchamiać JavaScript w natywnych aplikacjach na iOS lub konwertując aplikacje internetowe na aplikacje natywne

  • Jak przenośne są biblioteki, których chcesz używać?

    Oto przykład: Cocos2D to biblioteka Pythona z portem Objective-C. Możesz zbudować grę w Pythonie na platformy komputerowe i przepisać ją w Objective-C, zachowując większość struktury dzięki bibliotece. Ale wtedy masz wsparcie tylko dla komputerów stacjonarnych + iOS.

Ogólnie rzecz biorąc, Python nie jest łatwym rozwiązaniem dla platform mobilnych, z powodu braku wsparcia. Oto trzy wykonalne alternatywy:

  • XNA został stworzony do tworzenia gier na Windows, Xbox 360 i Windows Phone 7. Istnieją dwa projekty ( MonoGame i ExEn ), które pozwalają na przekształcenie tych gier, prawie bez modyfikacji, w aplikacje na iOS (przez MonoTouch), aplikacje na Androida (przez MonoDroid) ). MonoTouch i MonoDroid mająjednak koszty licencji .

  • Unity jest bardzo przenośny i pozwala na atak na prawie wszystkie platformy (choć nie ma jeszcze wsparcia dla Linuksa )

    Jest bezpłatny dla gier komputerowych. Mają wersję Pro, ale w przypadku większości gier można sobie bez niej poradzić. Istnieje tabela porównująca różne wersje dla każdej platformy: http://unity3d.com/unity/licenses

  • Aplikacje internetowe (tzw. HTML5) z interfejsem Canvas 2D API lub WebGL działają na najnowszych przeglądarkach i smartfonach. Wsparcie będzie z czasem coraz lepsze. Istnieje wiele silników, takich jak wspomniany ImpactJS lub Three.JS do tworzenia materiałów 3D.

Elisée
źródło
chciałbym dodać, że Unity obsługuje 3 języki: C #, JavaScript i Boo, który jest bardzo podobny w składni do Pythona
George Profenza,
3

PyGame mówi to na swojej stronie About :

Naprawdę przenośny.Obsługuje Linux (pygame jest dostarczany z większością głównych dystrybucji Linuksa), Windows (95, 98, ME, 2000, XP, Vista, 64-bitowy Windows itp.), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX i QNX. Kod zawiera obsługę systemów AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS i OS / 2, ale nie są one oficjalnie obsługiwane. Możesz go używać na urządzeniach przenośnych, konsolach do gier i komputerze OLED (One Laptop Per Child).

Sam Python jest niezwykle przenośny i wystarczająco łatwy do przeniesienia na nowe platformy (zakładając, że ktoś jeszcze tego nie zrobił). Sprawy staną się „interesujące” za każdym razem, gdy będziesz musiał uzyskać dostęp do niektórych bitów specyficznych dla platformy. Właśnie tam PyGame może ci pomóc, jeśli obsługuje platformy, na które patrzysz, lub możesz je przenieść.

Powiązany częściowo problem polega na tym, że niektóre metody dystrybucji (sklepy z aplikacjami) mogą nie zezwalać aplikacjom na uruchamianie nieznanego kodu innej firmy. Będziesz musiał zablokować swój Python i jego skrypty, aby nie mogły uzyskać dostępu do niczego poza aplikacją, i prawdopodobnie uniemożliwić uruchamianie skryptów, których nie dostarczyłeś w ramach gry.

chrish
źródło
1

Nie jestem pewien co do Androida, ale Python nie może działać na iPhonie. Obecnie najlepszym narzędziem do wdrażania gry na Windowsie, Macu, Androidzie i iPhonie byłoby użycie HTML5 lub Unity3D. Istnieje wiele innych narzędzi, które są mniej znane, a zatem mniej poręczone, takie jak Ideaworks Gamestudio.

jhocking
źródło