open-sourcegamebusiness-simluacppsdl type: concept 创建: 2026-04-09 更新: 2026-04-09
CorsixTH
Theme Hospital 完全开源重实现,支持现代操作系统、高分辨率、自定义关卡
基本信息
| 项目 |
内容 |
| GitHub |
https://github.com/CorsixTH/CorsixTH |
| 语言 |
C++ (49 .cpp) + Lua (327 .lua) |
| 构建系统 |
CMake |
| 渲染/引擎 |
SDL2(需要原版游戏美术资源) |
| 许可 |
GPLv3 |
| 平台 |
Windows, macOS, Linux, BSD, Flatpak, Snap |
| 状态 |
可完整通关战役,多人/LAN 待完成 |
核心技术点
混合 C++/Lua 架构
- C++ 层:SDL 封装、文件 I/O、持久化、音视频、随机数、ISO 文件系统解析
- Lua 层:几乎全部游戏逻辑(room/疾病/实体/AI/对话/经济系统)
- Lua 使游戏逻辑对 modder 完全开放,无需碰 C++ 代码
SDL + 原版资源复用
- 不含任何原版美术资源,需要原版 CD/GOG/EA 下载提供 graphics/sound
lua_rnc.cpp/h:RNC 压缩格式解包(原版资源打包格式)
iso_fs.cpp:ISO 9660 文件系统解析,读取原版光盘镜像
数据驱动设计
- 关卡定义:Lua 脚本(
CorsixTH/Levels/)
- 战役配置:Lua 脚本(
CorsixTH/Campaigns/)
- 建筑/疾病/员工配置均 Lua 表,易于扩展
主要模块(Lua 层)
| 模块 |
职责 |
app.lua |
主应用循环、状态机 |
entities/ |
患者/医生/护士等实体 AI |
diseases/ |
各种疾病诊断治疗逻辑 |
diagnosis/ |
诊断室设备逻辑 |
dialogs/ |
UI 对话框 |
epidemic.lua |
传染病爆发事件 |
玩法特点
- 经营模拟:建造医院、雇佣员工、治疗病人、管理预算
- 疾病系统:各种滑稽疾病(比如屁股头、仙人掌刺)需要对应科室
- 事件系统:急诊、流行病、地震、VIP 参观
- 自定义关卡/战役:完全开放关卡编辑器和战役格式
- 现代增强:Full HD、缩放、自定义音乐、无限存档
对公司 AI 游戏的参考价值
| 方向 |
启示 |
| Lua 游戏逻辑分离 |
Lua 层完全开放 mod,无需修改 C++ 核心 |
| 数据驱动房间/疾病配置 |
新内容无需改代码,只需配置 Lua 表 |
| SDL 跨平台抽象 |
SDL 是成熟可靠的跨平台游戏引擎选择 |
| 实体-AI 分离设计 |
患者/员工 AI 独立于渲染层 |
| 资源热插拔 |
原版资源复用架构值得参考(公司可能也需要兼容旧资产) |
相关页面