作者kons (kons)
看板Hearthstone
标题Re: [闲聊] 蓝帖翻译~ 不要在囤卡包了..
时间Wed Jan 8 14:58:39 2014
※ 引述《powordisland (豹子~)》之铭言:
: 将来的内容问题:
: 有些玩家攒了一堆包不开打算等开新卡了
: 再开。
: 包里的有什麽卡,是在获得包的瞬间就决定了麽?如果不是,那是什麽时候决定的?
: 解答:现在攒的包只有现在存在的卡。如果你一年後打开,它不会包含新卡。
: 如果这篇翻译没有翻错~ 或者是消息正确
: 现在囤的卡包 恩... 没有用 你不会开到"新卡"..
我对程式语言不是很熟,有错请见谅
但我认为当下玩家获得的卡包,就像薛丁格的猫一样
不去打开永远不知道里面的情况,
会得到什麽卡片是在开卡包的当下程式运算决定的。
也就是系统只在的帐户里记录了,
kons拥有一个未开卡包
而不是kons拥有一个未开卡包,里面有 红龙 炎魔 安东尼达斯 霍格 佛丁
如果只记载未开卡包数量,那程式储存很容易,只要一组资料纪录数量就好,
得到什麽卡,开卡包时再交由程式运算决定,简单完美。
如果得到卡包的同时程式就已经运算好里面装那些卡
那每一个卡包就需要额外储存一个资料,有四十个未开卡包,就有四十组资料
我想BZ不会用这麽笨的方式。
除非之後炉石战记推出的卡包有所分别
例如现在的卡包是V1包,之後有包含新卡片的叫V2包
这样帐户的纪录就会变成有多少类别的卡包,就有多少组纪录
如kons有V1卡包 两包未开 V2卡包 三包未开
然後开V1卡包时用A逻辑去判断会得到什麽卡,开V2卡包就用B逻辑
这样也不算太困难。
只是随着游戏不断扩充,以後卡包越出越多种,维护起来可能比较辛苦。
只是目前开卡包的介面,除非改写,
否则系统要怎麽判定你现在要开的是V1卡包还是V2卡包呢?
谢谢。
--
至今我仍然深深相信,我是个
帅哥,不过是
量子力学定义中的
帅哥。
当没人观测我的时候,我肯定是全地球最帅的男人。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.194.32.106
1F:推 dagayealo :你也可以不用管那些~ 开心玩就好了~ 01/08 15:00
2F:推 wljimkk :照篮帖讲得,是买的当下就决定好卡包内的卡了 01/08 15:01
3F:推 Windancecat :不一定吧,你又不知道背後是怎麽写的 话说你多加卡 01/08 15:01
4F:→ Windancecat :片的资料 那也不会占多少空间好吗 01/08 15:02
5F:→ wljimkk :牌库都存在伺服器了,卡包只占一点点而已,不用担心 01/08 15:02
6F:→ Mchord :他大可以直接出一个新的卡包物件类别吧 XD 01/08 15:04
7F:→ kons :重点不是数据大小,是维护问题啊 01/08 15:04
8F:→ Mchord :如果卡包有记时间的话也许可以用这个去判定随机范围 01/08 15:05
9F:→ kons :我是觉得每一个卡包要占一个储存格,很不科学 01/08 15:06
10F:→ kons :会造成维护问题 01/08 15:07
11F:推 abcd12129 :每张卡片设个编号 每个卡包也就5个号码而已 01/08 15:07
12F:推 shadowfang :记录卡片发行日跟卡包购买日 01/08 15:07
13F:→ kons :今天全伺服器有一万包未开卡包,就有一万笔资料 01/08 15:07
14F:→ shadowfang :只会random购买日之前发售的卡片就可以吧 01/08 15:07
这种做法没有比较科学,重点不是在於纪录的长短,现在硬碟那麽大
而是每一个卡包就有一组独立资料,是很可怕的一件事情
有一百万组未开卡包,就有一百万组资料,这系统维护是很可怕的
15F:推 madrac :反正到时候再把介面改一改出现各式各样的卡包就好了 01/08 15:07
我觉得这是比较可能的做法,从卡包类别分
※ 编辑: kons 来自: 123.194.32.106 (01/08 15:10)
16F:→ abcd12129 :只储存文字档根本没占多少空间 01/08 15:09
17F:推 pentwo :百分之八百是开启的当下计算 谢谢 01/08 15:09
18F:推 wljimkk :但你要想,如果每次开卡包都要伺服器随机一次, 01/08 15:09
19F:→ wljimkk :占用的伺服器资源是很恐怖的 01/08 15:10
20F:→ kyo76312 :之前竞技场BUG~ 还没开包卡片就会进牌库拉 01/08 15:10
21F:推 TeaEEE :交易安全的考量,每个包至少都会有一个id才对 01/08 15:10
22F:→ kyo76312 :所以是拿到包的时候就已经决定了 01/08 15:10
23F:推 Windancecat :没有人是背後的designer 没什麽百分之八百的东西 01/08 15:10
24F:→ Windancecat :任何设计都会有他的考量 如果能占些空间 而减少一些 01/08 15:11
25F:推 churinga :如果是别家公家可能会有储存空间的问题 但B社没问题 01/08 15:11
26F:→ wljimkk :那不如用空间换取CPU资源,反正BZ钱多够买硬碟 01/08 15:11
27F:推 shadowfang :得到卡包当下随机跟开的时候随机对伺服器有差吗?? 01/08 15:11
28F:→ TeaEEE :Id就很可能是开出来的seed 01/08 15:11
29F:推 colorhand :产生卡包的同时就决定了内容物为何才好维护 01/08 15:11
30F:→ Windancecat :换取一些防御措施 也是有可能 01/08 15:11
31F:→ Aggro :这东西没啥吧 一堆游戏当场打怪当场喷东西 会有人在 01/08 15:12
32F:→ Aggro :意伺服器负担太重吗 01/08 15:12
33F:→ wljimkk :而且买卡包的等待画面不会让使用者有等很久的感觉 01/08 15:12
34F:推 Gaex :卡包只要记个购买时间 就可以解决很多问题 01/08 15:14
35F:→ kad :伺服器Loading这种用钱就能解决的问题根本不是问题.. 01/08 15:14
36F:推 colorhand :如果你让使用者去"启动"随机选牌功能 就有被洗的可能 01/08 15:15
37F:→ by135tw :如果依暗黑的设计...那就是得到当下数值就决定好了 01/08 15:15
38F:→ Gaex :判断是多久之前的卡包 会有多少卡需要去random 01/08 15:15
39F:→ Aggro :依照Diablo的做法 你拿到包瞬间里面就决定了 01/08 15:16
40F:推 intela60474 :当然是得到当下就决定内容啊 多好维护啊 01/08 15:16
41F:→ Aggro :这应该比较合理 之後旧包开不到新卡也能解释 01/08 15:17
42F:→ Gaex :就算卡是开包当才决定 BZ也不会让旧卡包开到扩充新卡 01/08 15:17
43F:推 shadowfang :买卡包跟开卡包不都是使用者去启动吗? 01/08 15:17
44F:→ Gaex :太多可以判断的依据了 01/08 15:17
45F:推 KayRain :百分之八百这种中二的话都出来了 真是不简单 01/08 15:17
46F:→ ashowmat :D3的装备一出来时属性就已经决定,不论何时被监定 01/08 15:17
47F:→ Gaex :买当下 random 就是先记录所有的卡而已 01/08 15:18
48F:→ Gaex :开当下 random 就是记路买卡包时间OR卡包类别 01/08 15:18
49F:→ Gaex :让开当下不会有旧跑新的问题 01/08 15:19
不不不,我的核心想法是,一个卡包就要独立占一组资料太不科学了
如果是指纪录卡包数量 今天我的帐户资料可能长这样
xxxxxx yyyyyy
(个人资料) (未开卡包数)
如果得到卡包时已经确定卡片内容 或者得到卡包时已记录开卡包时间
帐户资料会变成这样
xxxxxx
(个资料) yyyyy1(未开卡包1)
yyyyy2(未开卡包2)
yyyyy3(未开卡包3)
:
:
yyyyyN(未开卡包N)
说实在,一个卡包占10bit(纪录日期)还是100bit(记入卡片内容)都不是重点,
现在硬碟那麽大,重点在於资料笔数。
至於Diablo装备的例子,每一个装备本来就是一组资料 不管是否有监定
有监定的道具可能是 a5e2 01 (01代表有监定)
未监定的道具可能是 a5e2 00 (00代表未监定,玩家无法得知详细资料)
50F:推 pentwo :新旧卡包根本不是问题,更何况都还不知道会不会分开卖 01/08 15:25
51F:→ pentwo :会分开卖根本就是白操心 01/08 15:26
会分开卖的话,现在的开卡包介面就要重写
当然啦BZ工程师神通广大,也许有超强的写法,不是我这小小文组学生能领会
52F:推 colorhand :如果是卡包产生时决定内容 使用者就不能去洗结果 01/08 15:26
53F:→ colorhand :如果是开卡包时才去随机5张卡 就有可能被破解洗牌 01/08 15:27
就我看只是洗的时间点不同,入手的时候洗,还是开卡包的时候洗,这种差别
54F:→ steveggyy :可是你开了以後还是要这麽大的存量 01/08 15:30
55F:→ steveggyy :只是开之前赚一点存量 01/08 15:30
我猜想资料储存方式是这样
kons
aa 01 ab 02 ac 00 ad 01 ae 00
英文代表卡片 数字代表卡片数,所以不论你有一百张卡片 还是一张都没有
储存组数跟档案大小都不会变。
※ 编辑: kons 来自: 123.194.32.106 (01/08 15:33)
56F:推 wljimkk :就算是开卡包之後random也是存卡包ID 01/08 15:32
57F:→ wljimkk :只存未开卡包的量太危险了 01/08 15:32
58F:推 pentwo :我收回800% XD仔细想了一下跟一般游戏的做法会不一样 01/08 15:33
59F:推 colorhand :差别在BZ是给你五张不能变动的卡或是五张可变动的卡 01/08 15:36
60F:推 pentwo :我知道的网路游戏,程式做法是当下计算获得礼包的内容 01/08 15:36
61F:→ PoorWei :看法同steveggyy 觉得原PO做法反而画蛇添足 01/08 15:36
62F:推 Aggro :Diablo装备是浮动的 上面说的意思是浮动数字监定前就 01/08 15:37
63F:→ Aggro :决定 另外一百万笔卡包听起来很多 实际上空间没多少 01/08 15:37
64F:推 madrac :说真的, 现在游戏资料库很大的, 这点资料还好 01/08 15:37
65F:→ Aggro :单纯数剧化 搞不好一台智慧型手机就能存了 01/08 15:38
66F:→ Aggro :所以那东西存取方便不会是首先考量 容不容易出现漏洞 01/08 15:38
67F:→ madrac :所以要怎麽做还是看设计师高兴而已. 01/08 15:38
68F:推 colorhand :你想的储存方式问题1 某张卡数量是0仍需纪录 01/08 15:39
69F:→ Aggro :和会不会让伺服器有瞬间运转问题才是重点 01/08 15:39
70F:推 ashowmat :D3装备属性资料量比五张卡多,我想对於资料量你多虑了 01/08 15:39
71F:→ colorhand :问题2 如果有新卡片岂不是要增加栏位? 01/08 15:39
72F:推 wljimkk :真的 增加栏位很麻烦 01/08 15:40
73F:→ tobestronger:其实想成买卡包当下他已经把卡片给你只是设为隐藏 01/08 15:41
74F:推 Gaex :不太可能只记录卡包数量 而不记单一卡包资讯 01/08 15:41
75F:→ Gaex :连最基本的时间都不记 那几乎是不会这样作的 01/08 15:42
76F:→ tobestronger:就好了吧,只不过每个卡片多一个类似隐藏数量纪录 01/08 15:42
77F:→ c4peR :照你这种说法,D3未监定传奇就不会有新旧之分了 01/08 15:43
78F:→ Aggro :就像当年08祖父未监定 之後会变09祖父一样XD 01/08 15:44
79F:→ c4peR :全部留到传奇变强後再监定就好,但事实不是如此 01/08 15:44
80F:推 Gaex :每笔卡包的资料笔数 本来就应该有 BZ不太可能放过 01/08 15:44
81F:→ Gaex :就算你有1千包 1万包 也就是1千笔 1万笔的卡包资料 01/08 15:46
82F:→ Gaex :对BZ庞大的游戏资料库来说 这些情况都能应付 01/08 15:47
83F:→ rufjvm12345 :也就两种卡包 多1个位元去记录是很多喔 01/08 15:47
84F:推 dezuphia :D3拍卖场每天几十万笔交易都一笔一笔记了卡包资料有 01/08 15:47
85F:推 Aggro :对照WOW的纪录量 炉石根本算小咖中的小咖吧XD 01/08 15:48
86F:→ dezuphia :甚麽难的..... 01/08 15:48
87F:推 Gaex :BZ会记录每一个卡包各开出甚麽 这要回硕才有依据 01/08 15:50
88F:→ Gaex :记然要记录每个卡包开出甚麽 那记录你单独卡包有何难 01/08 15:51
89F:→ q99062 :文科不怪你,这概念最简单讲法就只是link list 01/08 15:53
90F:→ intela60474 :开包才决定容易洗 得到卡包就决定不容易洗 就这样 01/08 15:54
91F:→ q99062 :如果知道pointer的话,资料量根本不影响运算时间 01/08 15:56
92F:推 MotoDawn :100万组资料很大? 那B社其他游戏早就爆了 01/08 15:59
93F:推 elong :一组吃1 byte也才1MB... 01/08 15:59
94F:推 sky40280 :这资料量很小 不用担心 01/08 16:13
95F:→ YMSH205 :资料量真的不用太大XD 01/08 16:16
96F:推 jcjin0423 :对10年前来说 你的担心是有可能的 01/08 16:19
97F:推 CaTkinGG :卡牌种类又不多 各类卡牌为一个物件 记录你有几张就 01/08 16:20
98F:→ jcjin0423 :但是现在的硬体 已经不在意每包多那5组数字了 01/08 16:20
99F:→ CaTkinGG :好 又不是你有三张同种卡牌它会占三被空间... 01/08 16:21
100F:推 TCFmars :我觉得有可能,蓝帖也有可能是指,开的当下就决定是V1 01/08 16:21
101F:→ TCFmars :卡包的内容,而不是连卡牌明细都决定好 01/08 16:22
102F:→ TCFmars :不过只储存id的话倒也不占空间,卡片功能应该都写好安 01/08 16:22
103F:→ TCFmars :装在本激了 01/08 16:22
104F:→ intela60474 :考虑到封包传递的容错性 拿包就随机比较安全 01/08 16:25
105F:推 neosu :B社也可以先run好100万组卡包档,开包只是去读档内 01/08 16:25
106F:→ neosu :卡包的储存位置,这样根本不用多少储存空间 01/08 16:25
107F:→ neosu :卖新卡包也只是重新run个档,新包读新档,旧包读旧档 01/08 16:26
108F:→ neosu :一点也不费事,比Diablo容易多了 01/08 16:26
109F:推 CaTkinGG :先RUN好 若再出新卡重RUN感觉效率很差... 01/08 16:28
110F:推 CaTkinGG :除非user习惯是喜欢积存卡包 不然省客户端空间没意思 01/08 16:32
111F:推 hitsukix :就一开就给了,只是加个袋子让你拆 01/08 16:36
112F:嘘 king12272 :也可以只加一个得到时间的Tag,用时间控制就好 01/08 16:44
113F:推 howdie5566 :一般设计是开的时候才决定 如果目前不缺卡可以囤看看 01/08 16:45
114F:→ howdie5566 :如果出新卡时发现玩家囤了很多 肯定会写卡牌包V2 01/08 16:46
115F:→ king12272 :要控制旧包开旧卡的方式太多了 01/08 16:46
116F:推 DM1984 :分开抽也比较有趣吧 不然一直抽魔尘感觉也不好ww 01/08 16:48
117F:→ Aggro :有直接的方法基本上不会特地绕远路走另一条 01/08 16:48
118F:→ howdie5566 :控制的方法的确很多 但一开始不太可能这样写自找麻烦 01/08 16:48
119F:推 yorick :为何新卡包的ID要跟旧卡包一样? 01/08 16:50
120F:推 Touble :其实还好你就当他已经进你的牌库但是没有被enable 01/08 17:00
121F:→ Touble :没被enable的牌不要算你的配对潜值跟显示卡牌簿 01/08 17:01
122F:→ Touble :资料量并不用分开放也不会多多少 01/08 17:01
123F:推 popcorny :说真的..这个资料量非常非常的小..一个卡包1kB都不到 01/08 17:14
124F:推 beeG :硬碟便宜的要死谁管这一点资料量阿 01/08 17:22
125F:→ OalexO :比起D3 卡包资料更少 D3物品都能掉落时就决定数值 01/08 17:31
126F:→ OalexO :卡包怎麽可能无法这麽做... 01/08 17:31
127F:→ balberith :真的说起来,D2时期就已经没有这问题了... 01/08 17:34
128F:→ balberith :当时有些人会刻意不去监定物品,然後整批交易让买方 01/08 17:35
129F:→ balberith :自己去开奖,如果有有问题当时也都该发现了... 01/08 17:36
130F:推 cken :蓝帖并没有说当下就决定里面的卡,只说现在的卡包 01/08 17:51
131F:→ cken :只能开到现有的卡,说不定以後会出电竞包、传奇包.等 01/08 17:51
132F:推 blackcan :很有可能卡包+time stamp来区分内容 01/08 17:56
133F:推 shonbn :"交易"这种事情 当然是要当下就完成 把你想的事情 01/08 18:14
134F:→ shonbn :乘以数十万数百万交易次数规模去想像 当下就完成最好 01/08 18:14
135F:→ shonbn :以blizzard长久的经验 每一样东西出生就被track 01/08 18:15
136F:→ shonbn :没理由开包时做随机 何况做随机本身就很复杂 01/08 18:15
137F:→ henry1234562:D3对比就很清楚 装备有多少数值可以监定前就决定好 01/08 18:55
138F:→ henry1234562:为啥卡包不行.. 01/08 18:55
139F:→ henry1234562:你屯40个卡包 相对D3也才存40件装备不监定.. 01/08 18:56
140F:推 eminemqoo :小品游戏类的炉石 资料量怎麽样都比不上D3或WOW啊 01/08 19:05
141F:推 peter50318 :在资料库中 你购买的卡包资料列中多一栏记录卡包批号 01/08 19:12
142F:→ peter50318 :他就知道用哪个批号里的卡牌乱数给你了吧 01/08 19:13
143F:→ Marxing :写入卡牌种类也不用多少容量 几组数字就结束了 01/08 19:28
144F:推 holymars :你说的那个「不可能」刚好就是正确答案耶XDD 01/08 19:32
145F:→ KMSNY :讲那麽多没用 存钱最靠谱 01/08 19:53
146F:→ jenesis :他卡包要生出什麽卡可以考一个seed决定 就一个数字 01/08 19:56
147F:→ jenesis :这种获得卡包的东西一定会有纪录 真的不差这一点资料 01/08 19:58
148F:嘘 wuwuandy :开头说自己程式不熟,下面脑补一大堆... 01/08 20:07
149F:推 Clinkz :D2装备一掉落就决定了 监定後的东西回朔也一样 01/09 01:13
150F:推 doro0202 :机率只会大於零,且小於等於一,所以百分之八百就是 01/09 02:41
151F:→ doro0202 :不可能的意思吧XD 01/09 02:41