整体概述是 https://my.oschina.net/kkkkkkkkkkkkk/blog/3190865
引入C#是为了降低开发难度,特别是战斗服部分,相比使用lua具有高性能,双端开发等优势。
引擎主体还是C/C++实现。这一点和Unity就很像了。引入后服务端支持C/C++ Lua C#混合编程。
引入C#主要应用场景是游戏逻辑开发(主要是战斗部分)。
C#和C/C++混合运行机制在该篇进行了基础概述 Http服务器-第十步加入基于Mono平台的C#脚本支持 https://my.oschina.net/kkkkkkkkkkkkk/blog/4322402
这里阐述在StickEngine中的机制和概念及实现。
设计主体思路是C/C++实现引擎部分和大部分GamePlay框架(网络同步等)。C#实现部分逻辑编写,实现难度降低和双端开发的可能性。在API理念设计上靠向于Unity,这样开发人员上手就比较快了。C#在这里扮演的角色更像是脚本语言了。
在组织结构上有2个dll,一个是引擎层StickEngine.dll,另外一个是游戏逻辑Scripting.dll。
引擎层dll是随着C/C++版本紧密贴合的。GamePlay开发人员只需要编写Scripting.dll即可。
引擎层dll基本模式
逻辑层dll示例。
TODO
下篇案例讲解 MatchServer的匹配机制 https://my.oschina.net/kkkkkkkkkkkkk/blog/4335619