我對「過山車大亨」和「模擬人生」以及FPS遊戲等應用程序的表現非常着迷。我想了解更多關於基本應用程序體系結構的信息。 (不太關心用戶界面 - 我假設MVC/MVP piriciples在這裏適用,我也不關心數學和物理在這一點上。)如何設計真實世界的模擬?
我的主要問題涉及模擬中的數十或數百個單獨的對象(人員,車輛,物品等),所有這些都會移動,做出決定並提高對事件的響應 - 看起來都是同一時間,以及它們如何設計以實現如此出色的性能。
問:主要是,這些對象是在一個巨大的循環中處理,一次一個 - 或者是每個對象都在它自己的線程中處理?在這樣的模擬中有多少線程可行? (當然球場數字,10,100,1000)
我不想寫一個遊戲,我只是想設計理論,因爲我想知道這樣的設計是否可以適用於其他應用程序,其中幾個決定是看起來在同一時間。
每個對象都可以在自己的線程中同時設置其狀態(屬性),然後讓主進程處理結果。沒有事件或比賽。但是,循環不會等待每個對象處理......? – 2008-09-26 04:26:55
你可以通過線程池或其他相當有效的方法來做到這一點,但我發現最好將數據分成塊,然後爲此處理處理程序,建立一個像我描述的變更集。 – 2008-09-26 04:36:57
完全不同意你的答案。如果它像「不同線程上的一個胖FSM」那麼簡單,那麼每個人都會發布這樣的遊戲。除了這個過於簡單的迴應之外,還有更多。你有沒有曾經在一個嚴肅的遊戲標題之前? – 2008-09-26 09:22:22