program 網址:
https://games.utah.edu/
本來是打算暑假就發的
結果拖到現在才來lol
當初在這個版找到了讀 EAE 的學長
可惜今年新生沒有台灣人
所以想說來分享一下碩士第一年經驗
提供對這領域有興趣的人參考
因為這個 program 相對還算很新 (剛過十周年)
所以每年的課上法有可能不一樣
不過他們重點是著重在分組 project experience
我是 Engineering track
第一學期的課有三個必修
1. Game Design
2. Rapid Prototyping
3. C++ Game Programming (這個不同 Track 不一樣)
只對程式課有興趣的可以直接跳過去
1. Game Design
有兩個老師
上一屆是全部人同學聽兩個老師講課
我們這屆變成分成上下半學期 (下一屆變成只有一個女老師教了)
先跟一個老師再換另一個
其中一個老師比較學術
會配合一些論文定義什麼叫 play 什麼叫 game
另一個老師是 UX 專業
但課上也沒什麼講到太深入的 UX
通常上課有一半時間都是在作各種活動
例如在討論平衡就讓大家自創腳色然後互相對決
勝敗數越接近的人加分
或者是修改簡單的紙上遊戲 AI
讓玩家可以贏但是要贏的很驚險
作業方面每周有 reading 然後要寫 reflection
這個幾乎都會花掉我至少半個周末
系上美國人都寫很快就是了哈哈
有時候要做 game design one page document
簡單來說就是分析一個遊戲然後把一些主要的設計點寫進一頁
用意是讓人一眼就可以看出來遊戲的重點
重點不在 UI 也不是遊戲劇情 (可選來寫的遊戲通常都是很老的 arcade games 也沒什麼
劇情就是了)
而是遊戲機制跟一些 aesthetic
我覺得收穫最大的是寫 good snack bad snack
自己挑遊戲然後寫他們的優缺點然後配一些照片或影片說明
一開始都會滿好寫的但到後來就會感覺大家都把遊戲用光了 lol
或者是壞的很難寫
因為 bugs 或 glitches 不算
必須要是他們做的遊戲機制
可能當初團隊覺得很好但是其實玩家都不喜歡的這種
這個能看到不同人對各種遊戲機制想法差很多滿有趣的
也有一些很明顯就是在唬爛而已
期末考是分組做一個 Casino game 然後最後一天在教室大家互玩
賺最多錢的組或人總成績直接升等 (B+ -> A- 這樣)
所以設計的重點就是要讓人會想玩還要感覺很容易贏
但是都還是要讓莊家贏
2. Rapid Prototyping
這是就是分組 project 課
不斷打亂重分組讓彼此認識也鍛鍊跟不同人不同團隊的合作
我這屆做了五個 prototype
依順序用的引擎或 framework 是
1. MonoGame or PyGame
2. HTML5 (大家幾乎都用 Phaser)
3. Unity serious game (我們組用 oculus 做 VR)
4. Unity
5. Unreal Engine
說是說 prototype 但大家根本都是當 mini-game 在做
因為不這樣的話 artist, technical aritst 根本都沒東西可做lol
每組結束後都要自評跟互評
最後打成績的依據基本上就是這個而已
過了一學期才發現專業度跟溝通能力真的會被鍛鍊出來
學會怎麼接受批評或者是東西被砍掉
還有怎麼跟 producer 溝通進度跟 artist 要素材
或者是自己先用 placeholder 這樣
做的過程中一定會看好幾次天亮 (通常都是 engineer lol)
不過大家都才剛進來這個 program 都很有幹勁所以還滿熱血的哈哈
3. C++ Game Programming (這個不同 Track 不一樣,就是專業必修的意思)
老師非常強!
前 Disney Avalanche 工程師現在在 Epic Games 做 Unreal Engine 跟 Switch 的接口
簡單來說這門課就是用一學期做一個 Heap manager
因為跟 OS 要 memory 的速度太慢
所以要會自己寫一個 heap manager 自己分配
畢竟每個遊戲的 allocation pattern 都不一樣需要的配置可能也會不一樣
我有一件很意外的事情就是系上同學程度落差真的超大
有一個印度人已經自己寫過引擎 C++ 超強
一個中國女生也很厲害
但也有從來沒碰過 C++ 也不知道 pointer 是什麼的人
讓我很困惑他們的標準是什麼 lol
對這兩個極端的人來說這堂課的幫助都有限
而我覺得我是正好在中間
有辦法跟得上但又能學到很多東西的程度
這個老師非常注重 const correctness 所以經過一學期真的是再也對 C++ const 一點困
惑都沒有哈哈
不過他有時候講課聲音會慢慢消失不見...所以很多同學會睡著 lol
我是坐在第一排他面前然後狂灌咖啡才撐得住的
第二學期的課兩個必修一個選修
我的是
1. Game Project
2. Game Engineering I
3. Virtual World (選修)
1. Game Project
這個我們那時候爭議超大
因為很多人近來都是預期會像歷年可以花一年半做我們的 Thesis Project (畢業論文/遊
戲)
結果他們改了政策變成先做一個一學期的再做一個一年的
他們的想法是很多人都沒有做這種大型 project 的經驗然後一下從 prototype 那種兩三
周的規模變成一年半
大家其實都不知道怎麼規劃然後浪費了很多時間 (?)
印象中是這樣不知道有沒有記錯 lol
所以有不少人反彈
然後這也造成了一個問題就是這一學期做的遊戲都 over scale
因為大家腦中都還是想著一年半的遊戲然後只是把它規模想小一點
五組中大概只有一組是 scale 抓得比較好的
但可能也是因為他們 engineer 程度受限沒辦法做太難哈哈
不過還有另一個大家不太 ok 的點
就是系上要求大家的遊戲一定要能跑在任何 mobile device 上
他們是說這樣的話去 GDC 可以非常容易的 demo 給其他人看
但從結果來看根本沒幾個人真的有在 GDC 給別人看遊戲
我很天真地跑去 Playstation 問他們能不能讓我們的遊戲發在 PS4 上
他們也非常大方地安排了一個會議室讓我們整組跟他們的 developer relation 談
不過最後還是得到很官方的回覆
就是去上網找 form 填哈哈哈
有點扯遠了
反正就是要求遊戲要能在 mobile 上玩但也沒規定做 mobile game 就變成像我們組做一
個遊戲然後支援鍵盤搖桿跟觸控
花了很多時間在一些不是那麼重要的東西上
其實這門課要過的規定是大家的遊戲都要成功發布
結果到期末因為各種問題都沒人發
只有一組最後暑假想辦法弄到了 google play 上面
我們組是最近重新開始動工昨天才把 steam works 加進去
簡單來講就是個看組員吃飯看自己想做多少的一門課
個人對於用一學期的規模來銜接其實覺得還不錯啦
學到很多
也知道大家一學期大概能做到多少
就比較好抓一年的目標
2. Game Engineering I
跟上學期同一個老師
不過這學期就是著重於遊戲引擎的各個部分
multi-threading, smart pointer, Lua data file, AABB collision detection,
intel intrinsics 還有一些有的沒的
然後期末 project 是用自己的引擎做一個簡單的遊戲
老師提供一個簡單的 Direct3D rendering library
基本上作業都不容易做
但是真的學到很多
而且老師跟 TA 都給很多時間補作業沒有什麼硬性 deadline
所以整體不算太難的課
直到需要想辦法 render, detect collision 然後跑在不同 thread 上面...
到期末都還一直出一堆奇怪的 bug 不知道是發生什麼事
老師還有一堂課跟大家分享他各種面試經驗
讓大家練習白板 coding 然後講怎麼樣面試
問題跟上學期差不多就是很容易睡著哈哈
3. Virtual World
教 Level-design 的課
整學期大概做 3 個 project 吧
可以自己選用 Unity 還是 Unreal
1. 去找一個現實中存在的區域,把他做成遊戲中的一塊 level ,基本上的理論就是看這
篇
http://www.gamasutra.com/view/feature/184783/the_metrics_of_space_molecule_.php?page=1
我去 SLC downtown library 然後做了那周邊的區域,把一棟最高的 wellsfargo 大樓當
成 weenie
2. 玩一個自己喜歡的 2D platformer,分析他的 level,然後自己想辦法重製一個類似
的
但是一開始不知道要重製只知道老師叫我們玩一個所以我就玩了 Hollowknight
後來覺得有點後悔因為他的 level mechanics 不太多重點是在 metrovania
有的同學選 super meat boy 之類的就不錯
3. 找一個喜歡的遊戲一樣分析然後重製
我選了 Uncharted 4 然後把一些遊戲裡面的部分組合起來 lol
花了很多時間在做 climbing 跟 grapple hook 哈哈其實變得有點像在做
gameplay......
上述幾個 project 做多做少都是看個人
然後課堂上其實講課不太算多
有時候會看影片
我是覺得學到滿多的
基本上大概這樣吧
好像打得比預期多一些lol
對這 program 有興趣的話歡迎問我