2010/08/15

學如逆水行舟

螢幕拆下來,桌上剩餘的書本收拾收拾,看看此刻空蕩蕩的CGlab,結束啦!新的挑戰又要開始啦!

接續著緊湊刺激的上半場,七月前半的任務是pipeline之前serialize的作業流程。對一個OS/系程/資結全部隨便修的死大學生來說,也是給了我一個真正實戰的機會打磨一下這些書本上曾經看的見摸不到的知識。第一次真的需要用上UML來設計架構,第一次認真的將自己的扣當成會給人拿去繼續用的product,第一次......multi-thread不是拿來做一些不痛不癢純刁難synchronization的考試題目,第一次.......大量的使用STL,第一次........真的覺得眼下要搞定的東西非OO不可,第一次........要考慮跨平台相容性的問題。好多的第一次,每天上班前都能有個明確的目標:今天要搞定哪個部分,一邊在溫習/補強,一邊馬上拿眼前的專案來試刀。每天都能打磨自己的C++基本功,這段日子真的很充實很快樂,看著server/client端火力全開(也是第一次看到CPU四顆核心都被操到滿格= =),將frame rate推高到兩倍左右,成就感自是不在話下。

下學期的programmer搭檔Kent 陽光燦爛
producer馬克爵士 打不死的勇者
七月底開始,卻又是掉入了一個可怕的混沌裡,老闆希望我們將這個研究整合到遊戲引擎中.......一句話,帶出來的問題卻是一環扣一環,彷彿走入了走不出去的八卦陣。遊戲引擎用了blender內建的BGE,我要說那個logic editor用起來實在有夠不舒服,半外露的架構或許給一般用戶來說較容易入門,但是對眼下這種用途極超出常理的東西,完全找不到切下去的點。在人家已經外包了好幾層的post process shader的遊戲畫面,又是如何跟他們作depth composition?python要怎麼建module包住我們的扣(這邊我承認真的是我菜,完全沒研究過這項python最為自豪的膠水特性),老闆又不希望我從shader去著手,希望我直接去改blender的render核心..........老闆= =姑且不論blender大搞cross over的機車原罪........我要是能去當黑手一個月把引擎核心給改成rasterize/billboard共生,我就去id software追隨John Carmack大師的腳步了.......你把我想得太偉大了......我只是個平凡的打字不快的打字工讀生啊~~~~~~~~~~
吟遊詩人與騎士的合影L-R:Martin, Kent, 芭崎, Mark, Ji(前), Jan
開幕儀式留影紀念
此刻的狀況,有點像嬰兒還不會爬,就希望他去表演馬戲團特技。我連blender都還不大會用(操作方式跟MAYA大相逕庭,沒有什麼辦法移植現有的3d modeling常識= =),卻希望我去換它的心臟.......看著網路上密密麻麻卻又沒怎麼即時update的document(偏偏最近介面又大修,API大改),學,又是覺得這東西沒法速成,一個月熟練blender操作都嫌難,更別提老闆的目標。幾次跟老闆講說這個東西太大,我沒辦法handle,又不知是口氣不夠強硬,還是老闆在外面開會,沒看到我猙獰扭曲的表情,直到最後兩週才鬆口說改用prerender的方式先完成一個visualized demo clip。
帶著你的長槍跟盾活著回來吧

看著老闆這般積極的要贊助跟準備行銷,我只能說我錯估了這project的立意,本以為是個純學術研究的項目,現下居然是打算開公司銷售。但我也想跟老闆說一句:進軍遊戲市場的競爭之激烈,可能超過老闆您的想像。超高速render high complexity model在學術界遊戲界都會是個很吸引人的東西,但遊戲界各種以巧勁取勝的撇步早可做出更可怕更誇張的視覺效果。當老闆看著yo-frankie的low polygon tree,驚訝的覺得為什麼low polygon可以有這麼好的效果時,我心底是嘆了口氣:"老闆!別整天做研究了!更變態的遊戲還多的了......crysis的樹比眼前這棵樹好看不知道多少(疑似連subsurface scattering都用上了,不知道crytech是用了什麼神奇的技巧)還可以給你一槍折斷來玩.......去一趟GDC吧,或是去買一台PS3稍微看看近代的遊戲長什麼樣子"prerender video相對簡單的多,但要拿去行銷........你應該是請一位好的animator幫忙做這個而不是讓兩個blender苦手在這邊呆呆的設key frame吧(這跟玩三國叫荀悠跟呂布單挑有什麼兩樣........)
既然都提到了就來看看超病態的Crysis Tech Demo吧
可能是個性使然,遇到完全看不到頂的目標就會萌生退意。儘管硬著頭皮去做,但很明顯最後這三個禮拜的工作效率相較之前是異常的低,很討厭這樣的自己,討厭不事生產缺乏貢獻,討厭沒有進步的感覺。看著延通那種找不到大路拼命挖個地道也要鑽過去的蠻勁,真的是很羨慕他對自己這樣的要求,前兩個月稍稍覺得有點樣子了。這三個禮拜又再次發現:"什麼都不會!什麼都不懂!"爬過一個山頭後面是無盡的山頭,學如逆水行舟不進則退,絕對沒有辦法夠停止學習的,振作積極一點啊!!!!!

攻城戰
Ethereal學期前的第一發大動作:由中世紀研究組織SCA舉辦的Pennsic War,完全復刻十五世紀的騎士戰爭,野營。Mark跟Kent經過了大約一個月的訓練,SCA同意讓他們參戰,就像是Medal of Honor小組去打生存遊戲體驗戰爭的氣氛,Far Cry組去非洲蒐集建模的場景跟材質素材(其實你根本就是想玩而已吧= =),Ethreal此刻也要去感受一下千人會戰的氣勢啦!Mark前幾日還趕工在他的盾牌上嵌上迷你攝影機,捕捉戰爭的第一人稱視角(你這樣跟Heaven Shall Burn叫人頭盔綁著攝影機去mosh pit又有什麼兩樣= =)周六Ethereal小組相隔數月的第一次會師(差一個Dan,戰友在阿富汗中伏陣亡,去致悼辭,美國軍人........)驅車前往Ohio跟Penn中介點的Cooper Lake。換上Katie幫我們準備的長袍(只有兩個是戰士,其他人都是吟遊詩人= =),一切一切,都顯得那麼有趣。有點像.......參予人數破萬的cosplay........白天打生存遊戲,晚上狂歡party(啤酒要用中世紀那種Mug去裝,超殺!)。換個角度來想,算是一種癡迷中世紀文化的美式宅男聚會吧........每個人的工作行程不同(我跟老闆請了周一的假),來來去去,到頭來一路打到禮拜一的老班底就是Mark, Ji跟芭崎(Dan也在周日晚上風塵僕僕的趕過來了)
Mark隸屬小隊的指揮官Elena 一臉英氣(懷疑她是現役軍人 口令好標準)
大太陽下,小帳棚前,Ji在素描,我在翻書,面對著這位ETC2011最強modeler,說真的合作壓力不小= =他這學期結束就要畢業了,為了這project沒有接下RIOT的offer,只希望他的熱血付出能得到應有的回報。兩個人到後來索性都放下手邊的事開始閒聊,聊到他的工作:"我那時是美術組的頭子,手下只有三個人,從concept到rigging跟animation都要一手通包。有一整年時間我沒回過家,我女朋友說我都沒時間陪她,最後不要我了........""在Nexon做了三年,在Samsung做了三年,SK做了三年.......一邊念書一邊工作,Siggraph遇到了Don,他跟我的老師建議我過來,於是乎,我準備了一下托福,就過來了......." 一邊噴了一口菸,朦朦朧朧,Ji的身影看起來好滄桑.......好悲涼的故事,聽到最後都忍不住要為他掬一把清淚.......在CGlab的工作相較之下真的實在是太輕鬆太開心了,我真得好沒用........
給Ji老大打一下廣告吧 超病態的NURB/polygon modeling!

