一个联网的开源格斗游戏demo - Websocket+UDP都支持啦

有兴趣试用的朋友请先打开离线地图操作 https://github.com/genxium/DelayNoMore/blob/main/frontend/assets/scenes/offline_map.fire

自从我觉得cocos不行已经有快10年了,之前一直都没有机会做web版本的输入同步,因为觉得cocos不可能行。然而最近因为做了DelayNoMore,从第一版开始到现在陆续加了不少小细节,逐渐感觉不是引擎不行可能是以前的我不行,于是大胆尝试了一下 – 无奈我策划能力实在是不行,只好开源出来看看有没有看得上又有能力的团队可以拿去做点有意思的东西吧

以下是在公网其中一个房间的录屏

(Android 4G之间对战,实测可以线下看着对方屏幕操作,原视频见此)
Phone4g_battle_spedup

(功能介绍,原视频见此)
Merged_cut_annotated_spedup

v0.9.25起,native版本增加UDP打洞及在打洞失败时后端作为UDP中继的能力

  • 当使用所谓的 native apps(目前仅支持AndroidWindows), 前端将优先尝试使用UDP p2p打洞及传输指令,实测如果打洞成功,rollback的帧数总是低于"角色转向硬直"从而对局比仅使用websocket时流畅度有极大提升
  • 如果UDP p2p打洞不成功,e.g. for Symmetric NAT like in 4G/5G cellular network, 前端也会把后端当作一个UDP中继用,效果会稍差但依然比仅用websocket好,见Phone-4G v.s. PC-Wifi (PC侧录屏)
  • Browser vs native app依然可用,但这种情况下只会都用websocket,效果见前面的录屏

更新了v0.9.28,修复了前端libuv在Android/Windows分别使用时的兼容性问题及线程安全(集中在udp_session.cpp,事实上如果不手动断点等待是不会触发的,但因为碍眼还是修复了)。自v0.9.25起各更新都不会让网络好的时候有什么体验提升,都是针对弱网的优化。

更新了v0.9.31,改善了贴墙跳和惯性起停的体验。

更新了v0.9.34,UDP包接收流程中定制了无锁的RingBuff,目前公网Windows Wifi v.s. Android 4G帧率也相当稳定,效果可参考此视频

21赞

这样的黑子多来点

黑转粉是吧

倒没有,遇到的问题还是比解决办法多

我学cocos断断续续有一年了,一直想做个即时战斗联网的游戏,因为本职是做java后端开发(5年)的原因,服务器打算用java开发,只是因为某种原因还没开始项目,我觉得现在的技术cocos开发联网游戏是完全没问题的。

第一句就绷不住了

1赞

掐指一算,这句是真的

库拉都不来看瑟图了

说实话,我想要这个游戏素材啊,这个感觉跟那个拳皇多少来着的素材动作一模一样啊??

搜索一下mugen的素材就有了

好的谢谢回复 我百度看看

拉姐都不来发涩图了

一个技术群,没有瑟图了就没技术了,这个开源项目也是有赖于群里的瑟图充电才会成功的

前辈所言极是!

是啊,我也是从cocos2dx 2.1.3版本开始入的坑,直接崩了

露出只因脚

<自从我觉得cocos不行已经有快10年了> :rofl: :rofl: :rofl:

素材是mugen archive 18+的

更新到了v0.9.14,目前支持发波升龙和小部分贴墙动作,均通过如前所述的三端帧数据dump比对确认完全同步