游戏开发数据库选择的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zzlettle
V2EX    问与答

游戏开发数据库选择的问题

  •  
  •   zzlettle 2018-05-16 11:56:25 +08:00 3780 次点击
    这是一个创建于 2737 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人对游戏和数据库方面都是新手。
    但因为爱好,想开发一款自己的游戏
    类型是多人网络游戏
    现在的问题是数据库选型遇到了困难
    说下具体的需求
    1:服务器是分布式的,这个很好理解,为了满足不同地区的玩家,美服,欧服,亚服起码都要开一个服务器
    2:高并发
    在上面两个基础上,要实现的一个功能就是
    我需要记录下玩家的实时数据,来验证是否在开外挂作弊

    比如:
    1:记录下玩家移动坐标,然后比对规定时间内他的位移距离,如果超出游戏的设定,那肯定是开了外挂
    2:记录下玩家在进攻时,用的装备或者道具时间,如果间隔时间太短,那肯定开了外挂
    这些判断需要在游戏当中实时快速做出检验,这样才能对其他玩家公平

    这样一个高并发,需要海量数据中对其中一些值来计算,判断的数据库
    不知道大家有什么推荐了?
    谢谢先
    第 1 条附言    2018-05-16 14:03:12 +08:00
    我的问题归纳起来很简单:
    因为我对数据库不是很了解,特别现在各种各样的新型数据库框架的出现
    关系型数据库,非关系型数据库
    mysql pgsql mongodb。。。
    我希望对这方面比较懂得人,给我推荐下,
    我要开发一款游戏的项目,用哪个数据库比较适合,或者混合多种数据库
    18 条回复    2018-05-16 19:57:23 +08:00
    ThinkCat
        1
    ThinkCat  
       2018-05-16 13:55:55 +08:00
    我有一个简单的需求,就像淘宝京东那样的。。。。
    taojing10
        2
    taojing10  
       2018-05-16 14:06:14 +08:00 via iPhone
    需求太粗糙,怀疑楼主开发水平
    zhuanzh
        3
    zhuanzh  
       2018-05-16 14:11:22 +08:00 via Android   1
    新手 爱好 高并发 海量数据 美服欧服亚服都要开

    lz 我不想嘲讽你,为什么不先从一个简单的做起…
    lingo
        4
    lingo  
       2018-05-16 14:14:24 +08:00
    欧服美服这个考虑的有点早了。。。
    changnet
        5
    changnet  
       2018-05-16 14:15:32 +08:00 via Android
    数据库根本不是问题,列出的那几个随便做。不过根据楼主的问题我觉得你连运营架构都不知道,大概也不知道游戏的“高并发”。所以先做出来再优化才是王道
    th00000
        6
    th00000  
       2018-05-16 14:23:27 +08:00
    就你的需求来说, 市面上任何一种数据库都能满足
    fuxiaohei
        7
    fuxiaohei  
       2018-05-16 14:31:57 +08:00
    不明确你的是手游还是端游,实时性要求高不高。
    一般的架构都是缓存数据库比如 redis 来顶住压力,关系型数据库做永久存储异步处理。
    如果实时性要求高,还有很多别的事情,数据库不是重点。
    sunny352787
        8
    sunny352787  
       2018-05-16 14:41:20 +08:00
    随便找个先用着,接口封装一下,觉得性能不行随时换
    sunny352787
        9
    sunny352787  
       2018-05-16 14:42:28 +08:00
    如果连封装数据库接口隔离逻辑和数据都做不到的话,就先别想那么多了
    zzlettle
        10
    zzlettle  
    OP
       2018-05-16 16:36:12 +08:00
    @lingo @zhuanzh 我在贴里面就说了,自己是新手,处于爱好。我这里只是个举例,意思是想说,分布式的,不是独服

    @fuxiaohei 端游
    John60676
        11
    John60676  
       2018-05-16 18:04:25 +08:00
    @zzlettle 你还不懂三楼的意思吗,就是说不如你先别想这么多,先做个简单的“游戏”试一下,在逐渐扩展,不要走路还没学会就去跑步
    qooweds
        12
    qooweds  
       2018-05-16 18:10:29 +08:00
    一般是放内存里吧,玩家移动的话怎么可能放数据库,IO 要爆了
    csuzhangxc
        13
    csuzhangxc  
       2018-05-16 18:15:45 +08:00 via iPhone
    作弊判定放内存。
    不同地方玩家如果玩法上能接受,就近接入游戏服(说不定都可以不用全球同步数据?)
    csuzhangxc
        14
    csuzhangxc  
       2018-05-16 18:16:51 +08:00 via iPhone
    能算出来的数据,尽可能就不存数据库
    WuwuGin
        15
    WuwuGin  
       2018-05-16 18:20:51 +08:00 via Android
    你这个纯粹是伪需求,你想的是要拓展性考虑,万一火了呢是吧。但是对不起,在做到那一步之前,需求和结构都是随现实改变的,Facebook 这种网站在没有遇见性能瓶颈的时候不还是 php 用的欢,到时候再说也完全来得及。
    另外你这样用数据库,楼上也说了,IO 会爆的。
    tvallday
        16
    tvallday  
       2018-05-16 18:24:21 +08:00   1
    我觉得大家都低估楼主了,也许楼主有 5 年的自由时间和 300 万的拆迁补偿还有 3000 个以上的死忠粉。
    zzlettle
        17
    zzlettle  
    OP
       2018-05-16 19:45:48 +08:00 via iPad
    @tvallday 开发个游戏需要这么高的要求吗?
    sunny352787
        18
    sunny352787  
       2018-05-16 19:57:23 +08:00
    @zzlettle 就你的这个游戏的规模来看,这要求还挺低的了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4010 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 115ms UTC 05:26 PVG 13:26 LAX 21:26 JFK 00:26
    Do have faith in what you're doing.
    ubao msn 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