☰
主题医院重制版 CorsixTH:在 modern 系统上跑 1997 年经典的完整指南
2026/10/17 2:29:17 网站建设 项目流程

主题医院重制版 CorsixTH:在 modern 系统上跑 1997 年经典的完整指南

【免费下载链接】CorsixTHOpen source clone of Theme Hospital项目地址: https://gitcode.com/GitHub_Trending/co/CorsixTH

CorsixTH 是 1997 年经典模拟经营游戏《主题医院》(Theme Hospital) 的开源重制版:用现代引擎重写老游戏,支持 Windows、macOS、Linux 和 BSD,能跑在 1080p 与 4K 屏幕上。对玩家,它解决的是原版只能跑在 DOS 环境里的问题;对开发者,它是一份用 Lua 写游戏逻辑、用 C++ 写引擎的完整代码范例。

💾 先过第一道坎:准备原版游戏数据

CorsixTH 本体不带原版的美术、音频与动画资源,这些数据全部从原版《主题医院》的文件里读取。这是项目采用"干净室"路线的结果:代码重新实现,资源沿用原版,行为以观察原版表现为准。首次运行前要做三件事:

  1. 安装对应平台的构建(Windows/macOS 安装包、Linux AppImage,或发行版软件源、Flatpak、Snap)
  2. 找到一份原版游戏数据:光盘或从 GOG、EA 等渠道购买的数字版拷贝
  3. 启动时指定原版数据目录的路径

这一步只需做一次,路径配错时游戏会明确提示,照提示修正即可,不需要改动任何文件。

🚀 安装与上手步骤

普通玩家的路径最短:下载发布版本 → 指定原版数据目录 → 选关开玩。想从源码构建的开发者由 CMake 驱动流程,依赖通过 vcpkg 管理:

git clone https://gitcode.com/GitHub_Trending/co/CorsixTH

仓库根目录的 CMakePresets.json 预置了常用构建配置,按预设执行 CMake 配置和构建即可。版本节奏很紧:v0.70.0 加入 2x/3x 界面缩放、MIDI 设备支持和顾问消息历史,v0.70.1 修复了数个崩溃问题,完整的 changelog.txt 可以从 2026 年一路翻到项目早期。

从 640×480 到 4K:现代化引擎带来的变化

原版 1997 年发布时的限制,CorsixTH 目前能解决到什么程度:

项目1997 原版CorsixTH
画面640×480 固定分辨率1080p/4K,支持缩放与 2x/3x UI 缩放
平台DOSWindows / macOS / Linux / BSD,另有 Flatpak、Snap
关卡官方固定战役自定义关卡与战役,内置地图编辑器
存档有限存档位无限存档文件
音乐仅原声带可接入个人音乐库
语言官方翻译20 多种语言,Lua/languages/ 下共 24 个语言文件

原版全部 34 种疾病、全部房间、急诊与地震等事件、点唱机和作弊码都已可用,完整战役可以正常通关。官方 README 同时列出了尚未实现的清单:多人/局域网联机、AI 对手医院、老鼠和呕吐潮,这份清单是判断"它能做什么"时可靠的边界。

为什么游戏逻辑用 Lua 写:C++ 与 Lua 的两层架构

AGENTS.md 对架构的描述很直白:C++ 负责 I/O 和性能敏感的部分,Lua 负责游戏逻辑。具体分工是——CorsixTH/Src/ 里的 C++ 基于 SDL3 处理图形、音频、视频、输入,并实现寻路等计算密集功能;CorsixTH/Lua/ 里则是全部玩法,入口在 app.lua,世界与时间管理在 world.lua,玩家医院的逻辑在 hospitals/player_hospital.lua。

这种拆分的实际收益是:改一个玩法行为不需要重新编译 C++。比如加一种新疾病,参考 diseases/ 下任何一个约 60 行的文件即可,核心就是诊断与治疗链条:

disease.diagnosis_rooms = { "x_ray", "scanner" } disease.treatment_rooms = { "psych" }

一个值得注意的工程细节:这些 Lua 代码必须同时兼容 Lua 5.1 到 5.5 以及 LuaJIT,仓库里为此维护了一层兼容代码。想参与开发的话,改动前要先查现有兼容层,而不是直接用新版语法。

画出你自己的医院地图:内置地图编辑器

CorsixTH 自带功能完整的地图编辑器(dialogs/resizables/map_editor.lua,约 1600 行),可以在格子上放置墙壁、地板、入口大门甚至直升机坪,然后保存为关卡文件。仓库里就带着成果示例:Campaigns/ 下有 12 张战役地图(Coffalot、Greyham Gardens 等),Levels/ 下另有示例与定制关卡。

对玩家的意义有两层:社区创作的地图和战役放进游戏就能直接玩;自己画的关卡改坏了随时回到编辑器里修,不用等官方发布。

从修 bug 到加新房间:贡献路径

CONTRIBUTING.md 的流程写得很细:动手前先在 issue 区留言占位,新功能先开 Feature Request 讨论。Pull Request 用标题标签表示状态([WIP]、[RFC]或合并就绪)和类型(PR:Bugfix、PR:Feature、PR:Translation)。测试分两套:C++ 在 CorsixTH/CppTest/,Lua 在 CorsixTH/Luatest/,C++ 代码提交前需过 clang-format。

不写代码的人也有位置:20 多种语言中部分译本还在更新,翻译和文档维护都是明确的贡献方向。

【免费下载链接】CorsixTHOpen source clone of Theme Hospital项目地址: https://gitcode.com/GitHub_Trending/co/CorsixTH

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询