V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
napretep
V2EX  ›  Python

为什么不建议用 Python 写游戏代码?

  •  
  •   napretep · 2015-04-13 05:23:05 +08:00 · 45581 次点击
    这是一个创建于 3548 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是Python业余新手,最近想查查怎么用Python写游戏,发现大家的想法并不像其他语言那样一致,既有说适合的也有说完全不行的,这是为什么?

    我打算用Python写一个类似三国杀的游戏,请问除了掌握Python以外还需要哪些工具?

    41 条回复    2019-10-29 16:31:56 +08:00
    ericls
        1
    ericls  
       2015-04-13 05:42:23 +08:00
    会画画
    Gandum
        2
    Gandum  
       2015-04-13 06:08:31 +08:00 via iPhone
    自己去pygame.org看看python的游戏成品就明白了
    xiaogui
        3
    xiaogui  
       2015-04-13 06:16:41 +08:00   ❤️ 1
    Invent Your Own Computer Games with Python
    http://inventwithpython.com/
    xiaogui
        4
    xiaogui  
       2015-04-13 06:17:34 +08:00
    Making Games with Python & Pygame
    http://inventwithpython.com/pygame/index.html
    evlos
        5
    evlos  
       2015-04-13 07:17:27 +08:00 via iPhone
    "Python enabled us to create EVE Online, a massive multiplayer game, in record time. The EVE Online server cluster runs over 50,000 simultaneous players in a shared space simulation, most of which is created in Python. The flexibilities of Python have enabled us to quickly improve the game experience based on player feedback" said Hilmar Veigar Petursson of CCP Games.

    https://www.python.org/about/quotes/
    clino
        6
    clino  
       2015-04-13 08:09:11 +08:00 via Android
    lua应用得更广更合适吧,python太大坨了
    Sylv
        7
    Sylv  
       2015-04-13 08:15:43 +08:00 via iPhone
    我想主要是因为 Python 写 GUI 不太方便
    还有就是 Python 是解释形语言,基本没法防破解,所以主要用于服务器端程序和脚本工具
    caixiexin
        8
    caixiexin  
       2015-04-13 08:40:18 +08:00
    应该是解释型语言的通病把,所以就是比不上c/c++这种贴近底层或者手机平台的原生语言。
    不过lz说的是三国杀这种,对GUI跟效率要求不高的,应该可以?
    elvis_w
        9
    elvis_w  
       2015-04-13 09:14:31 +08:00
    Python一般用来写游戏的脚本系统,游戏底层和图形部分还是用别的语言写吧
    Mutoo
        10
    Mutoo  
       2015-04-13 09:16:38 +08:00
    python 写服务端还是挺多的,比如著名的 bigworld 引擎就是用 python 写的。
    xlrtx
        11
    xlrtx  
       2015-04-13 09:37:52 +08:00
    不知道和多线程有没有关系
    ledzep2
        12
    ledzep2  
       2015-04-13 09:46:23 +08:00
    可以, 但不是最好的选择. 主要问题代码保护, 执行效率, 图形库不够强, 没有够强的原生引擎, 没有配套的开发工具, 没有生态. 有这时间用js和flash都会比用python方便很多.
    wucao219101
        13
    wucao219101  
       2015-04-13 09:58:48 +08:00 via Android
    python倒是可以写游戏服务端。
    zhicheng
        14
    zhicheng  
       2015-04-13 10:04:47 +08:00 via Android
    不知道你们听说过 cocos2d 没有。。。。
    est
        15
    est  
       2015-04-13 11:01:48 +08:00
    python写着玩还是可以的。拿来卖估计悬。
    lxrabbit
        16
    lxrabbit  
       2015-04-13 11:28:11 +08:00
    看你是什么水平,不熟悉若干个引擎的话还是老实用成熟的引擎去做游戏比较好.上来就想用那些偏门的引擎并不靠谱.
    imskull
        17
    imskull  
       2015-04-13 11:31:39 +08:00   ❤️ 2
    脚本语言可以写完整的游戏,也可以仅仅用于游戏服务器或者客户端脚本驱动的部分。楼主说是“写游戏”,我姑且认为楼主想用python写完整的游戏。正好我们以前公司也有这方面的经验:
    1. 写简单游戏也许还行,但是一旦遇上性能瓶颈你就玩完,这种硬伤是最要命的,产品上线后怕的不是改游戏,怕的是知道问题在哪改不了。加上谁知道你现在想的”简单“游戏经过若干升级后会不会变得庞大呢。
    2. 在使用第三方库等情况时你难免会牵扯到为C++库和python间写接口的情况,这就是个噩梦了,出于性能和稳定性的原因你不得不了解python底层调用机制,但比起lua来python实在太大的,你懂的,你是不会想去翻阅python源代码的。
    3. “好的python脚本语言程序员*之前*一定是一个更好的C++程序员”,真的,你看看“玩”脚本,”天天叫嚣上”脚本的都是C++程序员。这就好比大餐吃惯了,想早点甜点尝尝,真上战场时谁那甜点当早餐。
    imskull
        18
    imskull  
       2015-04-13 11:33:07 +08:00
    笔误“当正餐”,哈哈。
    Majirefy
        19
    Majirefy  
       2015-04-13 11:44:49 +08:00   ❤️ 1
    其实没有那么复杂……
    一直很喜欢Ren'Py,LZ可以搜索一下,一个非常成熟强大的Visual Novel引擎……比起Windows 98时代的KiriKiri要更好一些~~~
    lingo233
        20
    lingo233  
       2015-04-13 12:40:44 +08:00
    我猜是不支持py3k遂放弃
    chchwy
        21
    chchwy  
       2015-04-13 13:31:53 +08:00
    一句話: 不夠快.
    xiaowangge
        22
    xiaowangge  
       2015-04-13 13:57:10 +08:00
    有啊。

    C++ 加 Python 的后端游戏引擎,之前在腾讯某平台,收入还凑合的 :-)
    mengzhuo
        23
    mengzhuo  
       2015-04-13 14:08:39 +08:00
    我司就抛弃了Java写的框架,改用Python做服务端
    性能问题完全用堆机子来破
    typcn
        24
    typcn  
       2015-04-13 14:22:34 +08:00
    后端没太大问题
    客户端在 kidding 吗。。。
    FanAndXinran
        25
    FanAndXinran  
       2015-04-13 14:26:26 +08:00
    计算密集型的那部分脚本语言稍微有些吃力吧,换低级语言更适合
    Shared
        26
    Shared  
       2015-04-13 14:29:26 +08:00
    Python 写游戏是可以的,比如东方符斗祭: https://github.com/feisuzhu/thbattle
    楼主可以参考一下。
    yann1992
        27
    yann1992  
       2015-04-13 15:20:01 +08:00
    原来学Python的时候看见过一个Python写的游戏
    http://www.mousechief.com/dhsg/
    Actrace
        28
    Actrace  
       2015-04-13 16:06:03 +08:00
    @xiaowangge 收入跟游戏好快没啥太大关系。
    XadillaX
        29
    XadillaX  
       2015-04-13 16:21:37 +08:00
    网易某新游戏大作最近在公测应该,游戏的业务逻辑脚本是用 python 写的。
    fxxkgw
        30
    fxxkgw  
       2015-04-13 17:10:06 +08:00
    还是效率问题吧,有同事在游戏公司表示都是C++
    cdfmr
        31
    cdfmr  
       2015-04-13 17:10:34 +08:00   ❤️ 1
    PySol/PySolFC,Python写的纸牌游戏。
    NCE
        32
    NCE  
       2015-04-13 19:59:57 +08:00
    游戏可以分为UI和算法,兄弟你想玩的是哪种?
    reorx
        33
    reorx  
       2015-04-13 21:00:53 +08:00
    我记得有个 Python 写的简单 minecraft: https://github.com/fogleman/Minecraft
    secondwtq
        34
    secondwtq  
       2015-04-13 22:41:40 +08:00
    @NCE 请教一下:为什么把 UI 单独提出来呢?

    我第一反应的,理解,你所说的 UI 应该是游戏里面 HUD 之类的东西(指大型游戏中的)。或者是说中小型游戏里面的大多数视觉元素?(我接触这方面比较少,但就有限玩游戏的经验来说,许多流行手游中的视觉元素直观感觉不是很多,全算进 UI 这个概念里面对我也可以接受)
    TofuToad
        35
    TofuToad  
       2015-04-14 01:08:13 +08:00 via iPhone
    你可以了解一下panda3d
    NCE
        36
    NCE  
       2015-04-14 09:22:08 +08:00
    @secondwtq 嗯,就是视觉吧,py对图形处理肯定没c++好的,做后台算法没问题。
    zhengkai
        37
    zhengkai  
       2015-04-14 10:47:52 +08:00   ❤️ 2
    EVE Online 是用 python 写的,这个游戏已经运营了超过10年

    比较著名的例子,2012 年美国驻利比亚大使遇袭身亡,他也是 EVE 里最大的一个势力的外交官

    其实这游戏服务器并不怎么样,每天都得重启维护一次,但不阻碍这个游戏成为一款成功的游戏

    我的结论是,你有什么想法,先动手做,用你擅长的工具去做,真到抗不住那天你雇人重写都来得及(通常只是优化就够了,其实 EVE 的团队一直从游戏内容的方向上规避单点过热,整个宇宙的大部分正规军集中在一两个星系、几千人火拼的时候,不管你用什么写的都会很头疼)

    很多人都东西一点没做呢,就开始选型、选型,然后就没有然后了
    slideclick
        38
    slideclick  
       2015-04-14 13:43:36 +08:00
    @Sylv 是的,防破解能搞的只有dropbox
    miyuki
        39
    miyuki  
       2015-04-14 19:55:05 +08:00
    @zhengkai 我刚想说这个
    autogen
        40
    autogen  
       2019-08-06 02:35:06 +08:00
    可以做游戏啊,比较慢而已
    asstar
        41
    asstar  
       2019-10-29 16:31:56 +08:00
    @zhengkai 哈哈哈哈哈 不错不错,我发现网上很多人,也有很多小公司,连产品想要做什么都没想好,就先考虑的是什么选型,什么高性能,高并发,大用户量。。。舍弃快速开发工具,自己搞一堆额外工作,往往能撑到东西搞出来不挂就已经不错了。更别说上线之后快速变更需求。。。

    像 Minecraft 和 steam 上的一些游戏,java 和 c#,而且优化很渣,照样成爆款。游戏好不好,主要还是要看点子和实现点子的行动力。除非是在腾讯这样公司上面靠大渠道成为爆款,否则性能只是一个不那么大的问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:11 · PVG 08:11 · LAX 16:11 · JFK 19:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.