0

我正在尋找一些關於設計模式的好書和我想知道什麼樣的模式,你會爲實時戰略遊戲(如星際爭霸),MVC推薦?什麼設計模式最適合AS3的RTS遊戲?

我想在某個時候在Flash中一個基本的RTS和我要開始學習我們的最佳模式。

乾杯!

+0

+1因爲有些傻子downvoted沒有原因。 – 2011-07-03 13:56:20

+1

沒有最好的*單*設計模式。您需要組合多種模式。 – BoltClock

+0

這就像是問「MS Office克隆/ QA網站/自定義操作系統最適合哪種設計模式?」 RTS如何適應單一模式?你的意思是「用於控制RTS中的大量單元」嗎?給我們詳細信息 - 你需要多少單位,遊戲是否有網格或自由座標...等等。 – alxx

回答

0

爲了支持大量的單位,你可能會使用FlyweightObject Pool。 Flyweight對象可以完全存儲在一個大的ByteArray中的幾個字節中。爲了獲得可用的對象,讀取相應的字節,獲取空對象並用這些字節中的數據填充它。對象池可以容納這些可用對象,以防止不斷分配/垃圾收集。通過這種方式,您可以在ByteArray中容納數千個單元,並通過數十個合併對象外殼來管理它們。
應該指出的是,這更適合存儲單元的瓦片屬性,然而瓦片或多或少是靜態的,而單元是定期創建和銷燬的。

3

這類問題的問題是答案完全取決於你的設計。即使簡單的RTS遊戲也很複雜。他們有許多必須一起工作的系統,每個系統必須設計成不同的目標。

但是在這裏談一談。

rts中的AI系統通常有幾個不同的級別。單位級AI可以像基於開關的狀態機一樣簡單,直到滿量程行爲樹(複合/裝飾器)。 您通常還需要某種類型的戰略級AI的高級計劃系統。 (指揮官級別和AI玩家) 在這些之間通常還有幾個級別,還有像資源經理等一些事物。 您也可以使用基於事件的系統,這些系統與Flash的基於事件的模型很好地配合。

對於主遊戲引擎本身就是一個基本的狀態機(基於基於基於類的功能開關的任何東西)可以很容易地實現對綁在一起的一切,並配合該菜單系統。

對於個別球員一個模型 - 視圖 - 控制器是一種很自然的方式來瞄準,因爲你希望你的電腦玩家暴露於一切人的玩家可以訪問。因此唯一的變化是控制器(大腦)顯然不需要視圖。

正如我所說的,這是不是可以只回答像普通計算器的問題是完全依賴於設計,是決定如何實現它。 (就像大多數事情一樣)RTS遊戲設計中有大量的資源,並且全力以赴是我真正能夠提供的唯一建議。即使是簡單的RTS也是複雜的系統。

祝你好運,我希望這篇文章能讓你瞭解如何思考它。 (記住平衡是一個RTS一切)

0

這將是很好的熟悉了一些設計模式,並把它們應用到你的遊戲架構在適當情況下。例如,您可以爲您的整體應用程序採用MVC體系結構,用於創建敵人的工廠模式,商店項目的裝飾模式等。需要指出的是,設計模式僅僅是構建對象的方法論。您如何定義這些對象以及如何決定它們如何組合在一起是非規定性的。