open-sourcegamespacetradingcombatrpg2d type: concept 创建: 2026-04-10 更新: 2026-04-10
Naev
2D 太空贸易与战斗游戏,灵感来自 Escape Velocity 系列
基本信息
| 项目 |
内容 |
| GitHub/Codeberg |
https://codeberg.org/naev/naev |
| 语言 |
C + Rust 混合(C 为主,~155K LOC C/Rust) |
| 构建系统 |
Meson (C11 + Rust 2024) |
| 渲染/引擎 |
SDL3 + OpenGL 3.3+ |
| 许可 |
GPLv3 |
| 版本 |
0.14.0-alpha.4 (unreleased) |
| 平台 |
Linux, Windows, macOS, Steam, itch.io, Flathub |
核心技术点
C + Rust 混合架构
- 主体代码使用 C11,Rust 用于新模块和 FFI 绑定
bindgen 0.72+ 生成 Rust ↔ C 绑定
rustc >= 1.89 + clang (用于 bindgen 找标准库)
- Meson 统一构建(C 和 Rust 混合编译)
- subprojects 机制处理外部 C 库依赖(SDL3/GLPK/enet/physfs 等)
数据驱动设计
- Lua 5.1/LuaJIT 脚本驱动游戏逻辑和任务系统
- gettext 国际化(
po/naev.pot + Weblate 翻译)
dat/ 目录资源数据与代码分离
- Plugin 系统(v0.10.0+),内置 Plugin Manager(v0.13.0+)
- ndata 打包格式 + PhysicsFS 虚拟文件系统
渲染架构
- SDL3 窗口和输入抽象
- OpenGL 3.3+ 着色器渲染
- GLTF 模型支持(gltf.c/glad.c)
- 自定义着色器(shaders_c_gen.py 生成的 C 着色器代码)
opengl_render.c/h 独立渲染管线
核心子系统
pilot.c 飞行员/飞船系统(AI + 玩家控制)
economy.c 经济系统(商品、贸易)
mission.c 任务系统
faction.rs 派系系统(Rust 重写)
space.c 太空地图/星系
event.c 事件系统
spob.c 太空站/行星(spob = space object)
玩法特点
- Escape Velocity 风格:俯视角太空飞船,自由贸易和战斗
- 银河探索:不断扩展的星系和剧情任务
- 装备和飞船:大量装备和飞船收集
- 派系声望:派系关系影响游戏进程
- 插件系统:玩家可制作和安装插件扩展游戏
- 多语言:20+ 语言国际化支持
对公司 AI 游戏的参考价值
| 方向 |
启示 |
| C/Rust 混合 |
现有 C 代码库可逐步迁移 Rust 子系统(参考 Naev pilot.rs/faction.rs) |
| Meson 跨平台 |
多语言项目统一构建方案 |
| Lua 脚本驱动 |
游戏逻辑数据化,插件化扩展 |
| 插件热加载 |
Mission/Event/Outfit 插件系统设计参考 |
| 国际化和翻译 |
gettext + Weblate 协作流程 |
| 体素风 2D 太空 |
俯视角 2D 空间渲染 + 着色器特效 |
项目亮点
- 严格 AI 政策:明确禁止 LLM 生成代码提交,维护代码质量
- 依赖自包含:subprojects 确保各平台编译一致性
- 艺术资产分离:naev-artwork 作为 git submodule 独立管理
- 发布多渠道:Steam + itch.io + Flathub + 各发行版包管理器