V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lawlietxxl
V2EX  ›  编程

游戏服务器的工作模式是什么样子的?

  •  
  •   lawlietxxl · 2015-12-08 00:20:45 +08:00 · 2550 次点击
    这是一个创建于 3278 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最简单经典的比如说 war3 的局域网游戏,它是如何实现的?特别是如何 read 和 write 数据的?
    楼主猜想如下:
    使用的是 socket ,对应于现在的就是 tcp connection
    socket 的 read 和 write 写在无限循环里面,当胜利的时候退出循环。

    最近在写一个卡牌服务器练手,所以有此疑惑(虽然是不同的游戏,但是其实归根结底有些模式是类似的),希望各位大大能够解答。

    4 条回复    2015-12-08 01:03:15 +08:00
    Magnus1k
        1
    Magnus1k  
       2015-12-08 00:36:58 +08:00   ❤️ 1
    http://bindog.github.io/blog/2015/03/10/synchronization-in-multiplayer-networked-game-lockstep/
    http://blog.sina.com.cn/s/blog_674f1bd20101omv7.html
    大多数 RTS 都是这样进行网络通讯的。

    卡牌游戏并没有那么复杂,只要用最简单的异步模式写几个消息来进行通讯就可以了。
    lawlietxxl
        2
    lawlietxxl  
    OP
       2015-12-08 00:41:26 +08:00
    @Magnus1k 感谢!请问异步的意思就是非阻塞的模式,是吗?可以这么理解吗?
    LINAICAI
        3
    LINAICAI  
       2015-12-08 01:03:06 +08:00
    我想走的是 TCP/IP 协议的 UDP SOCKET?
    Magnus1k
        4
    Magnus1k  
       2015-12-08 01:03:15 +08:00
    @lawlietxxl 其实怎么处理消息都无所谓,同步异步处理都可以,只是一般为了不阻塞客户端的表现,大都是采取异步模式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2931 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:06 · PVG 23:06 · LAX 07:06 · JFK 10:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.