太空工程师模组开发组
@SpaceEngineersModDev
组织主页
了解组织愿景、项目方向与参与方式
🚀 太空工程师模组开发组
Space Engineers Mod Development Group 专注于《太空工程师(Space Engineers)》模组开发、脚本开发、技术研究与社区开源协作。
欢迎来到 太空工程师模组开发组。
我们是一群热爱《太空工程师》的开发者与玩家,致力于围绕 Mod、可编程方块脚本、游戏机制扩展、开发工具以及技术文档 建立一个开放、自由且持续发展的开发社区。
无论你是刚刚开始学习 C# 的新手,还是已经拥有丰富模组开发经验的开发者,都欢迎加入我们,一起探索 Keen Software House 为《太空工程师》构建的这个巨大沙盒世界。
🌌 我们在做什么
我们的主要开发方向包括:
🧩 Mod 开发
基于 Space Engineers Mod API 对游戏内容进行扩展,例如:
- 自定义方块
- 武器与炮塔
- 能源设备
- 推进器
- 工业设备
- 矿物与材料
- 自定义物品
- 游戏机制扩展
- NPC 与 AI
- 世界事件
- HUD 与界面功能
- 自定义逻辑组件
我们希望通过 Mod 为游戏增加更多具有深度的玩法,而不仅仅是简单增加新的方块。
💻 Programmable Block 脚本
研究和开发游戏内 可编程方块(Programmable Block) 脚本。
包括但不限于:
自动驾驶
舰船姿态控制
自动采矿
自动对接
无人机控制
雷达系统
导弹制导
武器控制
库存管理
能源管理
LCD 信息显示
舰队控制
同时我们也会整理相关 API 和开发教程,帮助更多玩家进入 Space Engineers 编程领域。
⚙️ 游戏机制研究
Space Engineers 拥有大量复杂的系统。
我们会研究包括:
- Grid 系统
- Physics 物理系统
- Entity 实体系统
- Terminal System
- Inventory 系统
- Multiplayer 网络同步
- ModAPI
- Visual Script
- Session Component
- Game Logic Component
- Definition 系统
- Object Builder
并尝试将研究成果整理成可复用的代码、框架和文档。
🛠️ 开发工具
为了降低模组开发门槛,我们也会开发一些辅助工具,例如:
- Mod 项目模板
- Definition 编辑工具
- SBC 文件工具
- 模组调试工具
- API 查询工具
- 代码生成器
- 本地化工具
- 模组打包工具
- Workshop 发布辅助工具
如果某件重复工作可以被自动化,我们通常更愿意写一个工具解决它。
📚 开源与知识共享
我们希望这里不仅是一个存放代码的 GitHub Organization,同时也是一个 Space Engineers 中文开发知识库。
因此,我们鼓励成员将开发过程中遇到的问题和解决方案整理为:
- 教程
- Wiki
- 示例项目
- API 文档
- 技术笔记
- 最小可运行 Demo
例如:
IMyTerminalBlock block =
GridTerminalSystem.GetBlockWithName("方块名称");
if (block != null)
{
Echo(block.CustomName);
}
一个简单的示例,也可能帮助后来者节省几个小时的排查时间。
🧑🚀 谁可以加入
我们欢迎任何对 Space Engineers 开发感兴趣的人。
你可以是:
- C# 开发者
- Mod 作者
- 游戏脚本开发者
- 3D 建模师
- 像素 / UI 设计师
- 游戏机制设计者
- 文档维护者
- 技术研究者
- 普通 Space Engineers 玩家
不会开发也没有关系。
测试模组、提交 Bug、提出建议、完善文档,同样是非常重要的贡献。
🛰️ 项目理念
我们希望组织中的项目尽量遵循以下原则:
开放
在条件允许的情况下,我们倾向于将项目开源,让其他开发者可以学习、修改和改进。
可维护
相比于“能运行”,我们更关注:
半年之后自己还能不能看懂这段代码。
因此我们鼓励:
- 清晰的目录结构
- 合理的命名
- 必要的代码注释
- 完整的 README
- 明确的版本记录
可复用
如果一个功能可以被多个项目使用,我们更希望将其设计成独立组件,而不是复制粘贴。
尊重原创
我们尊重每一位开发者的劳动成果。
未经授权,请不要:
- 搬运他人的 Mod
- 删除原作者署名
- 重新发布他人的作品
- 将他人代码作为自己的原创内容发布
使用第三方代码或资源时,请遵循对应许可证。
🔧 技术栈
开发过程中可能涉及:
C#
.NET
Space Engineers ModAPI
VRage
Sandbox API
XML / SBC
Visual Studio
JetBrains Rider
Git
GitHub
Steam Workshop
Blender
部分工具项目可能还会使用:
ASP.NET Core
WPF
WinUI 3
Avalonia
SQLite
Python
具体技术栈以各个仓库 README 为准。
📦 仓库规划
组织中的仓库可能按照以下方式进行划分:
| 类型 | 说明 |
|---|---|
SEMod-* |
Space Engineers 模组 |
SEScript-* |
Programmable Block 脚本 |
SETool-* |
模组开发辅助工具 |
SELibrary-* |
可复用开发库 |
SEExample-* |
API / 功能示例 |
SEDocs-* |
教程与技术文档 |
随着项目发展,这一结构可能继续调整。
🤝 如何参与
发现问题时,可以直接在对应仓库提交:
Issue
适合:
- Bug
- 功能建议
- API 问题
- 文档问题
- 游戏版本兼容问题
提交 Bug 时,建议尽量提供:
Space Engineers 游戏版本
Mod 版本
是否单人游戏
是否 Dedicated Server
完整错误日志
复现步骤
相关截图 / 视频
信息越完整,问题通常越容易定位。
Pull Request
如果你希望直接参与开发,非常欢迎提交 PR。
推荐流程:
Fork Repository
↓
Create Branch
↓
Develop
↓
Commit
↓
Push
↓
Pull Request
例如:
git checkout -b feature/new-radar-system
完成开发后提交 Pull Request,并说明本次修改的内容。
🐛 关于 Bug
Space Engineers 的 Mod 开发有时会遇到一些非常……Space Engineers 的问题。
比如:
单人正常
多人爆炸
本地正常
服务器报错
昨天正常
今天更新游戏后失效
看起来没问题
但网格突然飞到了 20km 外
遇到这些情况不要慌。
先保存日志。
然后检查:
%AppData%\SpaceEngineers\SpaceEngineers.log
服务器则检查对应 Dedicated Server 日志。
日志通常比“它坏了”更容易帮助开发者解决问题。
📖 学习路线
如果你刚刚接触 Space Engineers 开发,可以参考:
C# 基础
↓
Space Engineers 可编程方块
↓
GridTerminalSystem
↓
常用 IMy* 接口
↓
游戏脚本
↓
ModAPI
↓
SessionComponent
↓
GameLogicComponent
↓
多人同步
↓
完整 Mod 项目
不需要一次学完所有 API。
从一个很小的功能开始通常是最好的方式。
比如:
找到一个方块,然后修改它。
再逐渐发展成:
找到整艘舰船的方块并建立控制系统。
最后可能就变成:
我好像写了一个舰队 AI。
🌍 我们希望建立什么
长期来看,我们希望这里能够逐渐成为一个完整的:
Space Engineers 中文模组开发社区
沉淀包括:
- 中文 API 教程
- 模组开发模板
- 示例代码
- 开源 Mod
- 开发工具
- Debug 经验
- 技术研究
- 常见问题解决方案
让新的开发者在搜索一个问题的时候,不必再翻几十个几年前的论坛帖子才能找到答案。
⭐ 支持项目
如果我们的项目对你有帮助,可以:
- ⭐ Star 仓库
- 🐛 提交 Issue
- 🔀 提交 Pull Request
- 📖 完善 Wiki
- 💬 参与 Discussions
- 📢 向其他 Space Engineers 玩家推荐项目
每一次贡献都会让这个社区变得更完善。
📬 联系我们
如果你希望:
- 加入开发组
- 合作开发 Mod
- 提交项目
- 提供建议
- 反馈问题
可以通过组织中的 Discussions / Issues 与我们联系。
🚀 Build · Explore · Engineer
如果这个宇宙没有你想要的东西,那就自己把它写出来。
Made with ❤️ for Space Engineers