最近打算学习creator,跟着官方教程做了遍发现和u3d有些相似,用着还算顺手,就是实在无法习惯js,后来改成ts终于有些感觉,所以决定继续优化这个ts版的官方教程。

前段时间学习go的时候写了个服务端框架(DrillServer:https://github.com/BAN1993/DrillServerGo.git),正好拿来和这个项目结合,做个联网对战的游戏。

先上源码:https://github.com/BAN1993/CatchStar.git


Client

对玩法和动画上有所改进,人物更加Q弹,改动较小就不做阐述了。

  • 网络模块

添加了网络模块(NetWork)。业务模块通过regist注册监听,网络模块收到协议后依次回调。

客户端本地也有一个数据回调机制(DataPoster),与网络模块类似,业务模块通过regist注册,数据发生改变时(如收到协议或本地角色更改方向)调用update则会通知到每个注册过的模块上。

  • 同步机制

游戏主要采用帧同步,每N帧同步一次位置和方向。为了减少瞬移和延迟的情况,做了预测和修复位置的逻辑:根据当前方向实时绘制预测的位置,当收到同步协议后,如果距离偏差较大则使用动画将角色拖拽到准确位置。

 

Server

服务端使用最典型的框架

Gateway:负责转发协议

DataBaseServer:负责处理大厅协议(登录、注册等)

GameServer:处理游戏区协议

 

Logo

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!

更多推荐