USC MSCS Game Dev 两年全方面就读体验分享

avatar 182004
Ligh7ninG
17879
34
之前经常浏览地里的信息,但是关于本program(甚至其他游戏相关program)的信息都不能算得上是丰富,于是在本废物毕业即失业整三周后,总结一下自己MSCS Game Development Track两年下来的就读体验,也给其他和我一样来USC追逐游戏梦的同学们一些建议,仅供参考。

项目介绍
USC下的USC Games program是一个很大的joint program,其中主要包括School of Cinematic Arts(SCA)和Viterbi School of Engineering两个学院。专业上,主要包括IMGD本科+研究生(MFA),CS Games本科+研究生(也就是MSCS Game Dev track,但一般习惯和本科统称为CS Games)。此外,program还包括SCA下的动画、美术等专业,平常各种游戏相关的event你还能看到同校Thornton音乐学院,Marshall商学院,以及IYA学院的同学来参与。


对比两个比较容易搞混的program,Interactive Media(IMGD)是头牌program,划分在SCA学院下。一般大家说南加大游戏专业排名第一(当然最新的princeton排名已经不是了)也都是指的这个program。著名校友陈星汉也是读的Interactive Media这个专业。这个program学的更偏design/production/directing,更有那种探索互动媒体艺术边界的意思。
另外一个就是本文涉及的MSCS Game Development,划分在Viterbi工学院下。其实包括本科的CS Games在内,更多的只是蹭个joint program喝口汤。很多游戏相关的event都是SCA来办,基本上厉害的教授也都是SCA下的;少数几个Viterbi这边,教游戏开发课程的教授,教的也大多是本科课程。还有比如IMGD可以约教授指导session,而MSCS Game Dev这边甚至没有专门的advisor,是和其他MSCS一起的general advisor,有时候咨询起来很不方便(不过上次听chair画饼跟我说明年会安排一个专门的,希望以后能越来越重视吧)。


所以其实MSCS Game Dev的学生很多时候在整个joint program里是比较边缘的。虽然各类活动也都可以参加,各路同学也都可以结交,但不免偶尔会觉得自己更像后娘养的。



就读体验和建议
虽然这个program有着如上所述的孤儿体验,但我还是想说,至少对于想成为game developer的我,这两年的经历是十分值得的。这个项目提供的更多的还是一个平台,不管是network也好,名号也好,能飞多高还是要看个人的努力。我同届的同学里,也有很多都找到满意的工作,去了3A工作室或者大厂。


我觉得,如果要来读这个program,那么一定要想好自己真正想要什么,做好心理准备,考虑清楚比如 1)能不能接受行业工资(相对)低,wlb差,不稳定这些东西,2)认清自己到底是喜欢玩游戏还是喜欢做游戏,这两者不一定相关,还有 3)游戏行业招人对fresh grad+国际生并不友好。


如果确实想走这条路,那为了求职,建议多做高质量project。program里理论课能教给你的实用知识少之又少,可以说80%的知识只能通过做project学习,而program中能做项目的机会也就那么几次。所以为了能找到心仪的工作,能符合jd上各种prior experience的要求,就只能靠自己做side project了,但一定要保证quality。我觉得一个很好的方法就是自己mock interview一下,想下如果问到这个project的各种细枝末节时,有多少可以说的东西,看看自己觉得能展开说的到底够不够。


还有一点就是,一定要逼迫自己多去social,多去参加各种event。包括但不限于gamejam,club,job workshop,GDC等等等等。对于在LA的USC来说,每学期各种来做讲座,来workshop宣讲的工作室数不胜数;而你身边的每一个同学(包括本科和研究生,IMGD和CS Games)未来都有可能是分布在各个游戏公司,工作室的校友;甚至USC本身的名气,都是你应该利用起来的优势(GDC那几天我特意穿着有学校logo的衣服,每天都有人上来攀谈和connect)。


选课经验
仅就我个人感受来讲,本track的课程规划虽然有一些让人不爽的点,但是总体还是可以接受的。MSCS下任何specialization track都需要32学分毕业,转换到选课上就是9门课(因为有一门项目课莫名设置的是2学分),其中包含一些偏CS General的课程,和游戏开发强相关的课程,项目课程,还有和游戏设计相关的课。如果你想进入行业成为一名game programmer,我个人的建议是珍惜项目课程的机会,做一些比较polished的project出来。

必修课
CTIN 488 Game Design Workshop

