總結下最近編寫遊戲伺服器邏輯時常用到的設計模式
1 工廠方法模式
建立遊戲物件 比較常用的方法, 交由各個物件的管理器負責例項化其管理的物件。 在不同世界需要不同的物件例項時 可以先由世界把不同的物件管理器例項化出來
2 原型模式
大部分非玩家物件 建立時依賴 策劃填寫的配置資料 ,每次建立都讀一次表明顯有些多餘, 原型模式可以快速的從存根上複製出這些資訊來加快物件例項化的效率
3 單例模式
基本上物件管理器都需要這個模式, 對於多線 這種特殊需求 ,可以對單例 進行tls(私有全域性變數) 的改造
4 建造者模式
用得也很多 ,要求物件行為大多為元件提供, 這樣在構建過程中就能通過外部引數 指定符合特殊需求的型別物件
5 橋接模式
讓指令碼可操作宿主物件時, 一般利用 橋接模式 進行 指令碼與宿主語言的 資訊交換
6 享元模式
一部分策劃填寫的不會改變的stub資料可以做為享元存在於物件內部, 比如常見的物品屬性
7 **模式
需要給乙個物件指標新增引用計數功能時 ,可以給它套個引用計數的**殼
8 職責鏈模式
對乙個資料進行加工時可以動態影響的乙個順序鏈, buff系統一般能影響到 技能的釋放和執行過程 ,而每個buff對過程的影響就是乙個職責鏈上的一環
9 命令模式
如果每個物件間不能直接呼叫對方的介面, 比如說多執行緒模式編寫的伺服器下 ,就適合用此模式來傳遞乙個物件對另乙個物件的操作
10 直譯器模式
指令碼系統或者是給策劃規定的類似有語法規則的**初始化 時會用到這種模式
11 迭代器模式
**訊息時容易用到的模式
12 觀察者模式
適合做使用者選定物件的 屬性通知, 一般來說只有使用者關心的目標物件 才會有較為詳細的資料需要實時更新
13 狀態模式
狀態模式可以控制玩家在特定模式下對其角色的可操作性
14 策略模式
可用來做演算法複雜度的選擇 ,比如尋路 ai 等
邏輯遊戲 在電梯裡的男人
有個男人住在十樓。每天他會乘電梯下到大堂,然後離開。晚上,他會乘電梯上樓,如果有人在電梯裡 或者那天下雨,他會直接坐到他的那層。否則,他會坐到第七層,然後他會走三層到他的公寓。你能解釋為什麼嗎?這個可能是最有名的一條從側面入手的邏輯推理題。個人建議 這道題我想了很久,但沒做出來,後來想想,還是思路被...
遊戲開發中常用的設計模式
使用設計模式來提高程式庫的重複利用性是大型程式專案開發必須的。但是在 四人幫 的設計模式概述中提到了23種標準設計模式,不但難以記住,而且有些設計模式更多的適用於應用程式開發,對遊戲專案引擎設計並沒有很多的利用價值。根據經驗,精挑細選後,篤志在這裡記錄一些自認為有利用價值的設計模式,以便之後自己設計...
遊戲設計模式 狀態模式
前言 狀態機模式是乙個遊戲常用的經典設計模式,常被用作管理一種物體的各種狀態 例如管理人物的行走,站立,跳躍等狀態 unity裡的animator就是一種典型的狀態機,用於控制動畫狀態之間的切換 假如我們正在開發一款動作遊戲,當前的任務是實現根據輸入來控制主角的行為 當按下b鍵時,他應該跳躍。直觀的...