Re: [程式] 模擬城市的電線連接判斷是怎麼做的阿???

看板GameDesign (遊戲設計)作者 (LetMeGoogleThatForYou)時間15年前 (2010/07/09 19:22), 編輯推噓6(608)
留言14則, 10人參與, 最新討論串2/8 (看更多)
※ 引述《yhn0tgb60 (呦厚厚)》之銘言: : 最近在研究模擬城市的一項功能 : 就是每個建築物都會去判斷 自己是否有電線連結到發電廠 : 目前我想的辦法寫一個尋路程式(例如 A*) : 每蓋一個建築物 或是蓋一個電線 或是拆一個電線 : 就對所有的建築物 跑尋路程式 : 而電線是道路 終點是發電廠 : 判斷建築物 是否可以透過電線 找到發電廠 : 不過這個運算量很可怕... : 當建築物一多 或是電線一多 : 只要在哪裡 一直重複 拆一個電線 或是蓋一個電線 : 程式就跑掛了 : 而模擬城市在近20年前 就已經做到這個東西 : 模擬城市的地圖並不小 而且那時候的電腦也很差 : 我想也許他們有更好的方法在處裡這個問題 ??? : 想和大家討論一下這個問題 謝謝了 ^^ 很有趣的問題 :D 從遊戲設計的角度來看,這裡面有偷機取巧的空間 XD 我記得在遊戲裡電線的連結或移除並不會馬上造成影響, 而是會隔個 1 到 3 秒才會出現影響 這個幾秒鐘的間隔有可能是程式在拼命運算造成的延遲 也有可能是一種偷機的方式,也就是說, 「如果有玩家在短時間內一直把電線建了又拆拆了又建 不要去理他,等他去做別的動作時,我們再來算電線連結的問題」 且,視區域數量的不同,使用的演算法也可以改變 例如,假設城市的規模是中等或小型,那就使用比較耗時但保證正確的演算法 因為城市的規模小,玩家多半可以察覺到明顯的錯誤,所以需要保證正確的的演算法 但也因為城市的規模小,所以就算使用比較耗時的演算法,影響也不會太大 當城市的規模是大或佔滿了整個地圖,就可以換成比較快但有可能會有誤差的演算法 從玩家的角度來看,當你要照顧整個地圖時,如果有幾塊區域缺電 你大概不會很仔細的確認供電量這類的「小事」,只要電線連接好了 5000$ 直接核電廠蓋下去 是故,從遊戲設計的角度來看,有時候「絕對正確的演算法」並不一定是最好的答案 只要遊戲整體塑造出來的遊玩經驗有趣,很多地方是可以偷機的 (當然這是在 game design 板是這樣講, 如果你移駕到 prob solving 板去 就會有人跟你談 disconnected subgraph detection 的 algorithm 了 XD 這背後的問題其實蠻複雜的 因為每個發電廠還有限制供電量,我記得核電是 150 區,火電是 50 區 是故,除了要算 node 間的 connectivity 還要算供電量 再考慮到記憶體使用量 我覺得在當年那種硬體上,我覺得遊戲程式應該有偷機… XD ) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 65.87.177.87 補述 SimCity Source Code Is Now Open http://developers.slashdot.org/article.pl?sid=08/01/12/1846256 看起來 SimCity 的 source code 有放出來…直接去看吧 :D ※ 編輯: AmosYang 來自: 65.87.177.87 (07/09 19:28)

07/09 20:04, , 1F
推推
07/09 20:04, 1F

07/09 20:05, , 2F
剛剛有玩一下 電線就算連結好也不會馬上有電
07/09 20:05, 2F

07/09 20:05, , 3F
而且I,C,R三個區塊其實也可以看成是電線的一種..
07/09 20:05, 3F

07/09 20:07, , 4F
game design要的是看起來像真的 至於實際上是不是真的
07/09 20:07, 4F

07/09 20:07, , 5F
那就是另一回事了 :p..
07/09 20:07, 5F

07/09 20:20, , 6F
現在為了效能而偷機的例子還是有吧 應該是說聰明
07/09 20:20, 6F

07/09 20:22, , 7F
推,演算法的確不是最快最正確就是最好的。還是要因地時宜
07/09 20:22, 7F

07/09 20:54, , 8F
推~
07/09 20:54, 8F

07/09 21:22, , 9F
猜可能是類似填色的方法?
07/09 21:22, 9F

07/09 21:36, , 10F
推一個
07/09 21:36, 10F

07/09 22:53, , 11F
看到了離散數學和組合圖形學的影子了
07/09 22:53, 11F

07/10 00:37, , 12F
謝謝 我研究看看
07/10 00:37, 12F

07/10 13:57, , 13F
說的好 只要看起來像回事就好 實際上...
07/10 13:57, 13F

07/11 02:16, , 14F
偷雞
07/11 02:16, 14F
文章代碼(AID): #1CDmQ6fA (GameDesign)
討論串 (同標題文章)
文章代碼(AID): #1CDmQ6fA (GameDesign)