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

像「暗黑破坏神」「流放之路」这样有词缀系统的网络游戏,装备数据库是如何设计的?

  •  
  •   AIPC · 2021-11-13 10:42:17 +08:00 · 3443 次点击
    这是一个创建于 1114 天前的主题,其中的信息可能已经有所发展或是发生改变。

    类似这样有词缀系统的游戏,可以生成的装备「似乎」是无法穷尽的。

    难道是玩家每爆出一件装备,都会在整个服务器的装备库里插入一条单独的数据吗?

    17 条回复    2021-11-15 12:12:01 +08:00
    SimonOne
        1
    SimonOne  
       2021-11-13 11:09:20 +08:00
    带有镶嵌功能的游戏不也一样吗。
    词条个数和位置是固定的吧,你把词条当成特殊的装备,一件装备当成组合的装备不久行了吗。
    winnerczwx
        2
    winnerczwx  
       2021-11-13 11:12:08 +08:00
    装备上的词缀分为前缀和后缀

    每个词缀对应的属性是相同的

    像流放之路, 一件+血+力量的手套 那就是 [健康的] [野蛮之] xx 手套
    binux
        3
    binux  
       2021-11-13 11:14:55 +08:00 via Android
    难道装备没词缀,玩家爆装备的时候就不用在数据库里更新这个装备的数据了吗?
    现在给这个装备多加几条注释又有什么区别?
    winnerczwx
        4
    winnerczwx  
       2021-11-13 11:16:45 +08:00
    另外爆出的装备应该只会在类似缓存数据库里, 不会持久化存储

    玩过流放之路的玩家应该知道, 10 分钟打一张图, 可能爆出几百件装备, 能捡起来的可能只有几件, 这种数据没必要持久化

    只有被捡起的才会进入持久化数据库
    kokutou
        5
    kokutou  
       2021-11-13 11:33:01 +08:00 via Android   ❤️ 1
    装备数据在人物数据里。

    服务器只需要核对人物数据的完整性。
    levelworm
        6
    levelworm  
       2021-11-13 11:45:48 +08:00 via Android
    前后缀随机化,比如说 A 的装备 B ,同样 A 和 B 但是数据会稍微有区别。我估计楼上说的有道理,没必要都持久化,应该是先进缓存然后最后游戏结束的时候仅仅保存还在玩家身上的。

    另外暗黑我记得是
    levelworm
        7
    levelworm  
       2021-11-13 11:47:08 +08:00 via Android
    另外暗黑 2 我记得是装备掉下来就已经数值定好了,鉴定只是个噱头。我也挺好奇暗黑 2 战网的数据库是什么样子的。
    raaaaaar
        8
    raaaaaar  
       2021-11-13 17:14:56 +08:00
    话说为什么感觉很少讨论游戏公司里的各种技术
    kokutou
        9
    kokutou  
       2021-11-13 17:38:38 +08:00 via Android
    @levelworm
    很多祖传 bug 都在,目测跟暗黑 2 机制差不多
    DSKcpp
        10
    DSKcpp  
       2021-11-13 18:47:54 +08:00
    2i2Re2PLMaDnghL
        11
    2i2Re2PLMaDnghL  
       2021-11-13 21:36:04 +08:00
    就直观地认知,是带参数的物品,那就不存在整体的装备库,只是人物的装备、库存的数据罢了

    如果某个表的任何记录至多只会被引用一次,且一旦不再被引用则再也不会被引用,那么完全可以直接展平。
    类比一下,有谁会在记录轨迹数据的时候是一张表存点,另一张表引用点的 ID 的?
    zeni123
        12
    zeni123  
       2021-11-14 06:48:11 +08:00 via iPhone
    private static Windforce bow;
    私有的静态的风之力 弓

    说不定是用 AST 实现的
    zeni123
        13
    zeni123  
       2021-11-14 06:49:25 +08:00 via iPhone
    应该是 private static Bow windforce;
    私有的静态的弓 风之力
    nutting
        14
    nutting  
       2021-11-14 08:05:49 +08:00 via iPhone
    没用数据库,对象持久化
    Eytoyes
        15
    Eytoyes  
       2021-11-14 10:00:44 +08:00
    研究过完美世界的数据,装备 hex 数据以 xml 格式存储在角色文件内,属性和属性、属性和值是两个字段粘合在一起的,装备表只存武器的基本信息,后面的随机属性由武器 xml 决定
    wildmelon
        16
    wildmelon  
       2021-11-14 13:26:27 +08:00
    流放之路,可以看看他的网页市集,基本都是明文

    考虑这个游戏的优化,估计设计得一般
    DeWjjj
        17
    DeWjjj  
       2021-11-15 12:12:01 +08:00 via Android
    如果是现在的话应该很多公司都会选择区块链的形式上武器掉落。以此彻底避免外挂复制装备这些,区块链在信息的安全稳定性来看是真强。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2596 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:31 · PVG 18:31 · LAX 02:31 · JFK 05:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.