主题医院重制版 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 本体不带原版的美术、音频与动画资源,这些数据全部从原版《主题医院》的文件里读取。这是项目采用"干净室"路线的结果:代码重新实现,资源沿用原版,行为以观察原版表现为准。首次运行前要做三件事:
- 安装对应平台的构建(Windows/macOS 安装包、Linux AppImage,或发行版软件源、Flatpak、Snap)
- 找到一份原版游戏数据:光盘或从 GOG、EA 等渠道购买的数字版拷贝
- 启动时指定原版数据目录的路径
这一步只需做一次,路径配错时游戏会明确提示,照提示修正即可,不需要改动任何文件。
🚀 安装与上手步骤
普通玩家的路径最短:下载发布版本 → 指定原版数据目录 → 选关开玩。想从源码构建的开发者由 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 缩放 |
| 平台 | DOS | Windows / 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),仅供参考