前后端对接的重复劳动
在传统的游戏开发流程中,后端写完一组接口后,每个客户端团队都要做同样的事:
- 阅读接口文档,理解每个字段的含义
- 手动编写网络请求代码
- 手动编写数据解析代码
- 如果后端改了接口,所有客户端都要跟着改
当你的项目同时支持 Godot、Unity、Web 前端时,这意味着同一份接口要被实现三遍。后端每改一个字段,三个团队同时返工。
ionet 的解决方案是:后端写一次 Java 代码,自动为所有客户端生成交互接口。
支持的客户端
ionet 的代码生成能力覆盖主流游戏引擎和前端框架:
| 平台 | 语言 | 引擎/框架 |
|---|---|---|
| Godot | GDScript / C# | Godot Engine |
| Unity | C# | Unity Engine |
| Unreal | C++ | Unreal Engine |
| CocosCreator | TypeScript | Cocos Creator |
| Laya | TypeScript | LayaAir |
| Web 前端 | TypeScript | React / Vue / Angular |
| 自定义 | Lua / 其他 | 可扩展 |
支持的 SDK 语言:C#、TypeScript、GDScript、C++、Lua,并且支持扩展。
工作原理
代码生成的流程是:
Java 后端代码(@ActionController + @ProtobufClass)
↓ 解析
提取路由、方法签名、协议结构
↓ 生成
为目标语言生成统一的交互接口代码
↓ 使用
客户端直接调用生成的接口
后端的 Action 定义和协议类就是"接口文档",代码生成器自动从中提取所有信息。
几个核心优势
1. 接口一致性保障
所有客户端使用的接口都从同一份 Java 代码生成,不存在"文档和代码不一致"的问题。后端改了接口 → 重新生成 → 客户端代码自动更新。
2. 减少沟通成本
不需要写接口文档、不需要开会对接口、不需要"你看一下那个第三个参数是 int 还是 long"------代码即文档。
3. 提升巨大的生产力
假设你有 100 个接口,3 个客户端平台。传统做法需要实现 300 次,代码生成只需要你写 100 个 Java 方法,然后运行一次生成器。
4. 协议变更零成本
后端从 Protobuf 切换到 JSON?客户端代码不需要改------因为它是由机器生成的,重新生成即可。
协议切换的灵活性
ionet 不仅支持代码生成,还支持一行代码切换数据协议。
无论你用 Protobuf 还是 JSON,业务方法的写法完全相同。这在需要兼容多种客户端的项目中尤其有用:
- 游戏客户端用 Protobuf(追求性能)
- Web 管理后台用 JSON(方便调试)
- 同一套后端代码,同时服务两种客户端
小结
"一次编写到处对接"不是一句口号,它是 ionet 实际提供的工程能力:
- 后端:写一次 Java 代码
- 代码生成:自动为 C#、TypeScript、GDScript、C++、Lua 生成交互接口
- 客户端:Godot、UE、Unity、Cocos、Laya、React、Vue、Angular 直接使用
这意味着你的后端团队可以专注于业务逻辑,而不是在"如何让客户端正确调用我的接口"上花费时间。
更多资源
下一篇预告:[一套业务代码,多种协议自由切换]