週一的千人會戰是一個極誇張的體驗!只有一個Epic能形容!長槍的激烈衝撞,近身肉搏戰,攻城戰,打了整整兩個鐘頭,在旁邊看了都覺得累。混戰的場面,任憑你如何身懷絕技,在這邊都是完全無濟於事,我跟Dan笑著說:"如果你希望我們的遊戲復刻這樣的的場面,player大概五秒鐘就被送到respawn point去了(而且可能還不知道自己是怎麼死的)"。Mark隔日又參加了叢林會戰,週五更是單槍匹馬再闖Field Battle,拼戰精神令人敬佩,這個producer應該是ETC最認真的producer!隨著Katherine的離隊,終定版project list沒有給我們補上任何artist,美術確定是要由Ji一個人硬扛下來,也該是將原本過大格局的目標稍微縮小下來了。開學第一週的gold spike是基本的人物操控互動及關卡連接,有半數的人馬要去日本開會。任務很明確,應該也是我還能handle的範圍,來吧!
混亂瘋狂的肉搏戰
實習的最後一晚,老闆請我們吃飯,閒聊之下也總算確定CYY跟老闆是老相識(啊!那個英文破破然後講話很大聲的學長!我們在同一個lab啊= =)少數幾次跟老闆有比較感性的深度談話。這暑假對我來講是夠充實刺激了,只是這project路還很長,看看歸隊的戰神Eric跟David如何攜手跟延通搞出一番事業吧。短程目標基本算是完成,我們也是幫您跟Nvidia要到了四張server級顯卡,現在的硬體條件應該可以搞一些像樣的東西了。老闆也提到希望畢業後可以過來幫他做,不管是不是客套,這份抬愛芭崎心領了。"既然沒有什麼東西不可失去,也就沒必要有任何顧忌,放手去闖吧!天下之大,我的身手又不可能餓死"老闆的這份生活態度我很欣賞,也祝老闆好運!
MAYA自修之路:芭崎號終於完工了
很簡單但效果很好的旋轉複製
回顧BVW round2 我們應該可以做出更炫的Texture Swaping!
Motion Blur的動感還蠻不賴!
打完這篇文,學期也差不多要開始了,台灣的學弟妹感覺準備比我們當時充足的多,希望兩位都能在ETC馬上展露頭角。我要放個假去放空放空啦~~~下學期應該也會是個很精彩的學期!

再會啦! CGlab! 我會懷念你們的!


2010/07/02

這輩子最充實的暑假


很高興此刻還能活著上來寫點東西= =,已經上工快兩個月了.........這段日子.........應該是我這輩子到目前為止過的最緊湊的歲月. 上半場結束,現在中場休息,距離下半場開打大約有三天的時間,可以把思緒回憶稍微整理一下,下一次再寫文可能就是八月中了吧= =

照片與內文風馬牛不相關 5/8 As I Lay Dying的現場
第一個禮拜,基本上就是David跟Bo把任務交接給我跟研通,這兩位現在一位在微軟實習,另一位要去stanford念碩士了.那段時間還有SCS帳號,沒辦法使用CGlab的電腦, 每天兩個人就龜在CS的電腦教室裡做事, light field算是image base rendering的一種, 基本概念很簡單, 簡單到有點弱智.........給你兩個角度的影像,你如何生出中間某角度的影像?答案: 內插.................我靠!第一次看到paper整個傻住........ 還stanford發出來的paper咧.............老闆的想法也很蠻橫:老子就是vram多不用錢!只要有一百個人需要同時使用這玩意, 這東西成本就形同百分之一,賺!
Mosh!!!!!!!!
於是乎,一張顯卡上塞滿了各個角度的模型圖像, 隨要隨找, 就算你是八十萬面的模型, 我也給你瞬間生出來! Bo幫我們ren圖,研通跟我就在用glsl把這個演算法試圖implement出來. 兩天後看著樹在一個狹窄的三角視野中轉動時, 一百多張圖片真的產生出有視差效果的3d畫面!我倆那一刻是又興奮又有點不可思議:"真的才給我們兩天就把他給implement出來了?" David那邊則是嘗試另外一種作法: Volume Billboard.這作法就文明多了,簡單來說就是生出一分3D貼圖,像切蛋糕一樣隨要隨切,四個人跟老闆在週四meeting時,因為David即將啟程,我來接手這作法的最後一道動作:使用geometry shader在GPU完成切蛋糕的手續,研通則是使用icosahedron的均勻分佈性質佈署ren位置,下一週決定要使用哪個方法作為render的基底,老闆此時語出驚人:"geometry shader, 一天學一天implement應該相當充裕. Icosahedron, 50行扣就解決了吧?" 老闆.........你是認真的嗎...................
樂手表現中規中矩 觀眾捧場度100分
開工第一個禮拜的週末就開始加班了..................禮拜天在延通的幫助下總算搞清楚geometry shader的語法( 不是用法..........三個小時卡在少加一個_EXT, compiler大哥你又不跟我報錯是存心跟我尋開心嗎? )禮拜一老闆一進教室馬上問:"明天要結果,OK嗎?"= =只能說人類潛能無限,第二天中午真的在咪挺前十五分鐘把結果生了出來, 只是效果不如預期, 老闆已經打算把注押給lightfield了, 儘管在Eric緩頰下爭取了一天來作geometry shader優化, 最後我們還是使用了lightfield這個超暴力的演算法作為project的基底."禮拜五之前, 我希望看到Icosahedron成功run起來!" T_T從第二周開始,下班時間自動下修為晚上十點, 每天出去吃晚飯時, 有被害妄想症的芭崎總是在幻想要是今天沒把東西做出來會遭到甚麼樣殘忍的毒手(抖).禮拜五早上報進度時,兩個人皮皮挫的跟老闆說還在找辦法把unsigned int餵進GPU的方法,整個房間氣氛冷得像冰一樣..........老闆一直打字.寄信.打字.寄信.半晌後才抬頭說:"我不明白,你們為什麼會被這種東西給卡住?我的意思是........有這麼難嗎?usample應該就可以做到你要的效果啊"(事後網路搜索結果只有兩筆這東西,而且只有提到名字,怎麼用到最後全都是用猜的.............)禮拜五晚上, 看到結果成功(事後才發現這個成功只是個假象.........)的在螢幕上出現時, 兩個人真的是興奮到有點語無倫次了(教室裡的人都在青我們= =)
基督教乖小孩metalcore聯演
第三周老大去渡假, 兩個人跟Eric大致討論了一下program的架構後, 開始分頭進行更進一步的工作. 研通去把light field擴展到360度, 我去寫server/client/封包框架...........打從大三上修完計網後再也不知web programming為何物, 現在要我寫出AAA級的堅固server= =,還要先將interface給大家過目討論再實作.........曾經在火狐待過,CG首席助教,CMU電玩研究協會高幹,大四才剛畢業的Eric所展現出的霸氣,整個要把我給轟飛出去:"啊啊啊............這才是..........CMUCS本系生的真正實力啊...........好強大的氣勢!!!!!!!!"他的扣結構清晰,條理分明,trace起來很舒服,環繞在那縝密的framework下,會讓人覺得:"這扣真的像工藝品一樣啊!"可惜的是他暑假也在西雅圖實習,很多時候,我卡在各種詭異的bug時,想不出封包要怎麼拆時,都在想:"Eric若在旁邊鐵定笑翻,居然卡在這種腦殘的地方"
ETC學生自辦郊遊falling water
"啊!如果你覺得不大會拆,又願意等的話。我這方面的經驗算蠻充足的,周末給我半小時,我可以把它寫完給你"芭某人再厚顏無恥,自尊也還是有的,讓人花錢雇的傭兵居然還要請遠在西岸實習的學生無薪抽空幫忙,不!整天在google上東翻西找,一點點試,一點點拆,camera, stream header, pixels,工作站跟本機互連,明滅起伏的紅色棋盤,終於.........看到了兩個畫面同進同退,雖然只有5FPS,但請讓我這個腦袋只有花生大小的打字員興奮個五秒鐘...........研通那邊因為浮點運算精度及vram上限的問題陷在一個爬不出來的泥淖中, 貝式三角,sphere intersection test, index number的各種交叉比對,螢幕上浮現著鮮黃,鮮紅,宛似精神病患的五彩內插...........在旁邊都忍不住頭暈目眩起來,一開始完全沒有頭緒的GPU壓縮,一周要生出來,每天晚上走出lab時,兩個人都像瘋子一樣的囈語:"完蛋了完蛋了.........要被fire了要被fire了..........老闆會殺了我老闆會殺了我....................."
吃麵吃得很開心的小溪跟Hugo
"為什麼那樹看起來像陀爛泥巴一樣?" "呃.......這螢幕本來就比較暗........上次因為alpha blending出了點問題,現在用手動算看起來有好一點.........." "I don't care! It makes no difference to me. It must be much much much better than this!!!!!!" Nvidia七月一號的參訪,將是這場激戰的分水嶺."我們到時要展示給他們的,絕不能是這樣的東西,我希望要呈現的是,陽光從樹葉中透出來!地板上斑駁的光影!任意的加減移動樹木" "等到日後人們提起你們兩位,只有陣陣的嘖嘖讚嘆!你們要以此自栩!" "要呈現的東西,只有完美( nothing less than perfect )!" 我這輩子,大概第一次被逼到這麼緊的地步.............object analyzer, compositor, image clipping............幾乎是以一天一feature的速度往上面添.............這時真的覺得:跟這份工作比,要在CG拿個A,跟吃飯差不多輕鬆..........."頻寬是瓶頸,那就壓縮啊!" DXT5, huffman tree, quantization,有損的.........無損的.........全部都給他丟下去啦! "CPU不夠快,那就搬到GPU上面啊!" 要是在ETC,我可能就兩手一攤白眼一翻:"說的這麼簡單,你來做啊" 但眼前的老闆是真的高手高手高高手,他是真的覺得很簡單...............給他做他是真的做得出來.............註解裡面的TODO, HACK一層一層的堆,舊東西都還不確定有沒有問題便一直加新的東西進去,此刻真的有萬丈深涯走高蹺的感覺..............
趁還能笑的時候趕快笑吧..........
一直到demo前一個禮拜,還是那團黑忽忽的樹,FPS的滑鼠操控模式,破破的草皮地板,禮拜四咪挺完又被老闆刮了一頓:"this stuff starts to embarrass me now, we can't show this kind of things to Nvidia!" 真的不是不認真不用心,冤枉難招啊~~~~兩個人都不是美術出身的,MAYA, mental ray都不是我們的本科專長,我們真的不知道要怎麼ren出比較漂亮的樹啊~~~~vram就是1G,新裝備還沒到前256X256X2xxx這樣真的已經是極限啦!!你怎麼能要求256X256撐到1024X1024還能看到"一片一片葉子",這是逆天而行啊!!!!!!!!!!!!!!!!!
project開始第一個月大概就是這副德性............
老天大概是覺得玩我們玩夠了,在我們兩個又再抱著頭呢呢喃喃時(整個CGlab大概都很困惑:那兩個中國仔每天在那邊用堆聽不懂的咒語念咒幹嘛= =),熱心的MAYA好手Ben出現幫我們對這棵樹進行大改造。raytracing, HDR, color bleeding, ambient occlusion, subsurface scattering...........Ben本身對程式沒有任何研究,他用的是"感覺"跟"經驗"!看著他對MAYA這些render選項熟練的操作,儘管早就知道MAYA是model神兵,此刻心中仍是會發出一陣陣尖叫:"這個MAYA也有!這不是之前Siggraph那篇!原來已經implement到商業軟體裡面了!!" 老闆看到新ren出來的樹,興奮的對我們兩個說:"看到沒!這才是樹啊!" 之前我是不敢小看artist,現在我是對artist抱著崇高的敬意。ETC一直宣揚的科學與藝術的互補,真的要我被逼到生死關頭時才能體會...............

