规划已实现于2026年08月16日
当前实现
之前一段时间在想,很多公司有接入微信、抖音小游戏的需求,应该有很多,所以webgl的兼容必不可少,但是WebGL又不支持TCP\UDP\KCP,以及多线程,于是又新开了一个WebGL的分支,把MTask做了兼容性改造,并且借鉴(抄袭?不算吧,学了一部分思想)了它的PlayerLoop。
目前已经支持在webgl上跑小游戏,且已经放到本网站的项目中作为demo显示了。
新的规划
有点杞人忧天,万一游戏火了是吧…
那单服的节点无法扩容的情况下肯定要GG啊,那要不就再加一个多服扩展吧。又左右权衡了一下,搞的太过了吧,就好像不够轻量了啊,本来要的是敏捷开发,结果越设计越臃肿,那可不行。
最后,经过设计,最终版如下:
HTTPS的登录服务(可选)、一个必要的Coordinator服务(用于服务注册、服务发现,也就是用于支持多服务器扩展的)、可动态分配的服务器类型、DBServer(数据库服务器,可选)、客户端。
框架层面的改动是:
协议要分服、程序集要分服(为了维持DedicatedServer的开发方式,需要在打包客户端的时候把服务端代码过滤掉,防止泄露)、多了一个必要的Coordinator(依然是DedicatedServer)。
(放轻松,别被吓到,我尽量都写成一键装配、一键打包,稍微注意一下当前代码属于Client还是Server就好了)
好处是:
既能在服务器到达上限时动态扩容(一定程度上),又没有增加太多的复杂性。坏处是要设置一下Handler属于哪个服务器了,不过目前设计来看应该不复杂。