游戏设计课程,课程形式为lecture+lab,分别由Tracy Fullerton或Jesse Vigil担任讲师,以及department内一些其他教授担任lab instructor。教科书使用的是Tracy本人所著的同名书籍。本课程也是所有games相关major的必修课,所以除了同track的同学外,你还能见到很多很多本科CS Games和本科Interactive Media的同学,甚至有时商科修minor的也会来上这门课。给分很宽松。

lecture上,相当于是一门入门课程,给你介绍(至少是USC体系下)关于game design的通用概念,定义,度量标准,方法论等等。期中会让你写一篇essay用学到的知识来剖析一个你喜欢的游戏,期末考也是让你用本学期学到的关于game design的知识来分析一些自己玩过的游戏。
lab上,每个session大概20人,随机分组做桌游。整个学期大概4、5次桌游作业,包括对已有经典桌游(如Up the River)的改进,以激发一种emotion为目标的桌游(单人独立作业)等等。形式上有用各种手工材料做实体桌游出来,或者用Tabletop Simulator(Steam上)做桌游。最后一次作业是大家从激发emotion的桌游里票选出来最佳的几个,进行一些改进后上传到一个网站上,可以帮你制作高质量的实体版桌游出来(卡片,道具,包装盒等等),每个人可以搞一个留作纪念。

CTIN 532L Interactive Design and Production

游戏制作(Production)课程,同样也是一门项目课。非常非常建议抢Richard Lemarchand教授的section,这位是USC Games下资历排前几的教授(神海1,2,3主设计和制作),同时也是我平生遇到的最好的教师,没有之一。课程教科书使用的是Richard本人所著的A Playful Production Process(课后可以管他要签名)。课程形式是俩人一组(自己组队或者由教授分组),用一个学期做一款游戏,体验整个游戏从prototype到preproduction到最后的全过程。每周课程会有lecture,至少在Richard的section下,他会讲很多关于相关领域的知识,包括心理学,空间设计,节奏安排,narrative beat等等。其他时间则是各个组互相试玩其他组的游戏,给出建议。此外课程还会和Berklee College of Music有合作,会有他们那边的学生分配到每个组帮你做audio,voiceover相关的工作。

整个课程load比较重,因为要求每周迭代一个build出来,会耗费很多时间。但是由于学到的知识很重要,所以建议尽早上这门课,比如第二学期,加入AGP之前,这样如果你要pitch项目的话(后面会提)会有很大帮助,甚至可以让教授指导修改。总体来说非常有用的一门课,对于理解整个游戏开发流程过程十分有帮助。

CSCI 580 3D Graphics and Rendering
图形学课程。我上的是Ulrich Neumann的section。课程形式包括lecture+TA discussion答疑,总体包括六次作业(10% each),两次考试(10% each)以及一个最终小组项目(20% each)。lecture讲的内容包括3D Math以及一些rendering的基础概念,部分涉及的知识点相对较老,作业则是实现一个软渲染器出来(C++)。最后小组项目可以自选题目,给分是全体小组按表现结果ranking,然后前几位拿20%,之后几位18%,以此类推。


算是一门比较基础的课程,毕竟理解3D Math和渲染管线对于游戏开发还是比较重要的。相较另一门图形学课CSCI 420(本科生以及其他track可以上)来讲,讲的知识会更偏底层,更老一些,不过还算relevant。作业不算太难,主要要花大量时间在debug上(上了一学期+当了两学期助教帮人debug以后的经验),


CSCI 529a/b Advanced Game Projects
项目课,持续整个第二学年,也很大概率会是你两年来最重要,影响最深的体验,也将产出一个你最能拿得出手的作品。每个AGP项目都是先由一位学生pitch项目idea,经过多位教授两轮审核后,筛选出8-10个AGP项目,该学生本人担当Creative Director负责整个项目。之后Director会向其他学生pitch自己的项目,其他学生经过面试进入项目担当Engineer,Producer,Designer,Artist,Audio,UI/UX,QA等任意职位(当然对于Game Dev track的同学来说大多都是engineer,但如果你对其他方面有兴趣并且有经验也可以尝试)。每个团队核心成员一般20人以内,随项目开展可能会有额外成员、外包加入,有些比较大的团队最后可能会有50人左右。团队组建完毕后,按正常游戏开发流程,会经过prototyping,pre-production,alpha,beta,gold master等一系列阶段,最终于第二学期末截至开发,在一年一度的USC Games Expo上展出,供访客试玩。

