本發明涉及一種策略游戲的資源分配系統和方法,屬于計算機游戲領域。
背景技術:
策略游戲是一種模擬游戲的衍生游戲類型。當模擬游戲的模擬對象不單單是一種物體(如載具)時,玩家就需要在進行游戲時保證自己模擬對象達成游戲規定的目標。而模擬游戲一般都較為自由和開放,所以玩家就需要在游戲認可的限度內想盡辦法完成目標。因為模擬游戲一般都較為自由和開放,所以玩家 就需要在游戲認可的限度活動智慧來進行游戲。策略游戲可分為回合制和即時制兩種。
根據上述的策略游戲的特點,策略所包括的大量重復的單位、游戲規則、模型需要占用大量的系統資源。
一般的策略游戲,資源分配系統通常是采用硬編碼的算法實現。即每種資源分配算法都用一段代碼或一個類來實現,程序開放其中某些參數來給策劃進行一些數值的調整,達到一定的可改變性,但是不能改變其中的程序邏輯。但游戲項目系統的特點在于易變性,相似性與重復性。即需要大量大體相似但具體邏輯又不盡相同的算法,且策劃的需求在不斷變化與調整之中,這是由游戲這種娛樂軟件注重用戶體驗的特點決定的。
故這種硬編碼的傳統系統實現方法缺點有:(1)程序實現算法的工作量非常大,大量相似程序功能要重復開發且反復調整,往往在實際工作中會因為工作量太大而舍棄掉大量策劃有益的設計,這樣反過來讓游戲整體的品質受到影響。(2)項目沒有小粒度的可重用算法功能,整體開發成本太大,往往迫于項目進度的壓力只能做出一個比較粗糙的資源分配系統來,嚴重影響了游戲體驗。
技術實現要素:
針對現有技術不足,本發明的技術方案總結了一種基于樹的策略游戲資源分配算法,以達到大大縮短策略游戲開發周期,增強代碼可維護性與可重用性,增強游戲的體驗和表現,方便各種職位的人員良好分工合作的目的。
本發明的技術方案包括一種策略游戲的資源分配系統,其特征在于,該系統包括:資源劃分模塊,用于對策略游戲中玩家所擁有總資源數據使用樹結構進行表示,其中數的最頂端根節點表示玩家所有的資源數據,進一步,將資源數據進行分類并劃分至每個樹節點;資源設置模塊,用于根據游戲世界狀態的變化,對根節點及對應的子節點分配比例進行對應的設置,進一步還包括對每個節點之間的邏輯規則進行預先設置;資源判斷模塊,用于從最底層的節點的資源數據自下而上進行遍歷獲取,并計算每個節的所有資源數據及總資源數據;資源調整模塊,用于根據所述資源判斷模塊獲取的所有節點的資源數據,同時獲取每個節點對應的資源類型,進一步調整每個節點下對應的多個子節點所占據的資源數據類型比例及資源數據的優先度級別。
根據所述的策略游戲的資源分配系統,所述的資源劃分模塊還包括:查詢子模塊,用于對策略游戲進行遍歷,獲取所有資源數據;劃分子模塊,用于根據預設的資源數據的邏輯關系,使用樹結構將資源數據劃分至對應的節點。
根據所述的策略游戲的資源分配系統,所述的資源設置模塊包括:比例子模塊,根據所述資源劃分子模塊劃獲取一一每個節點下所有子節點的資源數據,進一步,將每個節點對應所有子節點所擁有的資源數據比例進行計算;比例設置子模塊,用于根據每個節點對應的資源數據類型的不同,同時動態獲取游戲世界的變化,將固定值數據進行固定設置,對動態變化的數據進行默認值設置,該默認值能夠通過可交互界面進行自訂有設置;邏輯設置子模塊,用于對資源數據的比例邏輯進行設置及對節點之間的邏輯規則進行設置。
根據所述的策略游戲的資源分配系統,所述的資源判斷模塊包括:遍歷子模塊,用于對最底端的子節點的資源數據進行獲取,進一步,依次向上得到對應節點的資源數據,最終得到所有節點的資源數據及總資源數據;計算子模塊,根據所述遍歷子模塊及節點之間的邏輯規則對每個節點下對應的子節點的資源數據進行計算并調整至符合邏輯規則的比例。
根據所述的策略游戲的資源分配系統,所述的資源調整模塊還包括:智能調整子模塊,基于預先設置的比例邏輯規則及節點之間的邏輯規則,獲取游戲運行參數,將子節點所占的資源數據比例調整至最優比例的信息使用可見界面向玩家進行展示;功能調整子模塊,獲取玩家的操作指令,根據指令對玩家進行不同的提醒,如果玩家選擇低優先度的資源數據,將高優先度的信息建議推送給玩家。
本發明的技術方案還包括一種策略游戲的資源分配方法,其特征在于,該方法包括:對策略游戲中玩家所擁有總資源數據使用樹結構進行表示,其中數的最頂端根節點表示玩家所有的資源數據,進一步,將資源數據進行分類并劃分至每個樹節點;根據游戲世界狀態的變化,對根節點及對應的子節點分配比例進行對應的設置,進一步還包括對每個節點之間的邏輯規則進行預先設置;從最底層的節點的資源數據自下而上進行遍歷獲取,并計算每個節的所有資源數據及總資源數據;根據所述資源判斷模塊獲取的所有節點的資源數據,同時獲取每個節點對應的資源類型,進一步調整每個節點下對應的多個子節點所占據的資源數據類型比例及資源數據的優先度級別。
進一步,該方法還包括:對策略游戲進行遍歷,獲取所有資源數據;根據預設的資源數據的邏輯關系,使用樹結構將資源數據劃分至對應的節點。
進一步,該方法還包括:根據所述資源劃分子模塊劃獲取一一每個節點下所有子節點的資源數據,進一步,將每個節點對應所有子節點所擁有的資源數據比例進行計算;根據每個節點對應的資源數據類型的不同,同時動態獲取游戲世界的變化,將固定值數據進行固定設置,對動態變化的數據進行默認值設置,該默認值能夠通過可交互界面進行自訂有設置;對資源數據的比例邏輯進行設置及對節點之間的邏輯規則進行設置。
進一步,該方法還包括:對最底端的子節點的資源數據進行獲取,進一步,依次向上得到對應節點的資源數據,最終得到所有節點的資源數據及總資源數據;根據所述遍歷子模塊及節點之間的邏輯規則對每個節點下對應的子節點的資源數據進行計算并調整至符合邏輯規則的比例。
進一步,該方法還包括:預先設置的比例邏輯規則及節點之間的邏輯規則,獲取游戲運行參數,將子節點所占的資源數據比例調整至最優比例的信息使用可見界面向玩家進行展示;獲取玩家的操作指令,根據指令對玩家進行不同的提醒,如果玩家選擇低優先度的資源數據,將高優先度的信息建議推送給玩家。
本發明的有益效果為:大大縮短策略游戲開發周期;增強代碼可維護性與可重用性;增強游戲的體驗和表現;方便各種職位的人員分工合作,優化流程。
附圖說明
圖1所示為根據本發明實施方式的策略一種游戲資源分配樹的結構圖;
圖2所示為根據本發明實施方式的策略游戲的策略分配方案流程圖。
具體實施方式
為了使本發明的目的、技術方案和優點更加清楚,下面結合附圖和具體實施例對本發明進行詳細描述。本發明的策略游戲資源分配系統和方法適用于單機游戲、手機游戲、網頁游戲等游戲的開發。
圖1所示為根據本發明實施方式的策略一種游戲資源分配數的結構圖。圖1資源分配樹的一部分。樹葉為個體的具體類型。例如,長矛兵的位置為根/軍事/進攻/格斗/長矛兵。“長矛兵”節點本身可能包含關于所有長矛兵的統計數據,如總數、攻擊力、戰斗中犧牲的長矛兵數等,以指出其進攻能力。NPC AI應針對游戲中的每個玩家,維護一個這種數據結構的實例。其他玩家的圖形表示當前玩家對每個玩家的策略資產的了解情況和功能劃分的估算。長矛兵主要是防御個體,但也可用于攻擊或探索。
圖2所示為根據本發明實施方式的策略游戲的策略分配方案流程圖。根據該圖本發明的技術方案給出了這些方案,包括:資源分配樹提供了一種優秀的、維護軍力平衡的方式。如果在一場戰役中失去了所有的20頭大象,則“大象”節點及其所有父節點的分配值將小于希望的分配值。
當然這并不意味著一定要用新的大象替代所有的大象。當“大象”節點的父節點獲得填充新的子節點所需的資源后,它可能認為最佳的措施是制造一個坦克營,因為現在已獲悉了制造這種坦克所需的技術。
資源分配樹主要用于判斷制造什么樣的新設備以及如何給已有的設備指定合適的角色。通常首先需要找出哪些迫切需要增加資源的節點,然后確定為解決這種問題,是對已有個體重新布防合適還是生產新個體合適。
資源分配樹還為設計獨特的玩家個性提供了很好的途徑。無論開發的是擴張主義者、窮兵黷武的“成吉思汗”、關心經濟的資本家還是強調研究的技術政論家,都只不過是調整資源分配樹中相應部分的系數,以側重或冷落特定的節點而已。通過稍微調整資源分配樹的不同部分,可使NPC(虛擬角色)的AI(人工智能)側重于某種個體,在經濟增長和國防之間取得不同的平衡,喜好特定的戰略資產類別,甚至改變NPC的AI的風格。
當關心的是戰斗時,這樣做常常是個不錯的主意,即維護一個預先計算的“戰斗平衡表”(其中包含個體的相對強弱),并將其用于資源分配樹的“軍事”分支中的決策。這是一個2D査找表,能夠判斷任何個體同其他個體戰斗的效果。通過分析對特定敵人的了解情況的功能資產樹,可以知道敵人的軍力組成情況,并重點生產能夠最有效地打擊敵人的資產。
資源分配樹適合存儲其他的各類統計數據。記錄樹中的哪些節點被證明是有效的以及哪些節點遭到敵人的攻擊也是一個不錯的主意。前者知道長矛兵在對付另一個玩家時很有效,因此將資源更多地分配給讓長矛兵取得勝利的功能角色;后者知道敵人傾向于攻擊我的資源采集設備,因此在以后將采取更多的保護措施。
其中最后的步驟既適用于人工智能也能面向游戲開發者。
以上所述,只是本發明的較佳實施例而已,本發明并不局限于上述實施方式,只要其以相同的手段達到本發明的技術效果,都應屬于本發明的保護范圍。在本發明的保護范圍內其技術方案和/或實施方式可以有各種不同的修改和變化。