仅仅是好奇技术实现,楼主只是个写 app 客户端的。 比较好奇各种手机网游、端游等客户端和服务器是怎么通信交流数据的。 特别是 LOL 这种类型的游戏。 网上类似的文章也看了些,但感觉不够具体,求推荐本书用来解惑,并不强求学会怎么写。
1
zhgg0 OP 以前用手机开 4G 玩网游,流量消耗都很小感觉都很屌。
|
2
Hodor 2016-04-12 02:10:41 +08:00
先看网络协议, Tcp/ip 协议,网游的话,极有可能是 UDP 的。。再上层应该是 socket 了。。
哦忘了说了,我是不懂装懂。。。 |
3
yuriko 2016-04-12 08:24:24 +08:00
网络无非就是 7 层协议的东西,每层协议都养活了一大把人
真正省流量的不是网络通信,而是架构 |
4
Mutoo 2016-04-12 09:26:53 +08:00 1
LOL 这种多人竞技游戏的书倒是没见过。不过读过 MMORPG 相关的《大型多人在线游戏开发 / Massively Multiplayer Game Development 》以其说是书不如说是一本文集。
另外可以读这个系列 《 Game Networking 》 http://gafferongames.com/networking-for-game-programmers/ 和这个系列(带 demo )《 Fast-Paced Multiplayer 》 http://www.gabrielgambetta.com/fast_paced_multiplayer.html |
5
SlipStupig 2016-04-12 12:53:26 +08:00
说一下知名游戏 dnf ,它的逻辑是这样,客户端(游戏引擎、通讯模块)只要是通讯逻辑和各种资源(地图、道具、场景、通告),服务端有几个模块,数据库通讯通讯、游戏服务端( EPOLL 模型)、游戏频道服务端、游戏网关服务器、通讯服务端。
客户端事件回调把事件 IO 发到服务端,然后数据库进行操作完成后返回结果到客户端,游戏引擎进行渲染。 关于 dnf 的 pk 原理, dnf 采用 stun 协议将数据转发到服务端,两边决斗结果进行数据库操作,由于当时水平一般,所以网络通讯只是交换一些基本数据,服务端压力其实不大。同时也导致外挂满天飞! |