看板 TypeMoon 關於我們 聯絡資訊
※ 引述《dansy (Eye Taiwan)》之銘言: : 蠻好奇線上遊戲的抽卡機制到底是怎麼運作 : 爬了一下文 沒發現有討論過 提出來問問版上神人 : 有人在業界工作知道如何實作嗎? : 1.卡片在伺服器端早已序列產生好 : 在巴哈看過的一種說法 : 簡單來說就像買刮刮樂(物理),玩家抽卡只是跟伺服器"領卡片" : 單抽領1張,10連就領10張,完全照順序發出 : 2.伺服器端即時產生亂數,再依照亂數大小生成卡片 : 這比較像擲骰子的概念,擲中就有 : 先亂數產生一組數值,再參照數值卡片對應表,決定發哪張卡片給玩家 要看random seed怎麼取的,當然官方不可能告訴你 常用的一種亂數方法: 1. 取電腦系統時間當seed(單位可以取到ms) 2. 這個值經過hash(雜湊)運算後會對應到一張固定的表的某個位置 此表可能長這樣9 8 1 0 2 5 7 6 4 3 3. 之後每次開始取亂數時都從這個位置依次往下 假設之前是骰出1,只要seed沒有更新,依次會骰到0 2 5 7 6 4 3 9 8 1.... 4. 當然實際情況每次取亂數前都一定會更新seed(回到第1) 卡池中所有卡片(當然有重複)排成一張像第2步中固定、打散的表單 每次抽的時候會重置seed,十連則是根據位置往下連十個 保底機制可以透過表單設計時就排好,任連續十位置內必有SR 關鍵: Seed用到的參數 雜湊函數 內容物表單 我是覺得不想驗證了,一切隨緣 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.14.139 ※ 文章網址: https://www.ptt.cc/bbs/TypeMoon/M.1507223886.A.84A.html ※ 編輯: orze04 (220.135.14.139), 10/06/2017 01:20:03
asteea: 時間反而不會常用... 去看一下entropy吧 10/06 02:00
michaelchen1: 時間真的很少人在用XDD 10/06 02:53
ddavid: 寫小程式或單機遊戲的話還是挺常用的啦,反正不要求亂數品 10/06 02:55
ddavid: 質,甚至還會反過來利用亂數種子固定這回事XD 10/06 02:56
ddavid: 商業用的話就看情況了,不過我說真的要對付多人轉蛋遊戲, 10/06 02:57
ddavid: 即便時間亂數種子還是綽綽有餘了,要爛到出現時間流抽卡有 10/06 02:57
ddavid: 效還真不是普通的爛才能辦到XD 10/06 02:58
data99553: https://youtu.be/Nehvzf9esQs 10/06 06:13
ddavid: 樓上那個影片當年板上就提出來討論過了喔 10/06 06:46
ddavid: 跟當年一樣我就問這句,你拿兩台手機來有沒有能力重現成功 10/06 06:47
ddavid: 如果這不是隨便拿兩台手機來就可以高機率(就不很嚴苛地 10/06 06:52
ddavid: 說百分之百)重現的話,那這影片就沒有什麼驗證時間教的 10/06 06:52
ddavid: 能力XD 10/06 06:52
ddavid: 頂多驗證了只要機率存在就是有人可以賽到XD 10/06 07:00
ddavid: 這影片都一年多了,板上不用多,看有沒有一個人試得出兩台 10/06 07:13
ddavid: 二抽一樣的東西就好XD(雖然要求設到這麼低也是失去證據 10/06 07:13
ddavid: 能力了)。如果這重現幾乎做不到,那就跟法老說五星很好 10/06 07:14
ddavid: 抽是類似的事情XD 10/06 07:14
methodho: 假設真的是用時間且取到ms,那影片也沒辦法證明什麼吧, 10/06 08:06
methodho: 先不說兩隻手是否真的同時按,光 request 回server 的 10/06 08:06
methodho: 時間就無法掌握了 10/06 08:06
man790810: 想就知道納影片不可能證明了阿 10/06 08:20
man790810: 如果兩個人誤差兩三秒按十連抽 10/06 08:20
man790810: 第一個人在第三連中了一隻五星 那不就代表第二個人 10/06 08:21
man790810: 後面必中五星 10/06 08:21
kazumi66: 而且就算那影片同步 請問你怎知道全世界沒有人跟你同步? 10/06 08:36
kazumi66: 那種影片根本不能代表or證明什麼 10/06 08:36
LayerZ: mmo抽卡用時間種子亂數表就很夠啦 10/06 10:48