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
TechArtLife
V2EX  ›  Python

[ Python 游戏开发] [番外#001] Python 开发游戏如何选择引擎?

  •  
  •   TechArtLife · 174 天前 · 2024 次点击
    这是一个创建于 174 天前的主题,其中的信息可能已经有所发展或是发生改变。

    [番外#001 ] Python 开发游戏如何选择引擎?

    Python 游戏开发,启动!

    1.介绍

    使用 Python 开发游戏,大多数情况下都会直接想起 PyGame 这个库。但是,PyGame 本身是基于 SDL 的,没有 3D 支持,并不是一个完整的游戏引擎库。可以当作一个新手入门的玩具,不适合正式项目的开发。

    [Panda3D] 是一款 3D 游戏引擎库,带有完整的 3D 游戏引擎模块,支持 Python 和 C++,官方也在一直持续更新迭代。

    Panda3D 的 Python 绑定是自动生成的,核心库使用 C++开发,这对我们日后可能需要使用 C++重构项目提供了非常可靠的基础。不过,稍微有点遗憾的是 Panda3D 没有官方的移动端支持,但是我们目前没有移动端计划,所以最终决定使用 Panda3D 来开发。

    Panda3D 能实现什么效果?

    这里给大家看下 Github 上一位大佬的技术作品,用 Panda3d Python 版本实现的 [PBR (基于物理渲染)延迟渲染管线] 效果。

    详细介绍大家传送门看吧

    Image

    Image

    Image

    Image

    Image

    Image

    Image

    2.Panda3D

    1. 官网: https://www.panda3d.org/

    2. 最新版本:1.10.14

    3. 官方支持:Windows, macOS, Ubuntu

    3.安装与使用

    • Python: 3.12
    • OS: Windows 10
    • Panda3D: 1.10.14
    pip install panda3d
    

    4.First App

    备注

    10 条回复    2024-06-04 18:22:00 +08:00
    jianchang512
        1
    jianchang512  
       174 天前   ❤️ 1
    ```但是,PyGame 本身是基于 SDL 的,没有 3D 支持,并不是一个完整的游戏引擎库。可以当作一个新手入门的玩具,不适合正式项目的开发。```

    正式游戏项目真选 py 开发?
    coderluan
        2
    coderluan  
       174 天前
    人生苦短,别给自己找麻烦,解决冷门引擎导致的问题,远比你学门新的语言费时费力。
    TechArtLife
        3
    TechArtLife  
    OP
       174 天前
    @jianchang512 其实有的,但正式项目不建议,因为常见的主流商业引擎基本都没提供 Python 支持
    TechArtLife
        4
    TechArtLife  
    OP
       174 天前
    @coderluan 从完成项目需求来说,是这样的
    LaTero
        5
    LaTero  
       174 天前
    倒数第二张图的 UI 是什么做的? Python 没有 Immediate mode GUI 太难受了,需要临时加一个滑块调一调数值 ImGui 一行搞定 Python 要折腾好久。Python 的性能好像也撑不起 Immediate mode GUI, 我看 Dear ImGui 的 python binding 都是 retained mode 的。
    renmu
        6
    renmu  
       174 天前 via Android
    视觉游戏引擎 renpy 还是挺流行的
    TechArtLife
        7
    TechArtLife  
    OP
       174 天前
    @LaTero 应该是 LUI: https://github.com/tobspr/LUI
    ImGui 主要面向 C/C++,适配到 Python 上肯定需要一些 hack 的,但也不至于变成保留模式
    jim9606
        8
    jim9606  
       173 天前
    按我知道的情况,可以将 python 作为外部脚本引擎驱动 Unity/UE 是有方案的。
    sjhhjx0122
        9
    sjhhjx0122  
       173 天前   ❤️ 1
    godot 语法跟 python 很像不如去写 godot
    catamaran
        10
    catamaran  
       172 天前
    我不懂游戏开发,unity 不香吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2728 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:06 · PVG 20:06 · LAX 04:06 · JFK 07:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.