Python游戏可以在多个平台上运行吗?


10

我计划用Python和一些SQL编写游戏。我担心我的程序在完成后会具有怎样的通用性,理想情况下,我希望它可以在Windows,Mac,Android和iPhone上运行...但是我有种感觉,手机将无法使用此功能那类的东西。我将如何编写可在多个平台上运行的程序?对于初学者来说,这是否可行?

Answers:


12

Python本身具有很好的可移植性(可以在许多平台上运行),但是您必须考虑以下几点:

  • 您所针对的平台有哪些限制?您想通过移动商店进行销售吗?

    例如,WP7市场仅允许出售以托管代码(.NET)编写的应用程序。AppStore也被锁定,仅允许使用Objective-C编写的本机应用程序。Android允许通过NDK同时运行Java和本机代码。人们已经开发出变通办法,以允许在iOS的本机应用程序中运行例如JavaScript或将Web应用程序转换为本机应用程序

  • 您要使用的库的可移植性如何?

    这是一个示例:Cocos2D是带有Objective-C端口的Python库。您可以使用Python在桌面平台上构建游戏,然后在Objective-C中重写它,并通过库保留大部分结构。但是,那时您仅支持桌面+ iOS。

总体而言,由于缺乏支持,Python不适合移动平台。这是三个可行的替代方案:

  • XNA是为了使Games为Windows,Xbox 360和Windows手机7有两个项目( MonoGame内胚),允许把这些游戏,几乎没有修改,为iOS应用(通过MonoTouch的),Android应用(通过MonoDroid的)。不过,MonoTouch和MonoDroid具有许可费用

  • Unity非常便于移植,并且可以针对几乎所有平台(尽管还没有Linux支持

    它是免费的桌面游戏。他们有一个Pro版本,但是对于大多数游戏,没有它您就可以做到。有一个图表比较每个平台的不同版本:http : //unity3d.com/unity/licenses

  • 具有Canvas 2D API或WebGL的Web应用程序(所谓的HTML5)可在最新的浏览器和智能手机上运行。随着时间的推移,支持只会越来越好。有很多引擎,例如前面提到的ImpactJS或Three.JS,用于制作3D东西。


要补充一点,Unity支持3种语言:C#,Javascript和Boo,它们在语法上与Python非常相似
George Profenza

3

PyGame在其“ 关于”页面中这样说:

真正的便携式。支持Linux(大多数主流linux发行版附带pygame),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的支持,但这些未得到正式支持。您可以在手持设备,游戏机和“每个孩子一台笔记本电脑”(OLPC)的计算机上使用它。

Python本身具有极高的可移植性,并且很容易移植到新平台(假设某人尚未为您完成此工作)。每当您需要访问某些特定于平台的信息时,事情就会变得“有趣”,如果PyGame支持您正在查看的平台,或者您可以移植它,PyGame可以为您提供帮助。

一个半相关的问题是某些分发方法(应用程序商店)可能不允许运行未知第三方代码的应用程序。您必须锁定Python及其脚本,以便它们无法访问应用程序以外的任何内容,并可能阻止它运行游戏中未提供的脚本。


1

我不确定Android,但Python无法在iPhone上运行。当前,在Windows,Mac,Android和iPhone上部署游戏的最佳工具是使用HTML5或Unity3D。还有很多其他工具,例如Ideaworks Gamestudio,这些工具鲜为人知,因而价格便宜。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.