Fw: [心得] U of Utah MEAE 第二年心得

看板GameDesign (遊戲設計)作者 (尼克邱)時間5年前 (2019/05/13 06:03), 5年前編輯推噓8(801)
留言9則, 9人參與, 5年前最新討論串1/1
※ [本文轉錄自 studyabroad 看板 #1Ss9U_OQ ] 作者: nickchu35 (尼克邱) 看板: studyabroad 標題: [心得] U of Utah MEAE 第二年心得 時間: Mon May 13 06:01:33 2019 大家好 我最近剛從 University of Utah 的 Master of Entertainment Arts and Engineering 畢業了 跟大家分享一下第二年的心得 希望能幫到對遊戲 program 有興趣的人 我是 Engineer 所以以下幾乎都是工程課 文有點長大家可以斟酌看 二上三門課 Game Projects II (碩士論文遊戲) Game Engineering II Game Engineering III (前身是 Gameplay Engineering) 二下三門課 Game Projects III (繼續碩士論文遊戲) A.I. For Games Real Time Game Rendering (跟 Game Engineering II 同一個老師) 我下面一個一個詳細點講 1. Game Projects II 這個課其實就是做我們的 thesis game (碩士論文) 每周二四早上九點到下午一點 以往的碩論都是做一年半 我們這屆變成一年 而且學期一開始做了兩輪的 prototype 每一輪都是全部人 pitch 自己的點子然後大家投票 一輪會做個六七個出來吧,有點忘了 這裡大家有點爭議的地方是老師們一開始沒說要做兩輪 大家以為一輪結束就可以好好開始我們的碩論了 畢竟跟以前相比少了一學期 結果老師突然說要再做一輪 有些同學就很無言 還有人 pitch 的遊戲就叫做 shit storm lol 不過我可以先講一年下來的結論 大家的意見都還算是滿正面的 花個之前一學期的時間大家亂搞然後比較了解到底怎麼進行一個 development cycle 然 後再用一年重新開始新的 project 其實後面那一年做的份量跟品質或許還比當初直接做一年半來的高 個人意見啦 所以大概開學一個月後碩論的組才組出來 我們這組絕大多數人都是暑假就已經開始在 prototype 一些東西了 所以有些死路已經大致知道算是省了不少時間 我在組上的定位是 Gameplay AI Engineer 一開始花了一些時間 prototype 一個勉強像 Horizon Zero Dawn 那樣可以爬在移動物體 上的功能 因為我們當初的其中一個目標是有點像 Shadow of the Colossus 結果後來覺得這個坑下去可能一年就沒了 所以就把這東西丟掉然後我完全走去做遊戲裡的 AI 我們組內主要分成幾個小組 (strike team) Player, Environment, Goliath (boss AI) 會走這個模式是模仿一些業界的 Studio, 像是我們這的 Avalanche 我日常互動就是跟我們組的 designer 還有另一個 AI engineer 討論一些 feature 還有 要怎麼做 像是我主要是做 AI decision making 這部分用 behavior tree ,但是不同武器的攻擊 方式還有冷卻都是另一個工程師做的,這中間有怎麼建立一個 robust scalable 的 interface 花了一些時間 等於說 boss 的大腦只知道他有四肢加胸口跟頭 但右手是雷射右手還是大砲右手他沒必要知道 這裡有一大因素是因為我們想做模組化的 boss 目標是可以像樂高一樣不同的手跟頭還有腳搭配就可以變成一隻完全不同的敵人 但是因為時間還有 artists 不夠的關係 最後還是只有一隻出來 所以我們的架構其實帶來麻煩多於效益 不過也是很好的練習啦 不過當然做遊戲有一大部分不只是遊戲 還有人與人之間的關係 我們當初有一個組員態度非常負面一直抱怨其他人東西都不做完害他不能做事 然後另一組有個人暗地一直想說服他過去他們組因為想找人分攤工作量 後來他就轉去另一組了 然後說他在我們這邊的期間有憂鬱傾向 我們組也是隨他去 畢竟他真的是沒什麼貢獻又很負面 但我們組上的製作人處理得很好讓組內的人都還是好好的繼續工作 這件事背後的詳細前因後果也不是太多人知道 後來整組的氣氛跟感情都好很多 另外有個比較大的事就是我們在學期末的 play day (開放給外面親朋好友還有媒體進來 ) 前兩天決定從第三人稱改成第一人稱 這麼大的改變當然有很多人很猶豫 但我們迅速的把相機位置改一下試試看之後 幾乎整組的人都同意這個決定 最後就這樣改下去了lol 2. Game Engineering II 這門課的老師是以前在 Avalanche 工作的 Graphics Engineer 不過這門課不是圖學 老師是個遊戲引擎狂熱份子 他都說如果讓他從頭到尾自己做一個遊戲 他只會一直改良他的引擎而以應該不會做出遊戲哈哈 這門課教的一部分是遊戲 asset pipeline 還有怎麼寫好遊戲引擎的一部分跟提供 public interface 對於這一點他覺得一個很好的學習方式是同時寫 Direct3D 11 還有 OpenGL 的 API Build x64 的時候用 D3D, x86 的時候就換成 OpenGL 一開始從怎麼好好設定 Visual Studio Solution 跟不同的 projects 還有 external dependencies 開始講 後來就是開始建一些 Mesh 跟 Effect, Material 的架構 重點是要怎麼寫好 public interface 跟 private implementation 畢竟 gameplay engineer 不應該去擔心他今天想要 render 一個角色在畫面上是用 D3D 還是 OpenGL 後來有著重在 pipeline 跟 binary file 一陣子 例如 artist 在 Maya 裡面建了一個 3D 模型,然後我們可以用自己寫的 plug-in 去把 他輸出成我們引擎用的一個 Lua table 檔案 在這個階段還是 human-readable 可以人眼來看看 debug 接者在 build solution 的時候跑我們的 custom builder 把 Lua 轉成 binary file 重點就是要非常小的檔案然後可以很快速的讀進遊戲裡 學期末大概一個月做期末 project 分成兩部分 第一部份就是做引擎的一個 component 同學做的主題有 particle system, behavior tree, audio system, gamepad controller interface, 3D collision system 我做的則是一個 graph-based A* navigation 第二個部份就是大家報告完自己做的東西之後挑至少一個同學的加進自己的引擎 最後做一個簡單的小遊戲 demo 出來 我拿了 behavior tree 跟 audio system 來做了一個非常基本的類 Crypt of the Necrodancer 遊戲出來 這門課另一個我覺得對我幫助很大的訓練重點就是每周的作業都會要求我們寫 write-up 放到一個公開的網站上讓任何人都可以看 我是放到自己的 wordpress 然後後來在找工作的時候開始會把自己寫的文分享到 LinkedIn 上 個人覺得好像有點幫助啦 lol 3. Game Engineering III (Gameplay Engineering) 這門課算是普遍同學間滿有意見的一門課 老師以前在 Zynga 上班是 Unity 專家 我們上一屆聽說是自己選用 Unity 或 Unreal 寫作業都可以 我們這一屆變成強制使用 Unity 但基本上我們同學間 Unreal 跟 C++ 愛用者比較多 不過因為這門課作業量非常大 大家都覺得同樣的系統要是能用 Unreal 來做就好了 課程的部分從 SOLID design pattern 開始然後花一學期做一個像當初魔獸三的 Warlock MOD 遊戲出來 作的內容有角色有技能有商店(技能和物品還有升級) UI 後來也做了 AI 跟多人連線 雖然大部分的系統跟練習都是能轉移的 也有少部分像是讓我們用 Unity Particle System 和動畫系統自己做一些出來就覺得這 種練習好像不是太有意義 我個人是覺得這堂課還是學到了非常多 老師人也非常好也很強 但要我在選一次我可能會有點猶豫 4. Game Projects III 接續上個學期做的東西繼續做碩士論文 第一學期主要是做出 feature 然後打定 alpha 版本 第二學期除了 polish 外基本上就不做新的東西了 重點放成把素材慢慢加進去讓遊戲開始比較有個樣子 不過當然 bug 還是很多 所以我們組基本上每個禮拜六都會在實驗室加班 別組有人看到還說我們幹嘛把自己搞得這麼忙 這邊就感覺得出來國際生跟美國當地的學生壓力真的不一樣 美國人大多都覺得要有 work life balance 學校部份 ok 就好 國際生則是整天想著找不到工作就掛了 lol 一路加班加到 GDC 前雖然很累但是算是有達到目標 我們組的目標就是 GDC 回來後遊戲就要發到 Steam 上然後讓大家努力去找工作了 接著就只有修 bug 跟社群管理 不過後來還是做了一個新的排行榜出來 讓玩家可以看到自己玩的時間跟其他人比較快慢 學期末的時候也會有口試 defense 公開 defense 就是一組做一個投影片然後輪流講自己做的東西 私人 defense 則是一個一個去找教授群們閒聊聽他們再給一點最後的 feedback 講你這 兩年有什麼成長這樣然後說再見哈哈 5. A.I. For Games 這門課上一屆的評價很差 印象中是找一個 CS PhD candidate 來教然後教的一大糊塗 今年則是給我們系上的一個助理教授教 他也是第一次教這門課 但是整體算是覺得架構的很不錯 課程主要就跟著 Ian Millington 的 AI For Games 從基本的 Steering 開始 還有 Collision and Obstacle avoidance 然後做 A* 跟 Dijkstra graph search 接著在做 decision tree, behavior tree 跟 blackboard 單純看這些部份會感覺份量好像滿輕的 但其實很多時間花在自己架構 world interfacing 像是怎麼取得世界裡的 obstacles 還有自己寫個簡單的 ray 跟 ray cast collision detection 原本有打算期末還要做一個 strategy AI (group AI) 但因為 GDC 跟春假放掉了兩門課 教授自己也有事請假了一兩次給 TA 上課 最後就沒做了 其他的上課內容有 Goal orientated action planning 跟 decision tree learning (ID3 algorithm) 學期末有講一些基本的 Procedural Content Generation 像是 procedural narrative 有一點值得一提的是教授原本打算規定用 Java 寫作業 但經過一位同學的強力爭取跟教授寫信來往好幾次 最後教授同意我們用 C++ 跟 Open Framework 這裡真的是滿佩服那位同學的 話說人家最近開始在 343 上班了哈哈 6. Real Time Game Rendering 跟 Game Engineering II 同個老師 我們這屆很幸運的遇到他今年願意開這個課 還有系上願意不顧 CS 抗議他們已經有圖學課我們還開的意見 跟 GE II 相比不一樣的地方就是這們課當然著重在圖學跟 Rendering Engine 有幾周的重點是 render command 還有怎麼優化 draw calls 順序 例如沒有 alpha blending (order independent) 要先 draw 然後同樣的 material 或 effect (shader) 還有 mesh 可以被放在一起減少 API calls 然後有 alpha blending (order dependent) 要從後往前 draw 接著做基本的 texture, normal map, 2D UI 還有 diffuse, specular lighting (用 Blinn-Phong) 後來有一周在討論 color correctness, sRGB 還有 linear space 學期末做了 Physically based rendering (PBR) 還有 environment mapping 期末報告就是自己挑一個有興趣的主題來做 有同學做 Ambient occlusion 我則是做 vertex-based wind simulation 雖然大部分同學以後都不是打算走 Graphics Engineer 但這門課算是給大家一個還不錯的底子 兩年下來總結覺得我們 program 或許不是會教出技術最強的 developer 但是會讓大家很熟悉一個遊戲從頭到尾的開發大概是什麼流程 也很重訓練人與人之間的相處跟專業合作 還有如何在不喜歡對方的狀況下還是保持自己的專業態度 lol 我們 program 的弱勢可能就在地點是 Utah 所以大公司不多 唯一一家比較大的就是 Avalanche 他們最近也是給了我們一堆畢業生實習職位 但都是九個月的合約而且很少聽到他們給 sponsorship...... 另外就是靠畢業生跟業界的關係 Santa Monica 跟 Playstation 人資有一起來過 跟我們很詳細的講了他們收人標準然後也跟我們每個組的人見面 因為我是當 undergrad capstone class 助教所以他們跟大學生見面完之後我又把他們帶 回來我們組上聊天哈哈 Santa Monica 最後收了我們這兩個實習生 但其實就是他們的 Junior 職位 Jam City 也有一大批人來 Activion Central Tech 也是每年會來個一次 今年也有個 Blizzard 在 Diablo team 的來跟我們見面 但當然規模都無法跟在加州的學校或是 DigiPen 比 大概是這樣吧 有興趣的人歡迎留言或站內信 我會盡量回~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 73.166.95.204 ※ 文章網址: https://www.ptt.cc/bbs/studyabroad/M.1557698495.A.61A.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: nickchu35 (73.166.95.204), 05/13/2019 06:02:59

05/13 09:35, 5年前 , 1F
請教 年度生活開銷?
05/13 09:35, 1F
我現在住的地方 2b2b 一個月大概吃掉我 700 - 800 因為我還有貓咪房租,其他開銷可能 300 - 400,我都盡量自己煮飯,系上算是很照顧國際生我四個學期都有 TA 所以這方面還算可以,另外一點就是我沒車都用學生證免費搭輕軌跟公車

05/13 11:32, 5年前 , 2F
05/13 11:32, 2F

05/13 20:44, 5年前 , 3F
05/13 20:44, 3F

05/13 22:12, 5年前 , 4F
推推
05/13 22:12, 4F

05/13 22:15, 5年前 , 5F
太神啦
05/13 22:15, 5F
rasca 安安~~ ※ 編輯: nickchu35 (73.166.95.204), 05/13/2019 23:27:24

05/23 16:31, 5年前 , 6F
push
05/23 16:31, 6F

05/25 10:14, 5年前 , 7F
感謝心得分享
05/25 10:14, 7F

05/27 21:36, 5年前 , 8F
05/27 21:36, 8F

05/31 17:31, 5年前 , 9F
推 沒上QQ
05/31 17:31, 9F
文章代碼(AID): #1Ss9WKAg (GameDesign)
文章代碼(AID): #1Ss9WKAg (GameDesign)