返回资讯中心
外部精选
软件工程
#开发者实时流

Pite 游戏引擎发布:Rust 核心加 Python 脚本,提供可视化编辑器与 CLI 工具

来源标题:Show HN: Pite – A 2D game engine with Python scripting and CLI tooling

开源 2D 游戏引擎 Pite 发布,采用 Rust 核心与 Python 脚本,支持通过场景和节点(非 ECS)搭建游戏。它提供可视化编辑器,并附带 CLI 工具,可创建项目、运行场景和校验资源;安装一次即可为所有平台导出游戏。

Hacker News 最新MKH_1312026/11/12 · 今天20 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

Pite —— 一个用起来顺手、易于修改、属于你自己的游戏引擎。Rust 核心,Python 脚本,可视化编辑器。

用场景和节点(而非 ECS)来构建游戏——可视化编辑,用 Python 写脚本。

Pite 编辑器正在运行 “Gem Collector” 示例

安装引擎包(包含所有平台的引擎 + player 二进制文件,因此任何机器都能为任何平台导出)——最新稳定版,下载时已验证:

curl -fsSL https://raw.githubusercontent.com/piteengine/pite/main/install.sh | sh

Windows PowerShell:

irm https://raw.githubusercontent.com/piteengine/pite/main/install.ps1 | iex

或者用 cargo 安装:

创建一个新项目(默认为空白,或传入 --template minimal-2d)

pite new hello

进入项目并启动可视化编辑器(或运行 pite edit)

cd hello pite

运行游戏(默认为 main_scene,或传入场景路径)

pite run

校验资源、脚本和场景(加上 --reimport-assets 可同步已移动的文件)

pite check

安装一次,之后就用 pite。在项目内直接运行 pite 会打开可视化编辑器。new 用于搭建项目骨架(空白或基于模板),run 用于播放场景(默认为项目的主场景),edit 打开可视化编辑器,check 校验项目完整性(--reimport-assets 会同步已移动的资源并重新计算哈希),toolchain 管理用于离线导出的独立运行时,vendor 用于固定第三方 Python 包。改为从源码构建:cargo build --release -p pite -p pite-player(需要 CPython 3.12 开发头文件,见 CONTRIBUTING.md)。

预缓存工具链(CPython + player 二进制文件)以便离线导出

pite toolchain download

为任意平台导出一个独立游戏

pite export linux

export linux|windows|macos 会写出一个可运行的目录(dist/<name>-<platform>/),其中包含精简版 player 二进制文件(不含编辑器)、一个启动脚本、一份运行说明,以及仅被引用到的游戏内容。可通过 pite.toml 中的 [export] include 添加额外文件,并通过 vendor/ 添加第三方 Python 包。player 的解析顺序是:先看 --binary,否则查找与 pite 同级的 pite-player——引擎包自带所有平台的 player 二进制文件,因此任何机器都能为任何平台导出,无需下载,也无需编译器。当同级目录下没有 player 时,导出会回退为下载该平台的 player 模板并缓存到 ~/.cache/pite/toolchains。使用 pite toolchain status|download|verify|clean 管理这些工具链产物。

Python 是随附打包的:导出时会获取固定版本的 CPython 3.12(经过校验和验证,缓存于 ~/.cache/pite/toolchains)并打包进导出的游戏中。导出的游戏无需系统安装 Python 即可运行。传入 --no-bundle-python 会回退为使用终端用户系统的 Python 3.12(PITE_PYTHON 可覆盖自动检测)。

Pite 围绕一系列深思熟虑的架构选择而设计,这些选择优先考虑开发者体验、可靠性和快速迭代:

游戏玩法脚本主要关乎决策、游戏流程和快速迭代,而非原始数值计算。Python 提供了富有表现力、平易近人的语法和庞大的生态,让游戏逻辑既直观易写,又赏心悦目易读。

游戏要求可预测的帧时间、内存安全和原生执行速度。Pite 用 Rust 构建引擎核心:2D 渲染、物理模拟、场景图遍历和资源解码都以原生性能和安全并发执行,让 Python 得以自由地编排游戏玩法,而不会成为性能瓶颈。

顺畅的开发流程需要即时的视觉反馈。Pite 编辑器将场景层级、属性检视、资源管理和实时游戏预览整合到一个专注的工作区中。场景树模型(场景和节点)自然地表达游戏世界:父级变换干净地沿树向下级联,场景可作为可复用的分支模块化组合。

当游戏增长到数百个资源和脚本时,损坏的引用和缺失的文件很容易混入。pite check 在毫秒级内校验项目完整性:它检测孤立资源,通过内容寻址的 UID 解析文件移动,校验纹理和音频解码,检查脚本节点引用,并对独立导出会丢弃的第三方导入发出警告。

将场景存储为人类可读的 TOML(.ptscn),让版本控制变得自然,git diff 干净且易于审阅。合并冲突解决起来直截了当,场景可以用任何文本编辑器编辑,而得益于自动的、内容哈希的二进制缓存,运行时加载依然瞬时完成。

Godot:Pite 并不试图取代 Godot。如果 Godot 契合你的工作流,就用 Godot。Pite 面向的是那些偏好标准 Python 而非 GDScript、看重精简的独立导出(约 20–30 MB 而非 70+ MB),并希望拥有一套轻量、专注、没有多余复杂度的 2D 工具的开发者。

Bevy:Bevy 为完全用 Rust 写游戏且不需要编辑器的开发者提供了出色的实体组件系统(ECS)架构。Pite 面向的是希望用 Python 写游戏、使用层级场景树并配有集成可视化编辑器的开发者。

Pygame 和 LÖVE:Pygame 和 LÖVE 是优秀、成熟的框架,拥有充满热情的社区。它们提供窗口、输入循环和绘图原语。Pite 在代码之外补充了集成可视化编辑器、声明式场景树、内置 2D 物理和音频混音、健壮的资源追踪,以及零配置的独立桌面导出。

Pite 的构建目标是顺手好用、易于修改、属于你自己。它将 Python 脚本与 Rust 性能结合起来,提供专注而周到的开发体验。

没有音频硬件?自动静音模拟让游戏继续运行而不崩溃。

脚本被修改了?实时热重载会保留节点状态和物理速度。

正在写代码?内置的 pyright 提供即时自动补全、悬停文档和诊断信息。

资源被移动或重命名了?内容寻址的 UID 让引用在场景和脚本之间保持完整。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →