编写 web Server 与 game server 有什么区别?有什么要注意的地方 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hh54188
V2EX    问与答

编写 web Server 与 game server 有什么区别?有什么要注意的地方

 
  •   hh54188 2015-04-01 14:41:45 +08:00 3113 次点击
    这是一个创建于 3844 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想编写一个小小的在线游戏,但是发现用编写web server的思路编写game server完全行不通,比如我目前想到了以下几个比较幼稚的问题需要解决:

    game server是不是比web server更高并发?
    如何做反作弊?纸牌游戏还好,每一步都可以交给服务器处理和校验。但是实时性高的在线射击游戏哪些逻辑会放在客户端,哪些放在服务器,如何实现反作弊?杜绝反作弊是不是永远都不可能的?为什么?
    http协议是不是已经不适用于游戏通信了?个人猜测是因为TCP协议要求可靠导致通信时间过长?那一般使用什么协议进行通信?这类协议的特征是什么?网页游戏有没有什么好的解决办法?websocket效率如何?
    例如我要实现多房间同时进行游戏,那我应该如何做?目前有两个想法,选择一是有多少个房间就运行多少个实例,但如何分配实例与线程资源的关系?二是可不可以有一个或几个总控,根据输入的数据处理后返回,逻辑在这里,数据在别处,类似于单例模式

    最后,有没有这方面的文章和书籍可以参考?
    多谢各位啦

    5 条回复    2015-04-02 09:28:51 +08:00
    bjtugun
        1
    bjtugun  
       2015-04-01 16:58:45 +08:00   2
    1. web server比game server更高并发。但是game要求的连续实时性比较高,希望延时稳定的保持在100ms以下。这个延时不仅仅指网络延时,包含输入到反馈的逻辑延时。

    不同游戏类型对实时性有不同要求,节奏慢的游戏延时可以放宽到200-400ms,但是要稳定不要剧烈波动。

    1. 理论上,所有涉及属性、财富和判定的操作都应该由服务器处理。但是实际情况为了手感会有种种妥协,比如客户端预算,或者信任客户端再校验。手游因为网络环境的不确定性会有更多妥协。

    反外挂:通信加密,客户端加壳,客户端内关键变量加密,游戏设计增加外挂获利成本。但是只要你的游戏够火,你就不可能杜绝外挂。

    1. 根据游戏类型决定协议。卡牌游戏用HTTP没什么,一个FPS当然用TCP长连接发二进制报文了。

    1. 一个进程可以承载多个房间,设计好可以水平扩展的结构就行了。这个是结构问题,各种设计大同小异的。
    hh54188
        2
    hh54188  
    OP
       2015-04-01 18:02:32 +08:00
    @bjtugun ,非常感谢你的回答,对我有很大的帮助
    顺便也去你的博客看了一看,感觉很可惜的是你回老家工作了,如果你还在北京的话可以出来交流一下
    也了解到你有寻求remote job的需求,建议可以去一些国外的网站上找找,至少在web这块还有很多Freelance的需求的,比如http://jobs.smashingmagazine.com/freelance
    aaaa007cn
        3
    aaaa007cn  
       2015-04-01 21:16:32 +08:00
    http://mienfield.com/
    一年前流行了一阵子的在线多人扫雷
    就是用的 websocket 和服务器实时通信
    ryd994
        4
    ryd994  
       2015-04-01 21:41:04 +08:00 via Android
    反作弊不一定就要实时验证啊,抽样记录,有空再审查,对老账号信任不验证,都是可以的
    bjtugun
        5
    bjtugun  
       2015-04-02 09:28:51 +08:00
    @hh54188 感谢推荐,看来还是web方面的机会比较多啊
    style type="text/css">.wwads-cn { border-radius: 3px !important; } .wwads-text { color: var(--link-color) !important; }
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1108 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 23:20 PVG 07:20 LAX 16:20 JFK 19:20
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86