一、简介
PvZ-Portable是一个重新实现的植物大战僵尸的游戏引擎,通过加载原版游戏资源实现跨平台原汁原味的原版游戏体验,让我们可以在Linux系统上不必借助wine,也能获得原生原版的游戏体验。相较于通过wine运行游戏,游戏的启动速度更快,设备的功耗更低。详情参考项目简介。
二、准备工作
找到你合法安装的《植物大战僵尸》1.2.0.1073 GOTY版本(或者Steam中的1.2.0.1096 GOTY版本)。如果你还没有购买游戏,可以在Steam或 EA App上购买。作者建议使用1.2.0.1073版本以获得最佳兼容性。找到main.pak和properties/文件夹,并运行命令:
7z a Plants_vs._Zombies_1.2.0.1073_EN.zip main.pak properties/
⚠️注意:main.pak和properties/文件夹位于压缩文件的同一顶级目录下:
.
├── main.pak
├── properties
├── partner_logo.jpg
├── partner.xml
├── partner.xml.sig
└── partner.xml.sig2
将获得的Plants_vs._Zombies_1.2.0.1073_EN.zip压缩包放在构建目录下。
三、构建和安装
在构建目录下创建一个pvz-portable.sh的shell脚本,内容如下:
#!/usr/bin/env sh
# Default to Wayland SDL video driver if running in a Wayland session and $SDL_VIDEODRIVER is not set
if [ -n "$WAYLAND_DISPLAY" ] && [ -z "$SDL_VIDEODRIVER" ]; then
export SDL_VIDEODRIVER="wayland,x11"
fi
exec /opt/pvz-portable/pvz-portable "$@"
并使用chmod +x pvz-portable.sh添加可执行权限。
在构建目录下创建一个io.github.wszqkzqk.pvz-portable的文件,内容如下:
[Desktop Entry]
Name=PvZ Portable
Comment=Community reimplementation of Plants vs. Zombies GOTY — 100% authentic PvZ experience
Exec=/usr/bin/pvz-portable %U
Icon=io.github.wszqkzqk.pvz-portable
Terminal=false
Type=Application
Categories=Game;Application;
StartupWMClass=pvz-portable
TryExec=/usr/bin/pvz-portable
在构建目录下创建PKGBUILD,内容如下:
pkgname=pvz-portable
pkgver=0.1.22
pkgrel=1
pkgdesc="A cross-platform community-driven reimplementation of Plants vs. Zombies: Game of the Year Edition, aiming to bring the 100% authentic PvZ experience to every platform."
url="https://github.com/wszqkzqk/${pkgname}"
arch=('x86_64' 'aarch64' 'riscv64' 'loong64')
license=('LGPL-3.0-or-later')
depends=(
glibc
libgcc
libjpeg-turbo
libogg
libopenmpt
libpng
libstdc++
libvorbis
mpg123
sdl2-compat
)
makedepends=(
cmake
ninja
)
source=(
"${pkgname}-source-${pkgver}.tar.gz::${url}/archive/refs/tags/${pkgver}.tar.gz"
# IMPORTANT: You must create this file yourself using assets from your legally owned copy.
# See archlinux/README.md for instructions.
"Plants_vs._Zombies_1.2.0.1073_EN.zip"
"pvz-portable.sh"
"io.github.wszqkzqk.pvz-portable.desktop"
)
sha256sums=('cb32a9220646b5479100863e12f79480e10b518a2c093f34cd28c5cae8597f97'
'SKIP'
'c2856b490f7d5aebb4b8361c4f681c45cc21bd7f2c42b6f00890d2c44a34b4be'
'0a770062be1da2f5e8d6dc9514b951b70c8ab1b5c11fab470344cfd2c1990de5')
build() {
rm -rf build
mkdir build
cmake -B build -S "PvZ-Portable-${pkgver}" \
-DCMAKE_BUILD_TYPE='Release' \
-DCMAKE_INSTALL_PREFIX='/opt'
cmake --build build
}
package() {
mkdir -p "${pkgdir}/opt/pvz-portable"
install -Dm644 "main.pak" "${pkgdir}/opt/pvz-portable/main.pak"
cp -r "properties" "${pkgdir}/opt/pvz-portable"
install -Dm755 "build/pvz-portable" "${pkgdir}/opt/pvz-portable/pvz-portable"
install -Dm755 "pvz-portable.sh" "${pkgdir}/usr/bin/pvz-portable"
install -Dm644 "PvZ-Portable-${pkgver}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 "PvZ-Portable-${pkgver}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
install -Dm644 "io.github.wszqkzqk.pvz-portable.desktop" "${pkgdir}/usr/share/applications/io.github.wszqkzqk.pvz-portable.desktop"
install -Dm644 "PvZ-Portable-${pkgver}/icon.png" "${pkgdir}/usr/share/pixmaps/io.github.wszqkzqk.pvz-portable.png"
}
在构建目录下打开终端,执行makepkg -si命令,将自动下载源码和依赖项进行编译并打包,编译过程只需几分钟就可完成。安装后在终端运行pvz-portable就可享受游戏了。
文章评论