公司的产品线以前一直都是在WEB上的FLASH棋牌游戏,最近想立项做客户端的棋牌类游戏(类似QQ游戏大厅),之前对Python也是有耳闻其强大
以及便捷,所以提议使用Python来作为客户端的开发语言,近日都在查阅各类关于Python的资料,调研此项目的可行性。由于本人也不懂
Python,其中产生了一些疑问(甚至是一些比较基础比较简单的问题),在这希望能有更多的朋友能一起来讨论和回答。
1、Python是否适合做此类应用?
2、GUI方面使用哪种框架比较适合?
3、在执行的效率上是否会有问题?
4、在不同的平台上,客户端的移植是否方便快捷?(比如在WIN下跑的与LINUX下跑的客户端,不需要重写程序代码,只是重新打包即可)
5、程序的安全性如何?(如何给Python代码加密--生成pyc是最好的方法了吗?)
6、有否其他可能出现的问题?
是的,我们现在就是通过FLASH+SWFKIT的方式来打包FLASH来“伪装”成客户端,但是开发的时候诸多不便,所以决定放弃这样的方式,重新开
发过客户端。
是打算把py放进到安装包里。用某些打包工具是否可以把PY打包成EXE,直接运行。(也就是把环境打包进去了)
在网上找了些资料,也问了一些人,都说效率上有问题?不跟VC这些比较,不知道与JAVA和C#这些客户端比较,是否效率上也有差距。
因为是游戏,所以客户端GUI,界面肯定必须自定义,不知道这方面有什么好的框架介绍吗?
To Van:
1. 如果你的团队都不熟悉 Python,那么真的不适合。单纯从语言的角度,我看除了最好使用汇编的东西之外没有什么不适合用 Python 的。
2.游戏本身可以选择一些有 Python Binding 的 3D game engine,印象中不止一两款,此外还有 PyGame
之类的。棋牌类用 2D 的应该也够了。至于大厅什么的,wxPython、PyGTK 均不错。PyQT 需要商业授权,否则是 GPL 的。
3.不会比 C/C++ 的效率更好,不会比 Flex 开发的效率更差。
4.主要取决于是否使用只有某个平台才有的 API。换句话说,应该用 OpenGL 而不要用 DirectX。
5.搜索列表关于 cython 的讨论。我个人认为 pyc 几乎没有保护作用。
6.不动手不会知道的。Just do it!
> 不是技术人员吧?
> 首先,你先考虑一下客户环境的部署。flash自然有adobe给出安装包。你准备怎么
> 说服游戏玩家先去弄个python运行环境来装?还是你打算学 keepnote他们,干脆
> 把python打到安装包里面?
> 其次,你打算怎么弄GUI?pygtk?pyqt?wx?每个都是要装一堆的客户端框架。
> 如果你觉得这两个问题好解决,那到没有太多的别的困难。py可以转exe的,到时
> 候安全性和效率一并解决。移植问题上,python本身就是跨平台的。只要你不用专
> 属平台的包。
>
To shell909090:
1.打包 python 及所需的包不是难事,通常也不存在授权问题,不应该成为困扰。
2.py2exe 对代码的保护能力与 pyc 一样,无非是多了一 zip 把一堆 pyc 包起来而已。对安全性没有额外的帮助。
3.python 是跨平台不等于库是跨平台的,你能在 *nix 下跑 pywin32?
--
XUE Can
2009/7/5 shell909090 <shell...@gmail.com>:Van 写道:想请教一下,关于使用Python来开发客户端游戏的问题。 公司的产品线以前一直都是在WEB上的FLASH棋牌游戏,最近想立项做客户端的棋牌类游戏(类似QQ游戏大厅),之前对Python也是有耳闻其强大 以及便捷,所以提议使用Python来作为客户端的开发语言,近日都在查阅各类关于Python的资料,调研此项目的可行性。由于本人也不懂 Python,其中产生了一些疑问(甚至是一些比较基础比较简单的问题),在这希望能有更多的朋友能一起来讨论和回答。 1、Python是否适合做此类应用? 2、GUI方面使用哪种框架比较适合? 3、在执行的效率上是否会有问题? 4、在不同的平台上,客户端的移植是否方便快捷?(比如在WIN下跑的与LINUX下跑的客户端,不需要重写程序代码,只是重新打包即可) 5、程序的安全性如何?(如何给Python代码加密--生成pyc是最好的方法了吗?) 6、有否其他可能出现的问题To Van: 1. 如果你的团队都不熟悉 Python,那么真的不适合。单纯从语言的角度,我看除了最好使用汇编的东西之外没有什么不适合用 Python 的。 2.游戏本身可以选择一些有 Python Binding 的 3D game engine,印象中不止一两款,此外还有 PyGame 之类的。棋牌类用 2D 的应该也够了。至于大厅什么的,wxPython、PyGTK 均不错。PyQT 需要商业授权,否则是 GPL 的。 3.不会比 C/C++ 的效率更好,不会比 Flex 开发的效率更差。 4.主要取决于是否使用只有某个平台才有的 API。换句话说,应该用 OpenGL 而不要用 DirectX。 5.搜索列表关于 cython 的讨论。我个人认为 pyc 几乎没有保护作用。 6.不动手不会知道的。Just do it!
不是技术人员吧? 首先,你先考虑一下客户环境的部署。flash自然有adobe给出安装包。你准备怎么 说服游戏玩家先去弄个python运行环境来装?还是你打算学 keepnote他们,干脆 把python打到安装包里面? 其次,你打算怎么弄GUI?pygtk?pyqt?wx?每个都是要装一堆的客户端框架。 如果你觉得这两个问题好解决,那到没有太多的别的困难。py可以转exe的,到时 候安全性和效率一并解决。移植问题上,python本身就是跨平台的。只要你不用专 属平台的包。To shell909090: 1.打包 python 及所需的包不是难事,通常也不存在授权问题,不应该成为困扰。 2.py2exe 对代码的保护能力与 pyc 一样,无非是多了一 zip 把一堆 pyc 包起来而已。对安全性没有额外的帮助。 3.python 是跨平台不等于库是跨平台的,你能在 *nix 下跑 pywin32?
看来 shell909090 真没打过包 :)
py2exe 对普通的 python 程序,弄出的 .exe 是 2M,
对普通的 PyGtk 程序,则是 4M 多点,
对于 Windows 下绝大多数客户端来说, 2M、4M 绝对不算啥事情。
至于说版本,就更加不是一回事了,
Linux 自然是用系统 Python,
而 Windows 直接用 py2exe 将用到的 python 和其他运行库打包进去,根本就不用理会你系统里到底有没有,是哪个。
而如果说源码安全,关键业务都服务端做了,客户端有啥要在乎,
大不了用 cython 把 .py 弄 .pyd
2009/7/5 shell909090 <shell...@gmail.com>:1.打包真的不是难事,维护才难。客户端附加python包,首先是增大了客户端大小。这到还好说,毕竟用户多数也不在意大小。但是,这样一来客户端就要看来 shell909090 真没打过包 :) py2exe 对普通的 python 程序,弄出的 .exe 是 2M, 对普通的 PyGtk 程序,则是 4M 多点,
对于 Windows 下绝大多数客户端来说, 2M、4M 绝对不算啥事情。 至于说版本,就更加不是一回事了, Linux 自然是用系统 Python, 而 Windows 直接用 py2exe 将用到的 python 和其他运行库打包进去,根本就不用理会你系统里到底有没有,是哪个。 而如果说源码安全,关键业务都服务端做了,客户端有啥要在乎, 大不了用 cython 把 .py 弄 .pyd
64位windows可以运行32位程序的啊,不需要特别做64位版本的吧?
>
> 其实从业务角度说,pyc和pyd的安全性差不多。要说普通用户,都解不开。要说专业程序员,就是python反汇编和反汇编的区别。
>
pyc反向过来是python源码,pyd反向过来是汇编。这个差很多吧。
--
Best Regards,
Leo Jay
不,已经有一些工具可以把pyc很好的反向到源码了。
2009/7/6 shell909090 <shell...@gmail.com>:原始源码?还是中间码? 这个到真没研究,不过感觉上应该是中间码吧?不,已经有一些工具可以把pyc很好的反向到源码了。
如Can Xue所说,
py2exe 对代码的保护能力与 pyc 一样,无非是多了一 zip 把一堆 pyc 包起来而已。对安全性没有额外的帮助。
没有人说py2exe可以保护代码啊。
2009/7/6 shell909090 <shell...@gmail.com>:那py2exe是怎么处理反射的呢?只要有反射,就会有符号。只要有符号,就可以反向。如Can Xue所说, py2exe 对代码的保护能力与 pyc 一样,无非是多了一 zip 把一堆 pyc 包起来而已。对安全性没有额外的帮助。 没有人说py2exe可以保护代码啊。