Golang + Laya引擎实现的简易版“球球大作战”小游戏

本文介绍了使用Golang作为服务器框架,结合Laya引擎的JavaScript版开发简易版‘球球大作战’小游戏的过程。文章讨论了如何解决实时对战的时延性和网络IO开销问题,采用状态同步策略,并记录新生成和死亡的球球以减少数据传输。此外,还展示了游戏截图和实际游戏链接。
摘要由CSDN通过智能技术生成

开发动机

学习Golang语言以来,先后实现了个人博客,生活美食推荐系统,以及一些如日志收集工具等开发能用到的小工具,但还没写过游戏。前不久,利用闲暇时间,写了套简易的分布式游戏框架,心想写好了不投入实践使用,不能看到效果啊,所以决定写一个小游戏案例来玩一玩!


技术支持

服务器框架只实现了简单的服务间通信,中心管理,游戏配置,网络传输层,db等功能,传输协议使用TCP + Protobuf 3,服务器通信采用 RPC + HTTP ,DB采用 Mysql + Redis 持久+缓存。

客户端前后比较了多款主流引擎,由于我有JS基础,且考虑到没打算深钻引擎,所以选了 Laya 引擎的 JS 版,有基础就容易上手,看了一个下午的视频教程就算是入了门了,且 Laya 官网有完整的API文档和一些小案例,对新手而言很友好。


技术难点

1、时延性

球球大作战是一款休闲类的实时对战游戏,对于实时对战游戏而言,如果时延高的话,玩起来体验感就特别差了, 所以第一难点就在于如何做到无时延或低时延,这里我采用的游戏同步方式是状态同步,客户端的移动操作在每帧效果内进行体现, 同时将移动操作发送给服务器,服务器有一个tick循环,将模拟每50/100ms向房间内的玩家推送同步数据,这里看了下球球大作战技术人官宣的方案, 他们也是如此设计的,

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值