周五AO map生出來卻因為alpha值的關係blend不起來,兩個人又是嘎嘎阿阿不停,這時是背後的女孩子伸出援手:"我看看可不可以用photoshop弄弄,你們快要demo了吧?辛苦辛苦"聖母瑪莉亞~~~觀世音菩薩啊~~~~CGlab平時大家各忙各的project,整個實驗室一整天聽不見幾句閒聊,這時大家的雪中送炭,只能說人間還是有溫暖的啊T_T。周六早上起來又收到老闆的追魂信...........說他有點擔心demo的進展..........Wayne!影子咧!影子咧!影子咧!= =|||下午用了各種blending參數,該死的影子就是不給我乖乖的blend進地板上。急中生智請研通把整張圖反白過來,新ren的樹,換過的地板,嬰兒藍的背景,重新佈署的位置,盤旋式的camera,影子.........上去了!就好像魔法一樣,齊了!整個畫面瞬間level up!!!! 35FPS!!!週日老闆一進來,興奮的大喊:"You guys did it! it's so beautiful! Mo!! You got to see this!! This is the future of video game!!!" 連續數週的緊繃,總算在這一刻稍稍舒緩下來,兩個人都是常吁一口氣= =
脫胎換骨之絕地大反攻!
之後,老闆又更興奮得提出各種加速的方法: pipeline, thread pool, vector field streaming甚至是各種近乎邪魔歪道的image access. "or there is a even better one!"每次聽到老闆又有新主意,就是一個哆嗦:"這個........做得出來嗎........= =" "可以給我點時間先把那像亂草的扣先清理清理嗎........" 值得寬慰的是,老闆終於說出了:"We are ready for the demo!"

Nvidia的訪客Jonathan Cohen,是奧斯卡08最佳特效獎的得主,蜘蛛人三的砂人特效就是他的手筆,之前在Nvidia官網上的鬼樣流體模擬,也是他的傑作。這樣恐怖的角色來襲,老闆點頭說OK,我還是整天都在幻想當天demo橫死當堂,回頭被老闆剝皮的血腥劇情= =,所幸當天demo在一片安祥和諧的狀況完成。大師鷹眼一看馬上將我們的作法摸透透,口頭嘉勉稱許,並表示有認識的人從事類似研究,以及願意提供一些裝備上的幫忙,當天他本人在CMU的演講結束後,我們兩隻小實習生跟老闆客人一同到了Craig的Luca進餐,燈光美氣氛佳,賓主盡歡,下午四點客人離開,警報解除,老闆龍心大悅,說這周末我們可以休息一下,刺激的上半場終於在這邊告了個段落..........


Jonathan老大驚世駭俗的流體模擬........有神快拜!!!!!!!!!

大概進程是這樣,很多細項記不清了,還是要重申一次,我這輩子從來沒被逼到這麼緊過!!!!!我要感謝我的好隊友研通,他真的比我老練很多,程式架構,技巧都也比我成熟很多。這段時間如果沒有這麼可靠的隊友,我應該會急到哭出來吧..........兩個人一天到晚龜在CGlab (Mo:這兩個每天從早到晚都在這裡 鬍子哥:是啊!好恐怖(creepy)喔..........),找不到bug時灰頭土臉,面色枯槁,完成feature時士氣高昂,眉開眼笑。老闆已經問我們倆下學期要不要繼續留下來做coop,研通答應了。我...........project ethereal............我還沒開始準備那一邊的東西啊!!!!!!T_T看著Ji的model跟concept art一直迸出來,我也希望趕快進入熱身賽啊!!!!!

自己練功的部分,把C++ primer搬出來看,好書一本!很多非常細膩實用的技巧,一路看下來越來越不敢在自己履歷上寫自己會C++...........shaders for game programmers and artists,也是好書一本!筆觸親鬆,內容實用,經過這一個月工作這邊的凌虐,看這本的shader真的只能說像看閒書一樣輕鬆..........也稍微接觸了HLSL跟render monkey的操作(以前render monkey真的只被我拿來當shader compiler用............)。MAYA........沒錯!MAYA!下學期要跟ETC首席MAYA好手合作,經過了Ben跟Mo的援手相助,自己只不過想給個地板上張貼圖也要請人幫忙的窘境,終於忍不住了,這種程度的東西都無法自己handle,programmer也不該只會寫扣其他什麼都不會吧.........(而且自己又不是頂好的programmer),亞馬遜都有敏馬血馬之別,如果頂級全才programmer當不成,求職的需要技能稍微都點一點應該不過分吧(很多公司TD都要求有基本的MAYA操作能力),我不喜歡說自己什麼都會的人(通常那意味著什麼都不會),但我更不敢講我自己是本科具有絕對優勢的人,我以:"能與artist良好溝通合作的programmer"為自我期許,為目標邁進!
MAYA自修之路:芭崎的第一個完成品model
我決定叫他芭崎號!



坐墊看起來蠻舒服的>////<

