注:本文内容已更新至ARTS-Share栏。git
这周服务器主程安排给了我一个任务(实际上是我在用Go作完了一些小demo后,向主程请示下一步的安排),让我将他用Lua语言写的球球大做战的服务端代码转成Go语言形式。github
因而,我开搞了!算法
此内容以上传至github,感兴趣的能够看一下github地址服务器
框架主要分如下几个部分网络
由于要有主入口,因此要新增一个server文件,client文件用来测试服务器端。而服务器又分如下几类:框架
球球大做战中服务器端主要是与玩家和AI作交互。函数
玩家要将本身的数据传递给服务器端作记录,并作好消息的分发,例如:工具
当客户端链接失败后,将于服务器端断开链接。学习
战斗逻辑主要是根据玩家传递过来的信息跳转到相应的战斗逻辑中测试
战斗逻辑中分为:
主要是用四叉树算法进行检测,这块是个硬骨头,还在啃...
涉及算距离,长度,宽度,格式变换时,总不能在每一个文件中写一样的函数吧。所以专门创建一个工具文件,其余文件要用这个文件里的某个工具时,导入便可,方便高效。
主要是在更新玩家视野这部分,须要先计算出玩家视野的中心点坐标,再计算玩家的视野范围;
除此以外还有移动管理模块,服务器端管理模块等等。(这部分信息量较大,还在学习中)
以上就是我看完第一遍游戏球球大做战战斗服务器端源码后的小结,后续将会画出战斗服务器的逻辑流程图,理清战斗逻辑,尝试本身使用Go语言完成。
另外,因为该游戏服务器端的网络库是由sniperHW本身开发的,所以我还得考虑如何用Go语言实现其网络库的功能。