不想再回到C++了,所以使用c#.
MakeEditor是一个开源项目.地址:https://gitee.com/three_less_grass/make-editor.git
MakeEditor目标:制作各种跨端跨平台工具,特别是编辑器的框架.优先围绕游戏制作.
打算写3个系列:
笔记篇:代码是很随意的,都是测试使用,每个测试项目都有结论.主要用于探讨思路和验证猜想.
正式篇:标准代码,优化性能,满足开发插件的要求.
商业篇:制作各种插件,满足游戏的各种开发需求.这些插件源码可能有偿提供,但是原理和效果,都会在博客上有详细说明.而且插件都是可以白嫖的.
我们做游戏是有很多工具需求的,前端:地编/动画编辑/特效编辑/UI编辑/剧情编辑/表格导入导出/等等. 后端:协议定义/脚本编辑和调试/,后台:运营工具/运维工具/需求管理 等
上述工具,都可以由MakeEditor制作对应的工具
如何实现应用跨端跨平台:只面向比较大众的端和平台(各种主机端,比如xbox什么的不在考虑范围)
首先端分3类:桌面/移动/web,在这3端上有各种os...window/linux/mac/android/ios等
精力有限,所以例子都是优先以window桌面,安卓移动为主,web在后面再加入.并不是说其他os的平台不跨,而是优先不搞,商业篇才会考虑.
跨端跨平台需要跨什么?
1.资源读写要跨平台,和maui一样分捆绑资源,缓存资源,外部资源3样.
2.创建窗口容器要跨平台,桌面叫窗口,其他的叫页面.
3.和用户的交互要跨平台,比如鼠标,键盘,多点触屏等.
4.图形渲染要跨平台,支持2d和3d的图形展示.
采用的方案:silk.net+skiasharp+.net8 其实silk.net使用的gui是imgui
silk.net里面有很多跨平台的库,具体的自己搜索吧.
skiasharp有完整的api文档,中文的,而且比较流行,所以用于做ui,以及2D相关应用.
整个设计理念就是:MakeEditorRun+插件 = 应用
MakeEditorRun:通过接口,给插件提供各种服务.比如资源访问,UI事件通知,图形绘制,网络等等.也可以让插件间访问对外的功能.逻辑必需是单线程.
插件:运行在MakeEditorRun里,通过各种事件(skin属性变更事件,UI事件,网络事件)进行逻辑驱动.插件提供对外功能,以便于其他插件使用.插件逻辑使用c#开发,其他的通过MakeEditor进行可视化编辑,不像其他UI提供xaml等,skin数据是二进制的,拖拉图形不香吗?制作好的插件,可以通过MakeEditor进行测试.
MakeEditor:就是MakeEditorRun+插件可视化编辑+插件单元测试
理论上可以使用MakeEditor再制造一个MakeEditor,只是唯一的意义就是这套东西是一个圆.