絕對是這輩子最充實的暑假(有假期可言嗎= =),累死人!但我可以感受到自己的進步!我希望進步得更快!我要變得更強!玉潔跟我閒聊時談到:"沒有溫情的地方 才是邁向神的領域的道路"成神是不指望了,只求知道神的道路是什麼樣子,只求自己能走過一遭!

2010/05/13

後面這半學期

有沒有辦法讓我用一篇寫完呢?= =

YUP學期已經結束了,這邊的進度才半學期,發生了哪些事,自己都不確定是否還記得清,想到什麼就寫什麼,管不了那麼多了.......比起過去,眼前更重要

GDC回來之後緊接著就是期中present,有鑑於上次被人嫌:"聽不懂我們在做什麼",這次present把所有的......專有名詞幾乎都拿掉了,排練時Deepak一直跟Ferderico叮囑:"不要講什麼GPU,array!就說繪圖用的裝置跟把東西兜成一串就好!"聽到這句時在旁邊忍不住偷笑出來(Andrew:這就像教你奶奶怎麼用傳真機差不多......)。Demo........反正要唬外行人,把花俏的秀出來給他們,讓他們看的一愣一愣就是.......GDC的心得:"demo出來,讚嘆!拍手!好像看起來很厲害!"。明明沒有人會在遊戲裡同時點這麼多盞燈,管他的,好看就是(Hugo:"怕什麼?我不問,你真當這裡有夠內行的人會問這種問題嗎?ETC沒有一個正統圖學出身的教員啦= =")。

整個過程算是OK,儘管前兩天就重感冒快把肺都咳出來,事後人家盛讚我們的氣勢很足(其實是眼神殺人= =+他媽的敢問問題給林北試試看)。插曲是:present剛結束我馬上被Deepak抓上樓,說我的program把Disney最新版的panda掛了,人家來興師問罪。當下緊張得要死,看到報出來的錯誤又覺得莫名其妙:明明就有宣告的東西跟我說沒宣告是哪招?半個小時後,Disney打電話過來說歹勢,沒有把code整個update完,是他們自己的問題= =嚇死林北..........



demo的效果還不錯(不拿現在的變態引擎來比的話.......)

期中完緊接又是第二輪pitch,Dan為了這pitch,當天舊金山飛匹茲堡親自上陣...........有嚇到人。之前討論說希望為pitch加拍一段概念展示影片,結果因為.........很多因素...........最後Dan拿了total war的遊戲影片來撐場。跟Mark看了那影片後,我跟Dan表示用電影片段可能效果會比較好,Dan聽了的反應是:"uh....你這樣講我很傷心耶XD那我花了一番心血弄的片子........如果你覺得可以弄得更好........好嘛......你就試試吧" 於是乎.......前一天晚上我跟Mark熬夜剪了個新版本(兩個人都不是職業剪刀手= =花了很多時間再做笨事),沒想到Dan看了很有風度的說:"我道歉,你的版本真的比較好,就用這個新版本上吧!"在美國,感覺還是真得要敢講敢說敢做啊。



project ethereal,拿出氣勢啊!

禮拜天晚上,趕CG作業我睡沙發,早上醒來,Dan就笑著出現在眼前了。帥氣的一個擊掌,上吧!比起上次接近血洗屠城的慘況,這輪陣腳相較穩很多(帶頭大哥都親自上陣了),每一個質詢都做了很堅定自信(並表現的盡量專業)的回答。Stephen他們的parallel gaming打算啟用UDK這隻人間兇獸,相當令人期待(programmer林燕跟單洋都很厲害,也都確定是下學期BVW的助教了)能做的,我們都做了,其他的,只能說盡人事聽天命。

raytracer,純手動土法煉鋼的raytracer,從raycasting到shading到優化整個自己來,跟John,延通一同的浴血奮戰(gtalk上John講不完的垃圾話= =),盯著螢幕上慢慢爬的render成果,最後看到成功的折射效果,看到柔化陰影,反鋸齒的出現,看到加了octree十倍速的驚人成效。中間的過程,想來仍是蠻欣慰的:直到這一刻,我才敢跟人講我跟CYY修過rendering吧!只要努力去做,這也不是給我做出來了,為什麼大學的時候都要未打先投降?現在想想,當年歐陽老大肯讓我這樣的混混畢業,真是菩薩心腸= =
與John一夜奮戰的成果-refraction搞定
auto shader customization,越做越覺得不對勁,這個feature做出來的目的到底是何在?為什麼有了normal map你要關掉它,為什麼要讓ramp過的2D卡通model變成立體的?為什麼要關掉spec map讓所有東西都像塑膠一樣亮晶晶?一切疑問,也就在Deepak一句:"advisor想要,你就給他弄嘛"的回應下弄了出來。說老實話,我完全不想承認自己在panda引擎中寫了一個這麼蠢的功能。兩個advisor又一直催我把完成的成品po在論壇上:"增加ETC的能見度!",事實就是我在論壇上給人剝了一層皮,這下兩位可滿意了吧?開心了吧?bitmask變string可不是我的主意,從頭到尾,你們希望我怎麼做,我就給你們怎麼做,反正出了問題都算在我頭上嘛,在論壇上只有四篇文章就代表我對這個project缺乏熱情嘛,有熱情,也不是給你們這般作踐的。對project有沒有付出,為了剪project宣傳片寫demo,你看看誰在project room待最晚?誰睡project room?凌晨兩點,盯著還沒寫完的UBI面試題目,真的在想:"為了這project,值得嗎?"
反鋸齒效果不錯

讓筆電抓狂的柔影
Wei-Feng,
It was great talking with you last week. I would like to offer you the summer job! In addition to being paid ($14/hr), we will have access to some pretty nifty hardware, be working on a really cool project that could turn into a SIGGRAPH publication, and I will be able to provide you with a great letter of recommendation if you do good work.
If you still would like to work on this, please let me know your summer availability, and I will work out the details.

Adrien

跟Adrien面試那一次,是我唯一一次休閒打扮穿著的面試,兩個人就在白板上隨性的塗塗抹抹,討論著baking, radiosity, GPGPU, cloud computing,反而比較像課後師生的閒談。收到這封信時,真的是百感交集,ETC覺得我沒有熱情,不懂我們在做什麼,又如何?computer science那邊的教授給我這份認可就夠了!延通跟我一路碰壁的intern旅途,終於在這一刻有了回應。Adrien是真的硬功夫圖學好手,七篇SIGGRAPH的背書也實在不再需要什麼刻意的吹捧。暑假能跟這個老闆做事,我的榮幸!
衝啊Octree! 四千面model一肩硬扛!
找intern的景況僅一個哀鴻遍野,Hugo, Ji,Charlie,陳爺,幾位令人敬佩的同學,一直到現在還沒有一個結果,也實在讓人為他們叫屈。茂凱熬了這半年,總算拿到了riot的offer,想起期初那場牌局,他舉杯向大家說:"希望大家暑假都能順利找到實習",這個學期,在這馬不停蹄的狂奔下,也差不多要畫下個句點了。智伯以國士待我,我故以國士報之。漢子的熱血,只賣給識貨的!我要讓白鬍子登上王座!
老闆很年輕,是流體模擬的高手
整個學期,我們完成了Disney要求的兩倍進度,Bei稱讚:近年ETC最出色的panda project,拿了個A-,advisor說:"ETC的標準是,你要那份task chart上的要求都幾乎完成,才是A的表現!"Disney五年的長期目標,你們希望一個學期完成?祝你們下學期順利找到這樣的人才。至於個人process grade:"後半學期未展現足夠的熱情,於狀況發生處理反應過於遲緩,B+"你開心就好,我不在乎了。pitch在此刻已經確定到手,下學期我們自己作主,game不是教育的僕人,也不是哄小孩的洋娃娃,更不是什麼他媽的人類行為研究的工具。給ETC來一個真正硬派的動作遊戲,沒有為創意而創意硬塞的爛梗,沒有噁心的寓教於樂,瞧不起滑鼠跟鍵盤,先用滑鼠鍵盤做出一個稱得上"好"的遊戲再說!