大概每年4月公布了新的AGP阵容后,会有一次crew event。如果你想有个相对好的去处,建议尽早整理自己的portfolio,尽早主动联系director。到了5月春季学期末,基本上每个团队的核心成员就敲定了。暑假期间一般会开展一些简单的开发活动,比如prototyping尝试各种玩法idea。之后秋季学期开始还会再有一次crew event,之后就是开始正常的开发流程。所有AGP项目都在校园近处的一座单独的二层小楼里开展(EGG),一般就是每周四课上去一次,之后周末可能组内会额外安排一次。项目大多使用Unity引擎,但是往后应该会有更多的项目采用Unreal引擎。作为Engineer的话,一般职责就是每周从producer或者lead engineer处接活,和design/art/ui/audio配合,开发游戏。当然,具体的课程体验因人而异,要取决于同组engineer水平和态度,和你对接的其他discipline组员的水平和态度,还有production的管理水平。有些组可能开发一切顺利,有些组可能就直接开发地狱了,可以让你亲身体验那些发售暴雷,mc红分的游戏是怎样开发出来的。

此外,团队里的核心成员一般都是USC Games program下的,大多都是本科生。而其他额外成员还包括LA本地其他学校(艺术院校,如OTIS或CSU Fullerton),Berklee音乐学院,或者社会人士(比如我们这一年有一个项目拉到了神海里德雷克的配音Nolan North来给他们的游戏配音)。两个学期里,会有三四次机会请业界人员来进行Review(目前是Rockstar),对开发流程给出建议,甚至会专程飞过来开social event,之后也会给USC学生专门的投简历链接。有些团队甚至会把自己的游戏当成startup project拿到GDC上去拉投资。最后的USC Games Expo上也是一个曝光度比较高的展会,会有一些业内人士过来参观。

所以AGP本身是一个非常非常好的拓展交际圈,找工作,甚至找合作伙伴的机会,建议珍惜。

如果你觉得你有绝佳的想法,想领导一整个团队做出你的游戏,那在三月份左右请关注newsletter或discord,应该会有一场AGP宣讲会,给大家更具体地讲解AGP的东西。而且在三四月份左右这个时候也是开放项目pitch提交的时候,如果能细细打磨pitch slides并且有一个简单的prototype来展示核心玩法,那么最终被选中的概率会大很多。
如果你想有更多项目经历,那么其实入学以后的第一个学期其实就可以开始打听有没有AGP项目需要volunteer人手,虽然不拿学分但是是一个很好的锻炼自己的机会。



CSCI 561 Foundations of Artificial Intelligence
AI课,和其他CS General的同学一起上。地里应该有其他很多USC的就读体验贴,对这门课的总结会更全面。总之就是能避开沈为民就避开,Laurent Itti教的学期会相对更好一些。总体而言讲的与游戏开发没太大关联,但毕竟是必修。


CSCI 570 Analysis of Algorithms
算法课,也是和其他CS General的同学一起上。同样地里其他贴也应该都总结过了,非常推荐Shahriar Shamsian教的学期。总体而言也是和游戏开发没有那么大关联。

选修课
CSCI 520 Computer Animation and Simulation
动画与模拟课。教授Jernej Barbic人很好,科研资历也很丰富,还创过业(Ziva,目前已经被Unity收购),在影视和游戏领域(offline vs realtime)都有很多经验。lecture内容涉及布料模拟,刚体模拟,IK,脸部动画,粒子系统,声音模拟,CUDA等等各种。三次作业,主要是弹簧模拟,动画帧插值,FK/IK这种,以及最后一次期末考试。


干货很多,很硬的一门课。会涉及很多数学,上课经常就是教授写公式推导一写就是整个一白板。对动画或者physics感兴趣的可以上上这门课,不过我选这门课的原因纯粹是因为其他的选修课都太拉胯,实在没别的想选了。相对来讲也不是特别难的一节课。


CSCI 522 Game Engine Development

游戏引擎课,讲师Artem Kovalovs也是USC校友,CS Games专业,现Naughty Dog的Principal Programmer,参与过的作品有TLOU 1和2,神海4,MOH战士等;此外也在SIGGRAPH和GDC有过讲座和发表。这门课呢,老师非常牛逼,作业非常吃屎,课非常值得上。我觉得对这门课最贴切的形容就是,发售日打黑魂,没有一点攻略,啥东西都搜不到需要你自己琢磨,但是你打完以后会非常享受,收获很多。

