最近研究了一下网游帧同步技术, 用H5实现了一个demo

demo比较简单,实现了一个坦克游戏, 能发子弹, 能上下左右移动, 坦克 和子弹 能和墙壁做碰撞检测,没有实现子弹击杀对方的效果, 多个客户端可以互相看到对方的操作,而且保持一致。当然还有很多值得优化的地方

客户端技术

  1. 使用websocket 通讯协议
  2. 使用protobuf 封包解包
  3. 使用react 脚手架 create-react-app 快速搭建客户端应用,使用antd 组件库实现登录UI
  4. 使用canvas 绘制坦克和子弹
  5. 使用帧同步技术同步玩家操作,逻辑帧和渲染帧分离, 逻辑帧和服务器帧一致,逻辑帧每秒15帧, 渲染帧每秒30帧
  6. 每个子弹有独立的定时器处理
  7. 断线重连时会下发历史帧记录, 客户端根据历史帧快速进行追帧推演

服务器技术

  1. nodejs 语言,高度封装websocket 协议,使用protobuf 封包解包
  2. 固定帧率广播所有玩家的帧操作

git地址: https://github.com/zhengjinwei123/GameTech

最后, 欢迎Star 或 打赏

H5 网络版坦克大战相关推荐

  1. 基于Eclipse+GUI+Swing开发得网络版坦克大战多人联机版本设计和实现

    总体功能图: 总体流程图:     图3  启动测试图     图4  建立主机按钮测试图 图5  连接主机按钮测试图 (3)点击帮助按钮,成功在页面上显示游戏的方法.如图6所示.     图6  帮 ...

  2. QTC++实现网络版坦克大战

    网络消息传输用的是QJson 代码地址:https://github.com/ChenYilei2016/MyTankWar

  3. 用 Java 实现坦克大战,这个有点强了!

    在Java开发中,坦克大战项目和23种设计模式无疑是经典中的经典,就算是开发5年甚至是10年以上的开发者,都不敢说自己真真实实掌握了23种设计模式,希望大家能够好好学习,并且能够掌握这些细节性的东西. ...

  4. java视频 坦克大战制作

    学习一门编程语言入门,什么方法比较快,那肯定是跟着老师一起来找一个项目入手了,下面是java  坦克大战制作视频链接地址,该视频报包裹了本地版坦克大战,局域网版坦克大战,网络版坦克大战,有需求的同学可 ...

  5. C#坦克大战网络版代码

    简单C#坦克大战网络版代码 写完单机版 [url=http://blog.csdn.net/xiaoxiao108/archive/2010/12/18/6084473.aspx]http://blo ...

  6. 射击小游戏源码《90坦克大战》源码H5+安卓+IOS三端源码

    cocos creator2.2.2射击小游戏源码<90坦克大战>源码H5+安卓+IOS三端源码,开发脚本为javaScript方便扩展和阅读,支持cocos creator2.X版本,完 ...

  7. 坦克大战游戏Java网络版设计

    目 录 1.引言 1 2.系统分析 2 2.1需求和技术分析 2 2.2功能分析 2 3.总体设计 2 3.1总体功能 2 3.2坦克大战总体流程图 4 4.详细设计 5 4.1面板功能设计 5 4. ...

  8. 坦克大战java_清华毕业大佬用一个坦克大战项目讲完了23种设计模式

    先给大家讲述一下坦克大战是怎么进行运行的. 坦克大战第一节: new 出一个窗口: 设定标题栏内容: TankFrame从Frame继承+显示: 认识paint方法,重写: 坦克大战第二节 学习gra ...

  9. 基于QT的C++的坦克大战游戏

    近期培训期间做的基于C++的坦克小游戏,欢迎评论. 首先是主驱动部分:tankclient.h,和tankclient.cpp tankclient.h部分 #ifndef TANKCLIENT_H ...

  10. 初学java 第一个java程序 坦克大战单机版

    网上坦克大战的游戏并不少,包括单机版,网络版.然而,作为一名程序员,学一门语言的最好方式莫过于写程序.在写的过程中,你会遇到很多的问题,这个时候你再去找原因,查帮助文档,谷歌百度等等,你的能力才会进步 ...

最新文章

  1. 信息哲学给哲学带来根本性革命了吗
  2. ubuntu server中的一些小知识(个人收集贴)
  3. endl与'\n'的区别
  4. Python 获取当前时间或当前时间戳,通过时间戳获取hash
  5. 51nod 更难的矩阵取数问题 + 滚动数组优化
  6. PHP上传文件大小和时间限制
  7. STM32新手入门教程
  8. 你知道怎么用STM32控制舵机吗?
  9. Maven打包时指定配置文件
  10. 英伟达显卡驱动历史版本
  11. Meta 开源首个 AI 语音翻译系统,闽南话和英语可以直接语音互译
  12. jQuery实现鼠标滑过图片放大效果
  13. 第11章从 Web 抓取信息
  14. c++语言 幂指数,C / C++幂函数,计算给定数字的幂
  15. C#高斯平滑算法 :二维高斯卷积代码实例
  16. SumToken钱包怎么样_SUMTOKEN钱包靠谱吗
  17. 如何学会记账,并分别统计每个月收入和支出的金额
  18. 微信自定义菜单和个性化菜单添加emoji表情(兼容ios和安卓,防止小方框)
  19. Windows开机自启动jar包
  20. MAX86150血氧、心电图驱动开发(STM32F103r8T6)

热门文章

  1. 收到一个神盾局的offer,怎么样?
  2. bzoj4134 ljw和lzr的hack比赛 trie树合并
  3. “WebProxyWrapper”的对象强制转换为类型“System.Net.WebProxy
  4. 生命中,很多事是事在人为
  5. Python进阶(九) -- 操作excel文件
  6. virtualbox下安装雪豹10.6系统(AMD下亲测成功)
  7. linux有线网设置方法,有线网络使用教程
  8. 安卓系统怎么连接服务器数据库,安卓服务器连接数据库的方法
  9. 在电脑上微信无法语音聊天,微信听不到语音声音
  10. 十大超级老牌黑客逐个曝光