V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
League of Legends North America
英雄联盟
soTired

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

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

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

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

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

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

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

    你把目的和手段搞反了

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