关于 LOL 合区之后的 数字召唤师 ID 的一点程序员思考 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
League of Legends North America
英雄联盟
soTired
V2EX    英雄联盟

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

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

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

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

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

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

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

    你把目的和手段搞反了

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