本页目录

《上古卷轴3:晨风》开源 RPG 引擎(OpenMW)

openmw · OpenMW/openmw

OpenMW 是一个用 C++ 编写的开源开放世界 RPG 游戏引擎,支持运行 Bethesda 的《上古卷轴3:晨风》(Morrowind),但玩家需自备正版游戏。项目还附带 OpenMW-CS,用于替代官方的 Construction Set 编辑器。当前版本为 0.53.0,采用 GPLv3...

策略 塔防 沙盒生存 自研引擎 Java 敌人 AI 寻路算法 游戏状态管理 网络联机 高级
★ Stars 6,735 Forks 1,164 License GPL-3.0 更新 2026-11-09

国内开发环境适配

Windows
官方声明支持
Linux
官方声明支持
macOS
官方声明支持
引擎 / 框架:自研引擎 暂无中文教程标记 未标记站长实测
需严格使用 JDK 17,其他版本按 README 不可用;Gradle 依赖与 Android SDK 下载可能受网络影响,建议配置镜像;README 给出 Windows 与 Linux/macOS 的 gradlew 命令及 Android SDK 许可步骤,具体国内镜像与网络配置待核验。

中文项目介绍

Mindustry 在 README 里用一句话给自己定位:The automation tower defense RTS, written in Java,即“用 Java 编写的自动化塔防 RTS”。仓库 topics 同时列出 android、desktop、mobile-game、multiplatform、rts、sandbox-game、tower-defense,说明它并不是单一的桌面小游戏,而是同一套代码库同时面向桌面、移动端与服务器端的跨平台项目。题材上它把“自动化生产”与“塔防防御”结合:玩家需要在工厂式的生产链条与防御工事之间做布局取舍,用产出支撑防线;仓库描述中的 rts 与 sandbox-game 标签也表明它带有即时战略与沙盒建造的成分。具体的资源种类、关卡数量、平衡性等细节需要以游戏内实际版本为准。

项目在 README 中给出了三条主要文档入口:Trello 上的开发计划板(Mindustry 4.0 plans)、托管在 mindustrygame.github.io 的 Wiki,以及同一域名下的 Javadoc 文档。对希望参与开发的人,README 指向 CONTRIBUTING.md 说明代码风格与 PR 规范,并特别提示首次贡献者可以去 Mindustry-Suggestions 仓库查找带 candidate 标签的 issue,那里汇总了适合新手的待实现功能与待修复缺陷;功能请求与反馈也被引导到该建议仓库而非主仓库 issue 区。这种“主仓库写代码、建议仓库收集需求”的分工,是阅读该项目协作流程时值得注意的一点。

核心功能

核心特性

构建体系基于 Gradle,README 给出 desktop、server、android、tools 等多个目标。官方强调必须使用 JDK 17,其他 JDK 版本不可用。在 Windows 下运行 gradlew desktop:run、打包 gradlew desktop:dist、精灵图集打包 gradlew tools:pack;Linux 与 macOS 则在前面加 ./gradlew,若遇到 Permission denied 或 Command not found,需要先执行一次 chmod +x ./gradlew。服务器端把命令中的 desktop 换成 server 即可,例如 gradlew server:dist。构建完成后,桌面版产物位于 /desktop/build/libs/Mindustry.jar,服务端产物位于 /server/build/libs/server-release.jar。此外每次提交都会自动生成前沿构建,发布在 MindustryBuilds 仓库的 releases 中,不想本地编译的人可以直接取用。

Android 构建步骤相对繁琐,README 要求安装 Android SDK 的“Command line tools only”版本(并非必须装 Android Studio),把 cmdline-tools 内的内容放入新建的 latest 目录,执行 sdkmanager --licenses 接受许可,设置 ANDROID_HOME 环境变量指向 SDK 目录,在设备或模拟器上开启开发者模式,然后运行 gradlew android:assembleDebug,会在 android/build/outputs/apk 下得到未签名的 APK;要在已连接设备上调试,则用 gradlew android:installDebug android:run。README 还提醒 Gradle 首次下载依赖可能耗时数分钟,需要耐心等待。

技术架构分析

技术要点

技术实现上最有意思的是代码生成机制。README 专门解释“mindustry.gen 包在哪”:这个包在构建期由其他代码生成,仓库中不存在其源码,也不应手工编辑。生成来源包括:标注 @Remote 的方法生成 Call 与各类 *Packet 类;所有实体类(Unit、EffectState、Posc 等)由 mindustry.entities.comp 中的组件类与 mindustry.content.UnitTypes 中的定义组合而成;Sounds、Musics、Tex、Icon 等则依据各自资源目录中的文件生成。换言之,项目用组件组合的方式描述实体,并把网络协议与大量样板代码交给构建期生成,这既解释了为什么直接搜索仓库找不到这些类,也体现了它自研框架的架构思路。

分发渠道方面,README 底部列出了四个下载入口:itch.io、Google Play、F-Droid 与 Flathub,覆盖桌面与 Android 两类平台;服务端构建则随每个发布版本一并打包在 Releases 中。项目主页为 mindustrygame.github.io。对学习者而言,这个仓库适合研究 Gradle 多平台(桌面/服务端/Android)工程组织、构建期代码生成、资源管线与基于组件组合的实体系统;但项目体量大、生成代码多,建议先从 CONTRIBUTING 与 comp、content 相关包入手。国内环境下 Gradle 依赖下载与 Android SDK 组件下载可能较慢,是否需要镜像需自行核验。

开源许可证与版权说明

许可证标识:GPL-3.0。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目