lecture没有任何材料,每节课都是Artem拿个ipad出来给你现场写写画画一堆东西,3D Math,渲染,内存管理,多线程,动画,网络都有涉及。有时还会请Naughty Dog的recruiter来宣讲。作业是在Artem自己本科时写的游戏引擎Prime Engine里写,前几次作业是固定题目,比如往里面加动画状态,加碰撞检测,加shader这些,后几次milestone自选题目。有一次期中考试但是题目很简单,大多都是3D Math相关的知识。虽然Artem这个人很牛逼,但是你大概也能想象一个本科生当年写出来的,这么大codebase的游戏引擎是有多屎山,documentation是有多不完善。基本上每次作业你只能依靠ide的全局搜索,find reference还有断点功能,尝试理解他整个引擎的work flow,然后往里加进去你自己的新东西。虽然上过这门课的每个人都叫苦不迭,但是确实靠这个过程能积攒很多经验,而且Artem也会讲很多关于就业相关的问题,帮助很大。此外这门课判分相对宽松,每次作业只要求提交视频展示,只要看起来对就行,非常符合game industry的理念。

其他
CTWR 410L Character Development and Storytelling for Games
游戏写作课程。虽然这门课并不在track目录上,上了以后不能算在32学分内,等于多花~8000usd上一节课,但是我个人非常非常非常非常推荐上这门课。课程形式为lecture+lab,lecture上除了最开始是Danny Bilson(USC Games的chair)的总述介绍课外,其他每次lecture都会请一些业内的资深writer来讲一个专题,比如我们当时学期请来的有壮志凌云电影的编剧,写过命令与征服/星战/RE2/COD的编剧,RDR1的编剧,MOH/BF/Apex的品牌主创,漫威漫画主笔,tlou1总监Bruce Straley等等。还会有几次电影赏析拉片。lab的话,则是一学期打磨一个自己的原创故事,包括写one pager,three pager,还有以剧本形式写开头和结尾;此外还包括把已有电影ip改编成游戏,写一个大纲的这种练习。lab instructor的话避开选Marianne的section,这位虽然写作能力很强但是上课教学水平实在是不敢恭维。

如果你对写故事感兴趣,或者想以后某一天做自己的独立游戏,甚至你如果只是对电影/游戏里的故事感兴趣,一定一定要上这门课,讲的东西和做的练习真的是干货满满,受益匪浅。

写在最后
其实从我Fall 21入学以后就有在地里写一篇院系介绍的想法,因为地里关于这个program和游戏开发相关的贴实在是太少了,经常搜来搜去的我基本已经把仅有的几个干货贴全看过好几遍了。当然当时的想法是一定要在我找到我梦寐的工作以后再写,这样底气更足一点。当然计划赶不上变化,于是只能先把所有想写的先分享出来,希望能帮助到你,也希望决定来USC Games的你能成就你自己的游戏梦,Fight On!


补充内容 (2023-06-04 12:03 +08:00):

再补充点,想到啥就随便写点啥

track里人种分布的话,至少我们这一届来说,其实和普通的MSCS专业也都差不多,基本上是40%中国同学,40%印度同学,再加20%本土同学,一届20-30人左右。
隔壁Interactive Media MFA的话,可能就没有那么多印度同学了,会有更多的本土同学,甚至会有很多工作几年以后回来读这个program的。

AGP的话,还是有挺多机会见到一些业界大牛的。比如我们这一年就有Tim Sweeney(CEO of EPIC Games)的secret visit,还有近距离的QA环节;有Head of Microsoft Studios(算是斯宾塞的直系下属吧,做的是他上一份工作)来参观最后的Expo;有某国产还算比较著名游戏的主创偷偷跑来参观(还是我朋友跟我说的,说他们那天都忙着干活,没什么人正经跟他聊)。

除了AGP,其实还有另一种选择,就是MFA Thesis。隔壁Interactive Media的硕士项目有三年,最后一年要完成一个Thesis,而这个Thesis大多都是以游戏形式展现的。四月份左右的crew event,应该会有人整理一份全部AGP+MFA的masterlist,可以考虑一下。当然MFA项目有一个限制就是每个组至多只能有一名MSCS Game Dev的同学,具体的话还请到时候询问教授。

关于具体AGP项目体验的话,我更建议把“你想做什么”放到第一位,去一个你最感兴趣,最喜欢的项目。毕竟游戏开发不是个易事,最重要的还是要你在整个课程/开发过程中有持续不断的正反馈。其他的话,我个人经验得出的一个rule of thumb就是,项目的creative director越老,项目越小几率变成开发地狱。建议大家在申请去哪个项目前,先看一遍creative director们的履历,领英啥的。一般来说之前经验越丰富(很多本科同学都会参加两次以上的AGP项目),人缘越广(团队里有靠谱lead和producer的概率更大)的director手下的项目,项目管理一般不会太混乱,普通组员也不会过的太难受。
  • 97
34条回复