週五交出CG期末考卷後,緩步走出了WEH,天色灰濛濛,伸個懶腰,一個學期就這樣結束了。立衡Apple會回來,Hugo要去矽谷打拼了。週六跟John去看了As I Lay Dying的現場,一個學期沒看表演,儘管一天到晚在笑AILD是娘砲團,當天還是玩得很盡興,久違的甩頭衝撞,臭汗淋漓走出場的感覺真爽!老闆schedule很緊所以沒休假直接上工,直衝light field rendering跟volume billboard。週一晚上Chris家期末趴,很多人都醉了,去年在這邊開學前的烤肉,那時還有點怕生的同學們此刻肆無忌憚的歡笑調侃,走出門後帶點酒意的吹著風,新的挑戰,新的旅程!

語無倫次,快轉寫完。進度終於追平!暑假照這一週的進度看起來會蠻忙的........還剩一年,把握最後當學生的這點時間吧= =



CG作業,小試牛刀的flocking(這不是AI的東西嗎?= =)

2010/04/08

會師!GDC2010!

"I haven't even packed my luggage, fuck!"

Gtalk上John隨口murmur了一句,我看看旁邊也還是空的行李箱,凌晨三點半......大概也是最近飛習慣了,都拖到最後一刻才把東西亂丟亂塞進去。這幾天不是project demo就是CG作業,一直到這一刻,都還沒開始研究到了GDC要去聽些什麼東西:三天的main conference,項目從audio, program, design到production, visual art, business,所有你想的到的遊戲相關議題都網羅進來。Hugo這兩天就開始研究那密密麻麻的schedule,題目看起來都很有趣:"Designing for Performance, Scalability & Reliability: StarCraft II's Approach","Physically Simulated Clothing in Eve Incarna Using NVIDIA APEX","Go With the Flow! Fluid and Particle Physics in PixelJunk Shooter"主講從B社,EA,Square-Enix到Sony,Nvidia,Intel軟硬都是響噹噹的大牌名字........還真不知要怎麼選起........

早上跟同班機的林童碰頭,中午人又在飛機上了.......閒著拿起書把stencil buffer跟動態貼圖的部分在這段航程中翻了一遍,兩個都是做real time shadow的偷吃步技巧,趁著剛做完FBO手感正熱,看起來特別快,腦袋裡又浮現出2000初期的那幾款標榜即時光影的遊戲(第一個想到splinter cell,最新作在GDC也有主題開講),又想起之前跟Loga他們憑著fixed function pipeline硬尻出來的anaglyph遊戲:"早期的3d遊戲陰影也就是在角色下面貼個黑色圓盤而已........"中間也才隔了幾年........進步的速度快到跟不上啊..........
宅男高峰會GDC
抵達LA後東道主Angela就過來接應啦!上次西岸行原本要碰面沒碰到,這次來叨擾大表姊三天。當天晚上聊得蠻晚,她聽著我對一些project上不平衡的抱怨,最後說了句:"well......很有趣的是,在我們公司,亞洲人都是在負責很底層的硬活,但是每次在報告的時候他們也都很低調,所以美國人往往相對比較起來都比較亮眼"可我最討厭的就是空口說白話,不事失產出一張嘴......."你現在是在美國人的地盤,你必須學會出一張嘴,如果你討厭空口說白話,那你應該要要求自己又能辦事,又能漂亮的展現給人家看!"......還是一句話,在人家的地盤,就照人家的遊戲規則來.......就算是有主場優勢,好!芭某人也沒再怕的!

第二天到了會場Moscow Center,領了通行證,沒多久就看到了久違的立衡跟陳喆,好像都瘦了.......日本不是應該吃好喝好的嗎= =,真的見了面,也有點不知道要聊什麼,兩個人現在都滿口日文垃圾話,立衡這次還帶了剛弄好的demo reel跟新版履歷準備進攻Pixar。時機差,景氣壞,intern特別難找,看他一挑就直接挑這種大尾的魔王,也只能說祝他好運(截至目前為止,78位同學找到intern的才剛滿十位,聽說去年只有九位.......)。剛投出去的Insomniac考題(寫一個memory pool manager)當晚也就收到了reject的通知,這丟履歷跟發傳單一樣的頻繁,像Insomniac還有回應給題目考試的算不錯,有些是真的丟出去後就再也沒有消息了,學期已經過了一半,真找不著,下一步又應該是什麼?
太久沒出現 讓我上上鏡頭
第一場,立衡去聽Pixar,我去聽Blizzard。主講是SC2的引擎首席工程師Dominic Filion,一開始講的東西還蠻詭異的:Blizzard的核心價值觀。當我心裡還在納悶這種東西甘引擎開發屁事時,他話鋒一轉,情勢瞬間急轉而下:首先秀整個performance monitor,再直接比開了monitor的效能差(幾乎不到10啪,他說超過10啪monitor的數據就沒有意義了= =),bottleneck的hotspot還原機制,連timing的組語指令是200-300 cycles,不准開lock影響threading的效能都考慮在內,針對六年前到現在最新顯卡play test的數據,即時生成的memory fragment html報表,現在已經火如荼進行中的全球封測(Dominic:不是實際去廝殺得來的play test data,跟沒有一樣= =)。整個人看得目炫神馳,被嚇得一愣一愣的:之前立衡他們參觀B社時,說只有放放預告片就打發掉了。這邊突然這樣的刀光一閃,彷彿在跟你昭告:這就是業界第一流的水準。出來的時候延通也是一臉失了魂的樣子:"我覺得以這種標準,窮極一生之力我大概也進不了B社,差太多了........."

接下來的進程,基本上就是一連串的瘋狂軍備競賽,"C++ is bad programming language for game development, what should replace it"是個open的論戰擂台,一堆沙場老將滿嘴各種沒聽過稀奇古怪的scripting language,聽到一半實在聽的完全沒頭緒,中途開溜= =,下午跟喆爺去聽Just Cause2的引擎,有些node reparent的東西聽起來很酷炫,可是講到animation方面rag doll, IK與物理引擎(Havok實在有夠紅)之流的,又是被轟炸的頭暈腦脹。想說連聽這種hardcore programming講座廳三天鐵定抓狂,終於挑了一場比較軟的來聽:Make It A Standard, And Stick to It,暴雪D3,WOW,WC3,ST的王牌企劃Rob Pardo主講,game design這種東西:大學問,可是沒有細部配套形同唱高調。B社這種世界第一等級的,講這東西對我來講就是多了強大遊戲背書的公信力:"gameplay first", "easy to learn, hard to master", "control is king"這種形同標語的東西,讓他拿B社歷屆遊戲出來比較佐證(從SC的英雄到WC3的英雄,從D2的技能樹到WOW的技能樹),聽起來沒壓力也有趣味。所以之後的模式就變成:聽program聽累,就去聽場design的蓄力休息一下。
B社的"核心價值"
第一天最後一場給了Sony Santa Monica的God of War3: Shadows,想說昨天才剛復習完,聽這應該比較聽得懂,結果.......gosh!ray casting, stencil map, baking texture, SSAO,LOD連環交替出招Cg碼一篇接一篇放(相機聲此起彼落),反鋸齒加拼速度的陰影演算法把人整個震傻在那邊,聽個三四成懂都被嚇成這樣,Hugo這種行家出來講話都帶點興奮得顫抖了。此刻手上那份空虛單薄的履歷,在這邊根本沒膽投出去.........

當晚又是一場校友聚餐(結果連顆花生米都沒喀到= =),意外的遇到了Hugo的學長RH,他在Neversoft做了幾年,最近又回台灣工作了。看到吉他英雄(Metallica, Van Halen, Aerosmith, 4.5,6)製作團隊在面前,整個興奮的都有點抖(RH:你喜歡Metallica啊?哀 可那片是賣最差的,大概音樂太重了......Aerosmith就賣得很好)。稍微問了一下我intern有沒有著落,我跟他說能投的都投啦,目前仍是掛蛋,他也安慰了一下:"沒關係啦!台灣我那屆同學沒找到intern的,畢業都去了dreamwork跟pixar"我也想到西岸行遇到那位在做Call of Duty的學長,他也是說他那年暑假沒找到intern,所以就自己練自己的。是啦!來這邊看了一趟,真的才發現原來遊戲界是這麼恐怖的廝殺戰場,真找不到intern,也只能說技不如人,實力差距太大了.........有很多東西希望暑假能好好重練一下:資結,演算法,很多東西希望學起來:DX, XNA, C#,讓自己留在匹茲堡潛心修練一個暑假,也不是什麼壞事。沒有本事,又怎麼能指望人家要你呢?
GOW3:原聲帶由KsE, DT, Trivium一幫猛將連袂出擊
第二天,早上聽了Nvidia的即時流體模擬,微積分狂噴,直接繳械投降= =。只記得很正的印度正姐工程師嘗試把敵人打爆秀出particle effect,打了半天打不到(果然好的game programmer跟game player是兩碼子事lol),中午聽文明地國的design聽到一半,就被Deepak的手機叫出會場:我倆是PandaSE代表,準備跟從未謀面的客戶Bei開會。Bei跟他老闆Mark在門口跟我們會了面,拉我們去吃飯一邊談,我在點了白開水時Mark突然開口:"你確定嗎?今天我請喔"= =

