搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

wszqkzqk/PvZ-Portable

游戏

用合法游戏资源在多个平台上重玩《植物大战僵尸年度版》的 C++20 社区重实现。

909
210
C++
LGPL-3.0
创建于 9 个月前

项目定位

PvZ-Portable 是《植物大战僵尸:年度版》的社区净室重实现,用 C++20 编写,目标是把这款经典游戏带到现代桌面、移动设备、主机和浏览器。它用 SDL3 + OpenGL ES 2.0 替代原版的固定分辨率和平台绑定代码,同时加入跨架构存档、确定性回放等现代化能力。仓库不包含 PopCap/EA 的任何美术、音频或字体资源,玩家需要自备正版年度版的 main.pak 和 properties/ 目录。

快速开始

  1. 准备资源:从已购买的年度版中获取 main.pak 和 properties/ 目录(Steam 或 EA)。推荐基于 GOTY 1.2.0.1073 英文版;其他官方版本可玩,但可能出现少量 UI 文本差异。非 1.2.0.1073 资源可运行 python3 scripts/make-compat-overrides.py "/path/to/main.pak" 生成兼容覆盖文件。
  2. 安装或运行:从 Releases 下载对应平台的原生包,或直接打开 WebAssembly 在线版 在浏览器中运行。
  3. 桌面端:把 main.pak 和 properties/ 放到 pvz-portable 可执行文件同目录,启动即可。存档和缓存写入系统应用数据目录下的 io.github.wszqkzqk/PvZPortable。
  4. Android:安装 arm64-v8a APK,首次启动时导入包含资源的 ZIP 或目录,然后点击 Start Game。iOS 需侧载未签名 IPA,再通过「文件」App 把资源复制到应用文稿目录。

存档与工具

默认的中局存档格式 .v4 使用字段级序列化,可在 Windows、Linux、macOS、Android、iOS、网页和 Switch 之间跨 32/64 位及不同 CPU 架构直接迁移。旧版 .dat 存档仍可读取,并会自动迁移为 .v4。仓库自带 scripts/pvzp-v4-converter.py,提供 info、export、import 子命令,可查看存档统计或转换成 YAML 后编辑。命令行参数包括 -resdir、-savedir、-record 和 -play,可录制和回放确定性的 .dmo 对局。

使用约束

必须自备正版游戏资源,否则无法启动。从源码构建需要 C++20 编译器、CMake 3.12+、Ninja、SDL3(>= 3.2.12)、SDL3_mixer、libopenmpt、libpng、libjpeg-turbo 和 zlib。Android 需要 7.0+,iOS/iPadOS 需要 16.4+ 且为 arm64,使用免费 Apple ID 签名时 7 天后过期。大端架构有设计支持但未在实体硬件上测试;Haiku 支持不完整(无音乐);Switch 真机可用,但 Kenji-NX 启动会崩溃。代码采用 LGPL-3.0-or-later,游戏资源版权仍归 PopCap/EA。

HotRepo 点评

在 2026 年 11 月 13 日的 C++ 日榜中,该项目位列第 3,累计 896 Star、206 Fork,当天新增 7 Star。对 C++ 游戏重实现来说这是不错的名次,但只有单次快照,不能据此判断长期热度走向。技术上更值得注意的是 WebAssembly 在线运行、多架构存档和引擎与资源分离这三项组合,它们直接关系到已经拥有正版、想在现代硬件上重玩的用户。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论