GameDesign 板


LINE

標題打這麼多是因為去年的某篇文章導致的... 除了騙還是騙 這個世界充滿了欺騙... 目前還在研究亂數這東西 http://rosettacode.org/wiki/Linear_congruential_generator 有興趣可以先閱讀上面的文章 目前基本的亂數產生都是用線性同餘法來達成 覺得不夠亂的話就是要自己寫了 方法似乎百百種 接著再閱讀這篇 http://freespace.virgin.net/hugo.elias/models/m_perlin.htm 應該許多人研究過這東西 許多沙盒遊戲也都是使用perlin noise來達到理論上無限大的地圖 使用種子碼來減少資料儲存量 產生看似隨機生成的世界 不過理論跟實際要使用差距蠻大的 網路上能找的資料都是很基本的東西 要實際使用還需要琢磨一番 如果照著網路上的文獻來實作會發現一個範圍的perlin noise的產生 跟即時產生差異還頗大的 因為還牽扯到圖塊接合等等問題(map tile) 需要做內插法平順等等處理 說到這裡 可以參考minecraft spigot-api裡頭的perlin noise github.com/SpigotMC/Spigot-API/tree/master/src/main/java/org/bukkit/util/noise (太長了把http截掉) =======吃完飯之後突然忘了自己要說什麼======== 說點比較不容易看懂的地方 如果照著第二篇的公式來看 很快就會發現過了一定數值後結果會一直是1.0 我想這應該是同餘法的極限吧 如果SEED一直不變 完全無法產生夠大範圍的亂數 (1.0-((x*(x*x*15731+789221)+1376312589)&7fffffff)/1073741824.0); 來分析一下上面的算式 基本上的目的就是要讓1.0後面那串結果在0.0與2.0之間 這樣相減才能產生正負 注意綠色的符號 那是位元運算子後面的7fffffff應該是0x7fffffff 也就是整數最大值2,147,483,647 位元運算子的用處就是確保計算後的直為正數且在該範圍內 位元運算子算相當好用 接下來可以參考C或者C++的RAND與SRAND之header 在stdlib.h裡 利用第一個種子碼計算出下一個數值後(可能為長整數時期) 將其當成下次的種子碼如此反覆執行到我們指定的次數 不過這種作法我們發現每次亂數的順序都是一樣的 所以現在改善的做法都是用系統時間來當種子碼(準度到秒) 不過還是有不夠隨機的情況產生 所以第一個種子碼很重要 接下來就是我們想控制的部分了 由於PERLIN NOISE是有規律的 因此需要使用不同的頻率與放大的倍率將數個階(octave)合成起來 這邊可以另外參考SIVI的作品 https://github.com/philfrei/SiVi 我目前的想法是 如果之後要帶入計算的座標極大時 是否會降低運算的效能 目前還在測試 所以猜測把座標加入seed的產生 或許是個效率較高的作法 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.27.44.146
※ 文章網址: http://webptt.com/m.aspx?n=bbs/GameDesign/M.1412747077.A.1B2.html
1F:推 LayerZ: 先推,不過超過我理解範圍了XDD 對我而言,用時間,頂多把 10/08 14:25
2F:→ LayerZ: 時間攤開來到整個活動期間都不一樣就好了,根據測不準原理 10/08 14:26
3F:→ LayerZ: 再去過度追求隨機的隨機性,因為永遠無法確定玩家此時此刻 10/08 14:28
4F:→ LayerZ: 抽福袋是否會合乎設計的理論.. 10/08 14:28
5F:→ LayerZ: 第三行前面少個不用,不用再去.. 10/08 14:29
6F:→ LayerZ: 唔...我發現我又再說廢話了(死),可以幫我把推文刪掉嗎, 10/08 14:29
7F:→ LayerZ: 我找時間看完再來回好了.這麼方便的推文真是個糟糕的發明 10/08 14:30
8F:推 AmosYang: http://xkcd.com/221/ 10/08 15:22
9F:推 LayerZ: 樓上害我上班大笑XDDD 如果一個玩家只能骰一次,並且不能 10/08 15:25
10F:→ LayerZ: 跟別人比較的話...他是成立的XDD 10/08 15:26
11F:推 LayerZ: ...PS3 ESCDA Code!? 10/08 16:29







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP