V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
League of Legends North America
英雄联盟
soTired
V2EX  ›  英雄联盟

关于 LOL 合区之后的 数字召唤师 ID 的一点程序员思考

  •  
  •   soTired · 311 天前 · 3537 次点击
    这是一个创建于 311 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景:LOL 合区之后升级了名称系统,有名称 + 一串 5 位数的数字 ID 。例如:伞兵卢本伟#12345 ,本来我以为这个 5 位数的数字 ID 会在系统中是唯一标识,但随后马上否定了这个想法,因为 LOL 单个区的人数显然不止 10w ( 5 位数字最大 99999 )人。而且在后续的查阅发现,改名卡改名后 数字 ID 也会跟随变化,那么我有点没有理解这个数字 ID 的意义何在?
    31 条回复    2024-01-22 10:06:39 +08:00
    x86
        1
    x86  
       311 天前
    挺好的呀,想取啥 ID 就取啥 ID
    hokori
        2
    hokori  
       311 天前
    就是个随机不重复的 id ,取名而已。
    让区内可以有伞兵卢本伟#99999 那么多。唯一标识肯定是 qq 号了。
    zdt3476
        3
    zdt3476  
       311 天前
    后面的数字可能是系统昵称的数量?
    tangzh55
        4
    tangzh55  
       311 天前
    卢姥爷啊,可惜了😂
    xtreme1
        5
    xtreme1  
       311 天前
    因为 lol 通过 id 可以直接加好友啊..
    leaveeel
        6
    leaveeel  
       311 天前
    和战网一样,#前面是自定义的,可以重复,后面是该 id 的唯一标识。比如我先建了一个 tony ,可能生成 tony#1 ,然后你也想建一个 tony ,生成 tony#2 ,之后我改成别的又改回 tony 生成 tony#3 ,以此类推。当然#后面应该有别的逻辑不一定是从 1 自增。
    soTired
        7
    soTired  
    OP
       311 天前
    @leaveeel #6 但是如果按照你说的这种,最初分配#后面的 ID 直接采用 数组+字母的 5 位字符串 ID 岂不是更加方便,相当于 ( 26 个字母+9 个数组) 35 的 5 次方个排列组合,生成这个唯一的 5 位 ID 之后,#前面的昵称随便取,#后面的 ID 也不用每次改名都去判断,这样不是更加一劳永逸吗
    proxytoworld
        8
    proxytoworld  
       311 天前
    @zdt3476 不至于,我一个偏门的 id 都几万了...
    knightdf
        9
    knightdf  
       311 天前
    学的战网?
    sentinelK
        10
    sentinelK  
       311 天前
    1 、防止个人属性的 ID 被占用给别人带来负反馈。
    2 、可以带一些业务,比如哪个地理位置、大概什么时间创建的。
    3 、一定程度上保护个人隐私。(只知道你的昵称,并不能直接锁定你的账号)
    ENSAlT
        11
    ENSAlT  
       311 天前
    问题 1:可以看作申请邮箱 tom 被占用了,所以用户 A 在 tom 后面加上自己生日,组成的邮箱唯一标识是 tom0832 ,而这不影响用户 B 注册 toy0832 这个邮箱。
    问题 2:用户主观意愿是想以 tom 这个昵称展示,所以对局中仅展示 tom 。然而对于别的用户来说,如果看到两局都有一个叫 tom 的人,如何辨别?答案就是通过数字 ID 区分
    问题 3:五位数字 ID 不够用的前提是必须要有 10 万个用户有意愿起名 tom 。但是显示五位数不代表只支持五位数,目前数字 ID 前面其实省略了很多个占位 0 ,5 位不够用的时候自然会显示 6 位
    kaleido
        12
    kaleido  
       311 天前
    @soTired 你说的这种也可以吧,和现在开销感觉差不多。。。而且,国服刚改成这样,外服早就是了,而且是这个逻辑:昵称#id ,两个部分都可以自定义,但不能两个都重复。国服上了阉了 id 自定义功能,就变成了现在这样。。。
    leaveeel
        13
    leaveeel  
       311 天前
    @soTired 你说的是#后面的标记跟账号绑定了,这样实际是限制了帐号上限,如果有人用注册器灌满了后面的标记位就只能往后加位数解决。跟 id 绑定的话就不存在这个问题,哪怕是这个 id 下面的标记已经用完了也可以让用户换个 id 。维护成本低很多
    28Sv0ngQfIE7Yloe
        14
    28Sv0ngQfIE7Yloe  
       311 天前
    @soTired

    你这个麻烦一点啊,很难直观的看出同名 id 的差异

    首先 10 位 id 的识别成本就大于 5 位

    其次你还是字母+数字,识别成本更高了
    x86
        15
    x86  
       311 天前
    还有一个原因就是跨区显示
    nxuu
        16
    nxuu  
       311 天前
    lol 真的是没人玩了 快点合区吧...
    DavidTsou
        17
    DavidTsou  
       311 天前
    上周找了半天,没找到具体在哪改名字
    runze
        18
    runze  
       311 天前
    @soTired “生成这个唯一的 5 位 ID 之后,#前面的昵称随便取,#后面的 ID 也不用每次改名都去判断”

    一方面这样的结果是要么 ID 太难记、要么总账号池子太小。

    另一方面是要打击靓号,如果后面的 ID 固定,总有人会随机到 12345 、l0ve 之类的靓号,可以去 lolid 吧看看改成召唤师 ID 之前有多疯狂。
    如果 ID 固定,在账号注册成本接近 0 的情况下,你猜会不会有人批量注册账号,抢占稀缺 ID 、短 ID ?
    soTired
        19
    soTired  
    OP
       311 天前
    感谢各位的解答,现在已经基本理解为什么不用 “固定唯一 ID 的原因”。
    1.会导致总容量有限,如果有人批量创号可能会导致不够用的情况。
    2.一定程度上去打击抢占稀缺 ID 、短 ID 的成本。
    tyrone2333
        20
    tyrone2333  
       311 天前
    我在诺克萨斯还没见有数字 ID, 只想知道能不能免费改名, 之前的名字被制裁了
    OutOfMemery
        21
    OutOfMemery  
       311 天前
    @tyrone2333 #20 会出送改名卡的活动,但是什么时候出还没说
    gromit1337
        22
    gromit1337  
       311 天前
    我以为合区是所有的合一个区,结果只是合部分区,真没意思
    foolvino
        23
    foolvino  
       311 天前
    战网一直是这样的吧。steam 好像也是
    28Sv0ngQfIE7Yloe
        24
    28Sv0ngQfIE7Yloe  
       311 天前
    @gromit1337

    你把目的和手段搞反了

    跨区匹配是手段,目的是解决鬼区活跃人数少的问题,你看没有纳入的跨区系统的都是哪些区(电一、黑玫),这些区不缺活跃玩家的。
    Fa11ingWood
        25
    Fa11ingWood  
       311 天前
    这玩意战网不早就是这样吗。。村通网?
    soTired
        26
    soTired  
    OP
       311 天前
    其实这里还是有个问题,就是 昵称+#数字 ID 按道理是唯一的,但是每个单独区的服务器数据库应该都是隔离的(参考之前可以不同区单独维护),这里感觉会涉及到分布式事务问题,即 A 同学在祖安 创建 伞兵卢本伟时分配的 #数字 ID 要确保 伞兵卢本伟+#数字 ID 的组合不重复,必然要去同一个大区的其他区判断 是否重复,这里是不是必须采用分布式事务,不然并发情况下可能会导致重复数据。
    soTired
        27
    soTired  
    OP
       311 天前
    @Fa11ingWood #25 并不是每个人都玩战网的游戏
    lastloverites
        28
    lastloverites  
       311 天前
    是五位数数字加英文。伞兵卢本伟#lbwnb 也行
    studyrun
        29
    studyrun  
       310 天前
    @gromit1337 腾讯游戏是这样的,手机上还要分 QQ 、微信、安卓、ios ,就是为了让你多花钱
    gromit1337
        30
    gromit1337  
       308 天前
    @Morii 所以为什么要分区
    28Sv0ngQfIE7Yloe
        31
    28Sv0ngQfIE7Yloe  
       308 天前
    @gromit1337 #30 一个十多年前的游戏,你想想当时的网络环境。分区是很合理的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1058 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:55 · PVG 03:55 · LAX 11:55 · JFK 14:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.