※ 引述《neo5277 (I am an agent of chaos)》之銘言:
: 我是從 .NET 起家的
: 之前一直都在寫網站跟服務,前端就是angular 跟 傳統jquery
: 感覺電商上的流程跟環境都小小的跑了一圈。
: 自己對於打造出一個可用的產品越來越有想要嘗試的感覺。
: 多方研究下覺得遊戲這塊可以說是一個完全體。
: 不管是單機,還是網路營運,在技術上可以說是整合了目前所有我能想像的到的
: 軟體技能,以及非軟體能力,也因為是從.NET 大概會先從 UNITY開始吧。
先分清楚 你是哪一種
1.喜歡玩遊戲
2.喜歡做遊戲相關技術
3.喜歡開發遊戲
4.希望有一個遊戲產業的工作抬頭
5.希望能有一個知名遊戲的工作抬頭
6.希望能在遊戲產業討飯吃
7.希望能在遊戲產業站著還能把錢掙了
從問的其他問題看來我覺得 偏向2.
那麼這些問題多半都是電腦圖學這門課可以回答.
所以其實去大學旁聽就是正解.
以下是碎碎念
最近的體悟是 遊戲軟體是一個一不小心就很容易做出反智系統(Anti-Pattern)的專案.
以往所認定優秀的軟體系統都是在需求穩定的情況下開發.
所以可測試性/可延展性/穩定性等等才隨之而來.
在遊戲軟體傳統開發的做法是:
做一個系統,讓數值人員填表來擴展.(一行數值代表多一種怪物/多一種武器/多一種道具)
在這個系統開發之始,軟體人員必定會問清楚,這個系統的極限(功能)在哪裡?
砲彈是直射,雷射,拋物線,是撞擊即傷害,還是爆炸後才傷害.
"可是" 系統完成後之後數值人員填表就"不會"超出這些類型範圍
也就是說這個系統無法填表填出"讓玩家覺得驚訝"的跳脫設計.
也就是說當系統完成或上線後的一個月後,
設計人員說要加"遙控飛機(Drone)"型的武器.
因為原先並沒有開這個規格,所以就無法經由填表產生這樣的功能.
軟體人員抱怨歸抱怨.
給出的答案就是下一版版更 把這個類型的武器
再"實作"(從某種程度看來就是 hard-coded) 到 遊戲裡面.
這件事情(超出原先設計規模)重複幾次之後,code就會爛到不行.
因為原先在設計系統的時候沒有想到要做成這樣.
(同時也因為營運端需求來的通常是ASAP,最好不要更新就能做到.
玩家在論壇上的建議也真的都是最好我點餐完一個禮拜之內就有.
可是瑞凡,蘋果審版本最短也都要兩到三天)
每次當從這個時間點回頭看每次開始做系統時候的規劃,就會覺得當時年少太過天真.
所有的遊戲引擎製作團隊都會講到一個反智的經驗談:
引擎/函式庫 是結果不是原因.
多半都是在專案中先做出這個功能,
然後歷經多個專案之後才把這個功能拆出來標準化,成為引擎工具.
衍生出來的一個悖論是:
有了引擎的幫忙,或是當引擎提供了某項功能,
代表成千上萬的遊戲可以快速實裝這個功能,代表軍備競賽的標準又往上推了一層.
有了引擎事情不會變少,時程反而會因此變多,
因為工具加大了效率,要求或標準反而會再提高.導致目標更加遠大.
共勉之