Bei給我的感覺蠻像VFX, rendering授業恩師CYY:年輕,幹練,身材魁梧..........大至聊完project的部分(Disney的立場是希望我們好好收尾,把document做好.......但如我上篇所講,各家勢力有各家的算盤,黑暗政治,很多東西Deepak也叮囑我略過不提= =),身為ETC校友的Bei也關心了一下我的學習狀況,我就坦白跟他說了:ETC沒教我什麼東西,我都得靠自己學。Bei聽了露出一副不意外的表情:是啊!那大概就是ETC教會你的東西,自主學習!又問我未來的打算,也跟他老實回了:engine programmer我大概吃不消,希望是做graphic programmer或是game scripter。他又問了我對shader有沒有經驗,"嗯 寫過一些簡單的,希望在多寫一些自己練習一下" "像什麼?normal map? stencil buffer? shadow map? bloom? HDR? deffered shading? refraction?"報菜名一樣噴了一串shader,芭崎被嚇到緩緩點了點頭時,他又爆出一聲大笑:"haha!all the old school classic!"笑完後認真看著我:"想做game scripter,那是競爭最激烈的地方,graphic programmer,吃力不討好錢也不好賺,如果想賺錢,可以朝web programmer的路線走,全LA有資格稱為web programmer的,不到五位!"

本來就知道我們這位客戶是行家,也知道他講的是真話。但我......還是希望能夠朝我想作的方向走, 當初選圖學這條路,就是因為我是個視覺動物,一切看的見為準。我真的就是愛做這東西,web programming對我來講就是還好.........well........多謝學長的提醒,但還是讓我........試試看自己到底夠不夠格闖這一行吧!跟客戶說了再見後,Deepak就一路直衝會場徵才的攤位,畢業在即,Deepak不像我是抱著開眼界的心態來GDC的("我現在是一隻獵捕工作的獵犬,所有演講,課程,跟求職無關的,我不放在眼裡!"),連履歷都是用上好的皮紙印製,我則就像是個見習生一樣看著他逐家公司投,逐家公司問。他求的是正職,我求的是intern,中間預到延通,兩個人也試著投。但真的,我此行沒有想過投履歷這件事,那份舊版的履歷很多地方都沒修,雖然請立衡幫我印了幾分,自己都沒什麼信心的東西投出去也完全沒存什麼指望。機會在眼前,你有足夠的實力跟氣魄去要嗎?我承認,在此刻我真的沒有= =
求職攤位真的蠻恐怖的,投履歷都投得蠻有壓力
下午先是聽了FF13的企劃講story的部分,同步口譯品質有待加強,整場霧煞煞。巧遇喆爺又聽了UFC2009的物理引擎,animation的部分實在是一門要從CG裡面獨立拿出來講的東西,儘管對一般的graphic pipeline, render已經有了基本的認識,動畫這塊完全是門外漢,看著最多三十不到主講在台上侃侃而談,我好弱..........本日最後一場給了昨天把我嚇破膽的GOW3,不過這次講得比較輕鬆:model, animation的生成流程(偏美術那部份的)。旁邊又是這方面的行家茂凱,不懂時就戳戳他問一下。concept artist生出概念圖,modeler, rigger在那邊靠邀:"這是要怎麼rig啊",於是又回去改又拿回來討論,奇美拉,Kratos的個性如何影響他們的動作(蛇師羊三種個性的攻擊型態,Kratos沒有仰面趴的動作,因為他絕不退縮),一個combat designer配一個animator(這實在很誇張),新人剛入行先餵他們一堆暴力片:"這樣得砍殺效果是我們要的"。聽起來很有趣,美術那方面也是勞心又勞力,茂凱他們的ETC project這次在GDC也有展出,以他的身手此刻卻還是intern掛蛋,artist方面的競爭,可能比之programmer來得更高啊........

晚餐中台10,11兩屆學生(Lynne抽到了一台PS3!!!!!!!!!!!超賺!!!!!!!!!!!!)及部分校友在一家中國餐廳聚餐(真得是中國餐廳,不是匹茲堡的偽中國菜!道地的味道吃得好感動)。陳喆一直教Leon講北京話,一邊學台灣的垃圾話,熱熱鬧鬧得吃了快四個鐘頭,最後又遇到了Charlie一行韓國同學,Charlie剛被Lucas film打槍心情很鬱悶,如果以graphic programmer或TD的角度來看,Charlie也是整個把我電翻的程度,他找不到,我是在指望什麼呢?幾個人之後又找了間bar續攤,喝著喝著,立衡看上去是累了,散會。
小梁這次也有投Sony,希望有好消息
第三天的凌晨五點,整晚不見人影的Angela把我搖醒,睜眼只看到她一身勁裝:"我要去滑雪了,保重!"哈哈!我表姐真的是帥呆了的財經悍女:妳不會整晚沒睡就要去滑雪吧!想想最後一天的conference,之後又要馬上去搭飛機,索性就把行李打包拖到陳喆他們下榻的旅館。隨著大家越來越大,越來越忙,像小孩子一樣整天膩在一起的日子大概不會在有了吧!Angela妳也保重!

第一場聽的是Brutal Legend的特效組,09最metal的遊戲,要不是沒有PS3我也真的很想搞一套來玩玩。他們的graphic programmer相較於前兩天GOW之流的偏執技術狂,多了一分搖滾樂的狂氣跟瀟灑:"用Bezier curve來模擬有些許誤差,who fuckin cares?","UV distortion+spec map大家就會傻傻得被騙:以為是動態貼圖 哈哈","美術組來跟我們要shader,我們又說:行啊!那邊一堆,高興要哪個自己挑",廣告片段聽著Mr. Crowley當背景音樂整個熱血沸騰,都可以想像這個team在工作時一邊高分貝metal放送一邊互相嗆聲的畫面:我好想在這種地方工作啊~~就算技術不是最頂級,但真的有開心在"玩"的感覺!第二場是今年GDC大贏家Uncharted 2的TD工具組,一些拆UV修佈線的工具,我不是modeler也覺得這些工具真好用哈哈。午餐Hugo帶著大家走個老半天的路去吃brunch(John:"Hugo,要吃brunch不用走半小時去吃吧.........."),San Fransisco真得是很舒服的城市,真的蠻希望能在這邊找到工作的,生活機能方便,形形色色什麼都有,更別提鞭團故鄉Bay Area就在附近,搞不好練團都會預到Metallica走出來(作夢中)........
這個motion capture三天在會場到處走透透
下午在書店買了紀念品,想想Chris給的折價卷不用有點可惜,買了本資料結構回去複習一下。書店裡琳瑯滿目電玩開發相關各種技術書籍,行行都是大學問啊!小時候打電動時,己曾想過電玩產業是這麼技術密集的一行.......GDC最後一場,送給了頑皮狗Uncharted2當日第二發:HDR,前面半小時就是VFX複習,gama correction跟tone mapping,後半段混上SSAO後越來越刺激,講到SPU優化的部分:"compiler太笨,沒辦法幫我門做八核優化,所以......我們得自己來!"八核心的assembly language手動優化..........我的媽啊!!!地球真得太危險了,趕快滾回火星去吧!!!最後一頁投影片:誠徵graphic programmer彷彿在向大家示威:"我們敢招,你們有膽來徵嗎?"XDD
Cg碼一出,相機聲此起彼落
震懾於這一堂的餘威,一直到在會場門口跟Mark, Kent會面時,仍是一副心有餘悸的表情........下學期的pitch team Ethereal終於在漁人碼頭的Hard Rock Cafe會師了!Martin, Jan, Dan.......好久不見!整個開會的過程非常令人振奮,感受到了每個人此時都對這project充滿幹勁:拜託!幫你們賺錢賺了一個學期,下學期讓我們做些對自己找工作有意義的project吧!除了第一輪的檢討與第二輪的沙盤推演,Dan釐清跟修改了pitch的訴求重點,成了:"將寫實模擬類型遊戲導入social game模式的行為研究"。講的這麼好聽,哈哈,在場的每個人都心裡有數:"只要pitch一過,接下來隨我們搞!我們自己來作主!讓我們做一個真正稱得上遊戲的像樣東西!"

