Bir Python oyunu birden fazla platformda çalışır mı?


10

Python ve muhtemelen bazı SQL'de bir oyun yazmayı planlıyorum. Programımı bitirdiğimde çok yönlü olacağı konusunda endişeliyim, ideal olarak Windows, Mac, Android ve iPhone'da çalışmasını istiyorum ... ancak telefonların bunun için sınırsız olacağını hissediyorum bir şey. Birden fazla platformda çalışan bir program yazmaya nasıl devam edebilirim? Bu yeni başlayan bir programcı için bile mümkün müdür?

Yanıtlar:


12

Python kendi içinde oldukça taşınabilir (birçok platformda çalışır), ancak aşağıdakileri dikkate almanız gerekir:

  • Hedeflediğiniz platformun sınırlamaları nelerdir? Bir mobil mağazadan satmak ister misiniz?

    Örneğin, WP7 pazarı yalnızca yönetilen kodda (.NET) yazılmış uygulamaların satılmasına izin verir. AppStore da oldukça kilitlidir ve yalnızca Objective-C ile yazılmış yerel uygulamaya izin verir. Android, NDK üzerinden hem Java hem de yerel kodu çalıştırmaya izin verir. Kullanıcılar, örneğin iOS'ta yerel uygulamalarda JavaScript çalıştırmaya veya Web uygulamalarını yerel uygulamalara dönüştürmeye izin vermek için geçici çözümler geliştirdi

  • Kullanmak istediğiniz kütüphaneler ne kadar portatiftir?

    İşte bir örnek: Cocos2D , Objective-C bağlantı noktasına sahip bir Python kütüphanesidir. Oyununuzu masaüstü platformları için Python'da oluşturabilir ve Objective-C'de yeniden yazarak kütüphane sayesinde yapının çoğunu koruyabilirsiniz. Ancak, yalnızca masaüstü + iOS desteğiniz var.

Genel olarak, Python, destek eksikliği nedeniyle mobil platformlar için kolay bir uyum değildir. İşte uygulanabilir üç alternatif:

  • XNA , Windows, Xbox 360 ve Windows Phone için oyun yapmak için yaratıldı 7. iki proje (vardır monogame ve Exen (MonoTouch aracılığıyla) iOS uygulamaları içine, hemen hemen hiçbir değişiklik, bu oyunları açmak için izin), Android uygulamaları (MonoDroid aracılığıyla ). MonoTouch ve MonoDroid'in lisans maliyetleri vardır .

  • Unity çok taşınabilir ve neredeyse tüm platformları hedeflemeye izin veriyor ( henüz Linux desteği yok )

    Masaüstü oyunları için ücretsizdir. Pro sürümü var ama çoğu oyun için onsuz gayet iyi yapabilirsiniz. Her platform için çeşitli sürümleri karşılaştıran bir grafik var: http://unity3d.com/unity/licenses

  • Canvas 2D API veya WebGL içeren web uygulamaları (HTML5 olarak adlandırılır) son tarayıcılarda ve akıllı telefonlarda çalışır. Destek yalnızca zamanla daha iyi hale gelecektir. 3D şeyler yapmak için yukarıda belirtilen ImpactJS veya Three.JS gibi birçok motor var.


Unity'nin 3 dili desteklediğini eklemek isterim: C #, Javascript ve Boo, sözdiziminde Python
George Profenza ile

3

PyGame bunu Hakkında sayfalarında söylüyor :

Gerçekten taşınabilir. Linux (pygame çoğu ana akış linux dağıtımıyla birlikte gelir), Windows (95, 98, ME, 2000, XP, Vista, 64 bit Windows, vb.), Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX ve QNX. Kod AmigaOS, Dreamcast, Atari, AIX, OSF / Tru64, RISC OS, SymbianOS ve OS / 2 için destek içerir, ancak bunlar resmi olarak desteklenmez. Elde taşınan cihazlarda, oyun konsollarında ve Çocuk Başına Bir Dizüstü Bilgisayar (OLPC) bilgisayarında kullanabilirsiniz.

Python'un kendisi son derece portatiftir ve yeni platformlara taşınacak kadar kolaydır (birinin sizin için zaten yapmadığını varsayarak). Platforma özgü bazı bitlere erişmeniz gerektiğinde her şey "ilginç" olacak, bu da PyGame'in size yardımcı olabileceği, baktığınız platformları destekliyorsa veya taşıyabiliyorsanız.

Yarı ilgili bir sorun, bazı dağıtım yöntemlerinin (uygulama mağazaları) bilinmeyen üçüncü taraf kodu çalıştırabilecek uygulamalara izin vermemesidir. Uygulama dışında hiçbir şeye erişememeleri için Python'unuzu ve komut dosyalarını kilitlemeniz ve muhtemelen oyunun bir parçası olarak sağlamadığınız komut dosyalarını çalıştırmasını engellemeniz gerekir.


1

Android'den emin değilim, ancak Python iPhone'da çalışamıyor. Şu anda bir oyunu Windows, Mac, Android ve iPhone'da dağıtmak için en iyi araçlar HTML5 veya Unity3D kullanmak olacaktır. Ideaworks Gamestudio gibi daha az bilinen ve dolayısıyla daha az kefil olan başka araçlar da vardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.