Windows上编译 - Fluorohydride/ygopro GitHub Wiki

YGOPro Windows 编译指南

1. 准备工作

1.1 所需软件

  • YGOPro发行版

    • 用以获取卡片数据库和卡图等资源,其中数据库是必备的
  • Visual Studio

    • 支持 Visual Studio 2015 及更高版本
    • 安装时请勾选使用 C++ 的桌面开发组件
  • DirectX SDK

  • Git for Windows

  • Premake

    • 项目支持Premake和CMake两种构建系统,但Make近期无人维护,推荐使用Premake

1.2 依赖库

Windows平台下依赖库的安装目前缺乏完善的自动化方案,建议手动下载各库源代码并进行静态编译。

  • libevent

    • 仅2.0.22版本经过充分测试,新版本可能兼容但未经验证
  • FreeType

  • Irrlicht

    • 这是Irrlicht的修改版,增加了中文支持等功能
    • 不支持原版Irrlicht
  • Lua

    • 仅支持5.3.x和5.4.x版本
  • miniaudio

    • 仅支持0.11.22版本,且需使用其中的 miniaudio_split 版本
  • SQLite

    • 仅支持amalgamation版本

2. 获取源代码

2.1 克隆代码仓库

使用Git克隆代码仓库,确保包含所有子模块:

# 完整克隆代码及子模块(推荐方式)
git clone --recursive https://github.com/Fluorohydride/ygopro.git
cd ygopro

# 或分步操作
git clone https://github.com/Fluorohydride/ygopro.git
cd ygopro
git submodule update --init

# 切换子模块到正确分支
cd ocgcore
git checkout master 
cd ..
cd script
git checkout master 
cd ..

2.2 安装依赖库

将下载的所有依赖库解压至项目根目录,并按照以下规则命名:

  • libevent → 重命名为 event
  • Freetype → 重命名为 freetype
  • Irrlicht → 重命名为 irrlicht
  • Lua → 重命名为 lua
  • miniaudio → 重命名为 miniaudio
    • miniaudio/extras/miniaudio_split 中的c和h文件复制到 miniaudio 文件夹替换原文件
  • SQLite → 重命名为 sqlite3(注意名称末尾有3)

2.3 复制描述文件

  • 将premake文件夹内所有子文件夹复制到项目根目录
    • 这些文件夹包含了编译各个依赖库所需的premake描述文件
  • 将resource文件夹内所有子文件夹复制到项目根目录

3. 生成项目并编译

3.1 生成项目文件

安装premake5.exe并添加到PATH环境变量,或直接放到项目根目录,然后运行:

premake5 vs2022 --no-miniaudio-support-opus-vorbis

这将在build文件夹中生成Visual Studio解决方案文件(YGOPro.sln)。

3.2 目录结构

配置成功后,项目目录结构大致如下(部分文件省略):

├─build
├─event
│  └─include
├─freetype
│  ├─include
│  └─src
├─gframe
├─irrlicht
│  ├─include
│  └─source
│      └─Irrlicht
├─lua
│  └─src
├─miniaudio
├─ocgcore
├─script
├─sound
├─sqlite3
└─textures

3.3 编译项目

在Visual Studio中打开 YGOPro.sln,选择 ReleaseDebug 模式,然后生成解决方案。

编译完成后,生成的可执行文件位于 bin/releasebin/debug 目录下。

4. 运行与调试

4.1 基本运行

  1. 从YGOPro发行版中复制以下文件到项目根目录:

    • cards.cdb
    • pics 文件夹
    • deck 文件夹
  2. 将编译生成的 YGOPro.exe 复制到项目根目录

  3. 运行 YGOPro.exe

4.2 使用Visual Studio调试

在Visual Studio中可以设置工作目录为你的YGOPro目录,以便直接调试。

5. 高级功能

5.1 支持OGG格式音频

额外安装以下4个库:

将这些库分别放在 miniaudio/external 文件夹下,并重命名为 ogg, opus, opusfile, vorbis

然后在运行 premake5 时去掉 --no-miniaudio-support-opus-vorbis 参数即可。

5.2 支持Windows XP

使用premake5生成项目文件时,添加 --winxp-support 参数即可。

注意:需使用Visual Studio 2019或更早版本,并安装v141的XP支持组件。目前Visual Studio 2022虽能安装v141的XP支持并编译,但运行时会报错,无法使用。

6. 常见问题

编译常见问题