soTired
V2EX  ›  英雄联盟

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

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

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

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

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

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

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

你把目的和手段搞反了

跨区匹配是手段,目的是解决鬼区活跃人数少的问题,你看没有纳入的跨区系统的都是哪些区(电一、黑玫),这些区不缺活跃玩家的。
Fa11ingWood
   25
Fa11ingWood  
   2024 年 1 月 19 日
这玩意战网不早就是这样吗。。村通网?
soTired
   26
soTired  
OP
   2024 年 1 月 19 日
其实这里还是有个问题,就是 昵称+#数字 ID 按道理是唯一的,但是每个单独区的服务器数据库应该都是隔离的(参考之前可以不同区单独维护),这里感觉会涉及到分布式事务问题,即 A 同学在祖安 创建 伞兵卢本伟时分配的 #数字 ID 要确保 伞兵卢本伟+#数字 ID 的组合不重复,必然要去同一个大区的其他区判断 是否重复,这里是不是必须采用分布式事务,不然并发情况下可能会导致重复数据。
soTired
   27
soTired  
OP
   2024 年 1 月 19 日
@Fa11ingWood #25 并不是每个人都玩战网的游戏
lastloverites
   28
lastloverites  
   2024 年 1 月 19 日
是五位数数字加英文。伞兵卢本伟#lbwnb 也行
studyrun
   29
studyrun  
   2024 年 1 月 20 日
@gromit1337 腾讯游戏是这样的,手机上还要分 QQ 、微信、安卓、ios ,就是为了让你多花钱
gromit1337
   30
gromit1337  
   2024 年 1 月 22 日
@Morii 所以为什么要分区
28Sv0ngQfIE7Yloe
   31
28Sv0ngQfIE7Yloe  
   2024 年 1 月 22 日
@gromit1337 #30 一个十多年前的游戏,你想想当时的网络环境。分区是很合理的。
› League of Legends North America
› 英雄联盟
© 2026 V2EX · 73ms · 3.9.8.5