※ 引述《gyd (阿龍哥)》之銘言:
: ※ 引述《wix3000 (癢,好吃)》之銘言:
: : 一直以來都有個疑問
: : 雖然物件導向教學都說繼承與多型是OOP的特色
: : 不過在遊戲設計時常常需要製作很多同一個架構但不同功能的類別
: : 比如說技能,部隊這一類
: : 我是應該遵照OOP的特色,為每一種技能實作一個類別呢?
: : 還是應該寫在同一個類別裡,透過控制屬性去產生不同效果呢?
: : 又或是有其他更好的方法呢?
: : 我目前是採用多類型的作法,但是類型一多又總覺得看起來很亂
: : 因為我程式都是自學為主,所以想請問一下通用的作法是哪一種
: : 麻煩各位先進提供一下意見
: 是個野生wix三千
: 目前負責過的案子, 我設計的架構上通常都會像這樣(以技能系統為例)
: 命名這邊只用概念
: base -- ability -- abilityA
: |- abilityB
: |- abilityC
: |- buff -- buffA
: |- buffB
: 其中 base 管理 data, 處理radius/add/remove等等共用的事
: ability 處理 施法/各技能階段等等ability專用的事
: buff 處理 多久跳一次/持續時間/等等buff專用的事
: abilityA...N 處理該技能在各階段該做的事
: buffA...B 處理該buff在生效時及stackin/out時做的事
: 其他如特效/model也是類似架構
你的架構離組件式似乎較遠
比較缺乏彈性
但敘述過少也很難斷定
歡迎討論
--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.231.87
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1445934454.A.7E7.html
其實這概念是很簡單的
就是有沒有想通而已
遊戲開發時你要以開發者容易除錯跟測試的角度去看
基本上就像是你有幾種技能
例如有技能ab01, ab02, ab03
他們有些基本的屬性
1.傷害
2.範圍
3.特效
4.持續時間
5.冷卻時間
6.消耗物
7.屬性
8.技能名稱
我列一些基本的東西
然後我們在物件的設定檔案裡
通常是加密過的property檔或是自己開發的檔案格式來設定這些屬性
然後將傷害、範圍、特效...等等這7項分別寫成物件
本身技能總項一個物件
在啟動或初始化這些技能的時候就會組合這些物件然後依照你的設定一一觸發
完成一系列的工作
這個好處就是可以減少總記憶體的使用量