晚上立衡跟陳喆送我到車站,老話一句,保重!下學期,大家都會在匹茲堡在相聚了,希望立衡的pitch team也能順利挺進,希望大家暑假的intern都能找到著落。凌晨七點,回到匹茲堡,在28x上跟Hugo討論著glowing shader的作弊技倆,準備在期中present的demo施展出來。回到家,整個累得癱在床上倒頭就睡,一趟旅行見識到真正的業界標準,我只希望:在我畢業前,能將現在這巨大的差距拉到越小越好。
大陸同學延通,腳踏實地的真男人
本文事件的真實時間,3/11-3/13,今天是4/24,這篇文斷斷續續寫了快一個月才生出來.......到底要到什麼時候,我寫的東西才是日記不是回憶錄= =

2010/03/17

一個多月了?

最新版本panda compile中,Andrew被Ruth拉著在討論Max egger的優先任務,沒有新版本東西寫不下去,距離midtem presentation的前兩天,暴風雨前的詭異寧靜。

我猜這篇今天是不可能去打完的,左右現在處在一個意外的真空狀態,紀錄一下已經快一個月沒有更新的生活(週刊->雙週刊->月刊.........what's next?)。

該從什麼地方開始講起呢.........一個月前的暴雪吧.........quarter present前,下了一場猛烈到誇張的暴風雪,一個晚上,雪積到了膝蓋以上。次日清晨,走到門庭前,整個世界被覆蓋在一片白色的大棉被下,所有停在路旁的車子變成一堆一堆隆起的白色沙丘,教堂的下半身整個消失...............幾個人在大馬路上直接拿著滑雪板開始滑起雪來(當時的狀況根本沒辦法通車)。在這之後,連續停課三天,待在匹茲堡超過四年的同學都在說四年來從來沒看過這般大雪,之前在雪天裡說東北的雪比這大多了的大陸同學現在也是直呼嘖嘖,聲稱:比東北的還大還兇猛!

整天窩在家裡,事情還是得幹,我跟Andrew一邊在gtalk上討論,一邊遠端連學校的電腦趕進度(好佳在走前電腦沒關掉),一個texture copy feature搞了這半天沒搞出來已經搞到有點毛起來了。code短短不到一百行,就是在選要放進去的地方一直折騰,雖然也不是說code多就好,但這種慢吞吞的碎活就是讓人幹得心浮氣躁,最後high poly的薩爾達林克model在被我把貼圖到處亂放後,看到egg出來的成品還是乖乖的把貼圖都抓到放到egg檔旁邊,pview時一切正常,也是長吁一口氣,暴雪假後的meeting該是有交代了。

大哥你拿著滑雪板是要幹啥?

loop subdivision完全是資料結構大考驗,一變四,四變十六,給你玩個四五輪資料就破百倍了,點線面交替reference,哪種方法才有辦法省時省空間,大學時學的演算法跟資結給我丟到哪去了........以前的coding習慣又不好,常常直接開個大空間慢慢用,寫ACM玩時還可以這樣睹睹玩玩,這次要給它資料穠纖合度的動態塞進空間裡,出來跑總是要還,大學欠的,在這邊補回來吧。看到粗糙的兔子模型一按個鍵立刻變得光滑細緻,跑出來還是一個爽字,期中考前看到了half edge的資料結構做法,卻又是大嘆一口氣:用這個做法就是最速最佳解啦!我為什麼想不出來........學而之不足,整個學期一直都有這種感覺。

quarter,presentation表現自我感覺良好,只是Deepak說texture copy不用特別細講也不用秀,只講些無關痛癢的東西仍是有點掛懷。MK聽完present後直接跟我來個擊掌:HI FI!Wayne!present 之後的一個中午,組員一個一個被叫到Advisor房間給成績,我拿到個:B........Mike跟Ruth問我有沒有意見時我只差沒有髒字直接問候出來,兩個人一直說這是在鼓勵我繼續努力,看到我有點失望知道我會做得更好,聽一句心理問候一次娘親。原本還在想說是不是只有我遭到這種待遇,當天下午Deepak就開了一場會,整組氣氛凝重,看起來大家都覺得評分有被虧待。幹點不是那個B,都已經研究生這學位也應該是我在念的最後一個學位,去他的GPA,不爽的點是我並不覺得自己不用心,做的事也不會比別人少。除了Andrew沒有人要做egger,被分到這組我也是乖乖學乖乖做,這就是人家看待我在做的事嗎?
踏雪尋梅,千山我獨行
Hugo聽我在吐苦水時隨口說了一句:可這feature感覺就不是會有人要用的東西啊.......都會用command line的人還會這種texture絕對路徑當相對路徑的笨事嗎? 我當然知道這東西感覺很沒用啊.......可我們客戶要求啊。就好像我們說關掉auto shader generator時texture color會爆炸時,跟客戶反映,客戶回說:阿那個沒關係,我們工作時只需要vertex color(後來還是修好那個bug啦,openGL該死的alpha value),那是客戶的要求!!!把客戶服務的高高興興不是本來就是做服務的基本嗎?

客戶?Deepak得出一個結論,雖然說名義上我們的客戶是Disney,實際上我們的隱藏客戶包括panda comuniy以及CMU ETC本身,Max egger那東西ETC要Disney不要,shader generator那東西community要Disney不要。所以,我們得自己找客戶要求以外的東西來做,而且要是能滿足其他兩邊客戶的東西。
你沒看錯!左邊那棟房子只剩上半棟!
Present時Ralph就再嚷說:這些東西.......你們computer science出來的人當然都知道,但我們完全聽不懂啊.......有沒有什麼影片之類的東西,直截了當,像Deepak你之前的Pandai不就有很多有趣的影片嗎?Disney給我們的評語:肯做髒活,不怕在黑幕底下幹事。advanced shader input只是幫助你寫shader方便,並沒什麼辦法給你更棒的shader,revamp egging process是幫你消除掉egging的惱人臭蟲,也不會幫你egg出更漂亮的model,你想看什麼漂亮的東西?客戶覺得我們辦事迅速其他人嫌我們辦事不力?

這作業還是要看格線圖才有那種爽快感
well,都已經過了快一個月的東西現在寫起來還是莫名其妙幹意往上湧,修養還是很差........我不介意做髒活,但我不喜歡人家在我在做黑手時要求我把東西打扮的漂漂亮亮的,然後用漂不漂亮來評斷我為這東西投下去的心思。客戶滿意了。給成績的不滿意,所以現在要想辦法去滿足給成績的。做這邊的東西又不能讓客戶覺得我們不務正業,因為他們希望我們專心弄documentation(panda的manual出了名的殘破不齊),不大希望我們接新的feature(他們說蠻訝意比預期的快,半個學期就幾乎做完一個學期的任務了)。什麼時候這些東西也要遮遮掩掩了?(開會時跟他們說我們這週專心做documentation,不要提auto shader generator的東西!)當學生也要耍政治啊~
方塊酥變成甜甜圈也很有喜感就是了

大約一個月前,Dan從Silicon Valley突然打了一通電話過來,久沒聽到這個第一輪戰友的消息,接到時也是頗為開心,問他怎麼打電話過來: "I need a programmer for the pitch team project, would you like to join us and be the programmer?"呼,還以為你是要來找sound designer的,這麼看得起我?"I'm serious Wayne! You are the most self initiative people I've worked with in the BVW, I really expect your contribution to our team!"心裡那時感覺是真的頗溫暖的:人活著就是拼那一口氣啊!你們想pitch什麼樣的project?"一個中世紀第一人稱寫實肉搏戰遊戲,在webbrowsrer上操作並加上microtransaction機制!"聽到這裡又開始笑了:前半段真標準的Dan Driscoll風格,龍劍騎士硬派格鬥,後半段八成是那次的西岸旅行現學現賣。聽起來很有意思,之前又好像也沒什麼人做過,可是要在webbrowser上跑這種東西你確定吃得消嗎?"我們想用Unity3D引擎,他有一個plug-in可以把遊戲直接buildup成網頁格式!"

OK,看了一下Unity的網頁,感覺是真的相當威猛的引擎,值得一試!還有哪些同學想要跟這project呢?"Ji, Katherine, Martin, Jan, Kent, Mark"聽了到這名單也是嚇了一跳:前兩位基本上就是ETC這一年最強的3D跟2D Artist,還擺了個專們搞生意的製作人,四個有program能力的programmer(有兩個要去當Design),這陣容會不會太噁心了?"沒錯!我們就是要做到驚人嚇死人到噁心的地步,你跟不跟?"好!我跟!

之後除了現在這個project team,我們開始準備這個新學期team的pitch,Dan真的是個硬派角色,敢說敢作,勇於實踐。當天晚上他馬上把腦袋裡的概念弄成投影片,包括世界觀,角色設定,分工圖表,靈感,特色,又自己錄了一段pitch的影片。我們在pitch前又開了一兩次會把內容潤飾了一下,大家主要在意的,還是:"這對ETC有什麼好處?沒有好處,他們根本不會讓我們過"Deepak在聽到我們pitch的點子後,馬上表達:"很困難啦!ETC根本就不在意遊戲這塊領域,五成的faculty從不玩game,九成的faculty不care,你們這種陣容,等於拿掉一個(或是兩個,因為人數實在太多)幫他們接project賺錢的組別,我之前也pitch過一個MMORPG的project,他們壓根沒興趣"所以,又到了政治時間了,明明知道根本不是那回事,還是要講成:遊戲是為了蒐集"人類網路行為研究資料","微交易模式分析"的一個"手段",我跟Mark在討論到這裡時,忍不住罵了一句:"It's fuckin bullshit, fuckin artificial!"Mark:"well, it's politician's world, you got to get used to it!"
Project Ethereal希望二輪順利度過.......
pitch當天,砲火之兇狠超乎預期,雖然早就知道不會很好過,但Jesse跟Drew問題辛辣的程度一副就是要把你釘死在台上:"microtransaction的第一人稱遊戲你沒玩過?" "你沒玩過這game,你跟我pitch這idea?" "點在哪裡?你確定你們這東西真的有任何創新之處嗎?"不是MK在旁邊緩頰擋子彈(MK是我們這輪pitch的champion),死都不知道怎麼死.......走出conference room時感覺背上都是冷汗,每個人都是灰頭土臉,正當我們想說就這樣結束吧,卻又收到我們過了第一輪的消息(有點像金旋那年PO挺進決賽的狀況),絕處逢生之下,當下也不知要怎麼去進一步讓這項pitch更具有說服力,下一步,就是在GDC與矽谷校區的組員們會師啦(講這話實早就已經會完了,這篇文章真的有夠晚生出來),有什麼要講,到那裡在講,現在也沒什麼時間去煩惱那東西了。

當Federico把shader input一個人幹掉,GUI/phong shader bug/texture copy做完之後,Disney的要求算是告了一段落,what's next?讓給分的教授們高興。怎麼讓他們高興?做他們喜歡的東西,讓ETC臉上有光的東西:讓panda社群稱讚ETC的feature。所以我們開始到panda論壇徵詢用戶們的意見:你們希望有什麼新東西?做這件事真的實在有夠恐怖,論壇上臥虎藏龍,隨便一個都可能一隻手指把我電翻,現在跑到這種地方說:我能為你效勞嗎?一直很怕會被直接回嗆:"你們ETC又能幫什麼忙?"中間寄信聯絡panda社群第二把交椅rdb時更是得知一項超恐怖的真相,這個接近包辦五成以上panda1.7.0新feature的妖怪,居然是個剛滿十八的大學新鮮人。聽了真的在想我的大學到底時間都花到哪裡去了= =

customizing auto shader generator,這應該是我下半學期要接的任務了。是的,我又被調組了,在春假前一周我被告知先去弄期中presentation要用的demo,Federico打算做個一千盞燈的demo來展示advanced shader input的power,之前的panda3D不支援array的input,用手去餵包你餵到死(後來發現其實有deferred shading這招,也是可以做出類似的效果,只是也是吃效能吃很兇的招式就是),anyway,我跟Panda之後就被分來弄這個千燈demo,如果用panda3d內建的打燈(openGL的產物,餵的參數名字都取的一模一樣= =)極限就是八盞,用shader"理論上"可以達到無限盞(其實用這種硬加的蠻幹方法大概三十盞shader就開始哭了= =),Ruth再看了初步的implement結果就說:如果需要的話,她的tech demo裡面的場景可以借我們來用。好消息!那個tech demo幾乎就是為了挑戰panda的極限而生,充滿了各式各樣的glow map, spec map, normal map跟high polygon模型,如果使用shader的話,可以產生跟原始場景天壤之別的效果,有這麼的東西撐場,真的是再好不過了!

接到Panda把八盞燈點好的初步場景,我開始有種既興奮又有點害怕的感覺:"這麼棒的材料,我能夠把它的美發揮出來嗎?"美術組已經出盡全力了,程式組能拿出相對應的program把場景的"威力"完全釋放嗎?剛彈吉他的小孩子馬上給他一把PRS,他禁受得起嗎!!!!!!(最後一句大概大家比較能理解= =)。其實這問題之前也有跟梁立衡聊過,遊戲的畫面應該是誰負責?現在這個狀況,沒有把東西搞漂亮就真的是你自己的責任了......per-pixel lighting雖然是shader基本到不能在基本的入門程式,但是的確是可以把shader跟fixed function pipeline距離拉開的範例。看到使用自己的shader將場景照出一道微光(attenuation設很大,因為假設會有千盞光 )後,就開始在想:要怎麼讓這盞燈更像一盞燈呢?

還沒有經過"魔法"處理的per-pixel lighting
如果要讓人看到燈產生"炫目"的感覺,要用lens flare,光源暈開,要用glowing shader,光線軌跡,要用volume shader,同一個時間CG的第三個作業toon shader也是一連串布幕下的黑箱作業。直到這一刻,我才發現遊戲裡要打出一盞漂亮的燈有多不容易........在non real time rendering還沒辦法變成real time的現在,原來有這麼多種近似"作弊"的手法,怪不得TD組裡有專門負責這們學問的專人!這段時間,CG用的是GLSL,project用Cg,手頭有的中文參考書(歐陽老大好久以前的學生的著作)主力是HLSL,同時間三種shader langage攪在一起,有種三國大混戰的錯亂感.......
這時要跟人家說那些白點是光誰都不會信= =
CG期中考,啊~~我已經多久沒有聽到這個名詞了......多久沒有考試了........題目其實不會很難,觀念有通都還算好答,只是大概真的是太久沒考手感有點鏽掉,一題parametric function還來不及寫完就交卷。晚上跑到Panda跟小溪家裡去吃鍋,詭異的點是:湯底居然是外國人(Mark)買的,喝了一點小酒,開始漫無邊際的殺人遊戲跟扯淡,這種片刻的悠閒自在,還是很舒服。
再會了!我在亞德利亞海散漫的歲月

週六週日,開始鑽研FBO的用法,有的時候真的覺得openGL有好多難以理解的voodoo knowledge,卡了半天的東西,最後都是用一些很詭異的方式修好(depth_component改成depth_componet32這個最經典!),第一次率先破台完成基本分要求,感覺就是一個爽!( John: OMG! Wayne has finished the project! Everybody just go ask Wayne how to do that!(轉頭)Sit here! You'll be here for a while XDD)歐陽老大!學生謝謝你當年的教誨,學生不希望在國外丟台灣的臉!台灣人不會比外國人差!看著吧!
這句話是拜倫說的? 不!我說的!
講了半天一大堆宛似現在式的東西,我們還在過去式,流水帳又臭又長打不完,GDC一定要分出來獨立講(整個是震撼教育!),好吧!我們現在補到春假開始四天的進度,下一天下一站,舊金山電玩高峰會Game Development Conference!