目前日期文章:201208 (2)

瀏覽方式: 標題列表 簡短摘要

寫到第二集才發現我忘記解釋荒野指的是甚麼.

 

 
Map   

Visual Concepts 坐落在 San Francisco 北邊一個半小時車程一個叫 Hamilton Landing 的地方.
雖然說 SFO 機場, San Mateo, Redwood City 也差不多是反方向開一樣遠的距離.
但是因為 San Francisco 跟北邊的溝通就只有金門大橋還有渡輪, 地鐵沒有挖到這邊.
交通很不方便, 所以會跑到這邊的人也就跟者變少很多.
剛過橋的 Marine City 算是個小城而已, 再北邊到 San Rafael 是個不大的富人城.
更往北到 Hamilton Landing 或是我住的 Novato 就是鄉村景色了.

 


IMG_7509  

Hamilton Landing 現在是租借給公司當辦公室的地方, 但其實這些建築以前是機堡.
Hamilton Landing 以前叫做 Hamilton Air Force Base , 在二戰的時候是美國重要的訓練基地.
如今跑道已經剷除. 引水, 讓它回歸濕地. 除了塔台跟機堡(辦公室)之外, 沒有甚麼跟空軍有聯繫的東西了.
Visual Concepts 辦公室設在這應該主要是節約經費吧, San Francisco 的地貴到嚇死人.
很多公司都往南跑. 像是 EA 跟 Sony 在 Redwood City .
但往南邊有地鐵跟 Cal train , 北邊啥都沒有... 所以公司幾乎沒有人住到要過橋的地方.
金門大橋幾乎是隨時都在塞吧.

 

來幾張鄉村景色:

IMG_7671   

生平第一次看到野生鵜鶘

IMG_7678  

撿到蛇蛻

384631_507185952628687_1933791950_n

回家的路上遇到野生的鹿 

 

恩, 因為現在不會賺錢又缺駕照, 所以車還是沒有著落.
哥現在是騎腳踏車上下班的. 然後相機隨身帶著, 看到有動物就拍.
平常遇到野生動物的時候都會很接近, 不過你一停下來要掏相機的時候, 牠們就會開始逃走了.
先前加班的時候, 常常會十點十一點還在路上, 有的時候會遇到一些夜行性的傢伙. 
包括負鼠跟像狗一樣大隻的浣熊, 不過他們畏光, 這就更難拍到了.

爆肝跟大自然的詭異結合, 我想也不多人能有這種體驗的吧.

 

雖然趕 13 的檔期會要晚下班跟 bug 奮鬥, 但是整體工時還是不會太誇張.
該睡覺還是有睡到, 只是寫東西. 翻網頁. 做翻譯的時間被壓縮而已.
主要的原因還是美國 The Fair Labor Standards Act 的保障,
公司不能隨便把人歸到責任制(Exempt Employee)
所以我超時是有領鐘點的, 超時前四小時是一倍半的工資, 更超過是兩倍工資.
雖然先前有到過 70 hours week , 但是相對的領到了一張跟本薪一樣大的加班費支票.
現在 Repository lock 之後, 小老闆晚上會跳出來趕人回家, 因為加班費很貴呀XD.


能歸到責任制的只有管理職. 經理之類對整個專案成敗負責的人.
然後還有很多但書, 防止有人鑽法律漏洞把所有人都掛經理.
不過就算叫做責任制, fu 還是跟台灣很不一樣.
我們家經理, 有的時候會中午就閃人, 因為現在沒事做. 責任已了嘛.
只要他沒有出大包, 他就算一周沒有做滿 40 小時公司還是要付他全薪 ;)

 

這也就是為什麼我開始有時間寫網誌的交代啦.
(待續) 

Franknine 發表在 痞客邦 留言(0) 人氣()

最近工作告一個段落, 想到該寫個 blog 紀錄一下發生甚麼事情.
登入之後發現自己已經半年多沒有寫 blog 了...

Novato Hanger  

很普通的藉口就是忙.
在半年前申請完延畢之後, 多出來的一學期也都是在找工作.
跟以前提到的一樣, 在美國沒有關係工作會很難找.
又剛好我們學校有關係兩家的都好像不是很喜歡我...
自己找的只有 Amazon 跑到電話面試第三輪, 然後在 onsite 前被刷掉.

 

就在最後一學期要畢業的時候, 有一家在 Creative Head 看到的公司發了考卷過來.
而且是很詭異的考卷, 題目不難, 但是規定只能用 C 寫.
那時候想說大概是他們忘記加上加上 C++ , 結果不是, 他們真的要 C 而且還是 C89 .
因為狀況很詭異, 加上他們家是做運動遊戲的, 然後我是運動完全不熟的阿宅.
所以一開始還有點抗拒, 結果考卷一做完馬上 onsite 的來回機票就來了. 

 2K  

onsite 也是個很奇妙雜亂的過程, 不過總之我現在就在這裡落戶了.
大家都叫 2K Sports , 不過正式的名稱是 Visual Concepts Studio
2K( 正確來說應該叫 Take-Two Interactive ) 其實是 Visual Concepts 的第三任老闆.
2K 之前是 Sega , 再之前是 EA .

 

菜鳥工程師被發派的到的組好像都是我這個 Presentation Group .
不過這個組到底是做啥的好像全公司都沒有人知道,
我們工作大宗是做過場動畫跟維護一套 Scripting language .
但是我們已經有 Front End 跟 AI 組了, 為什麼還要再生一個 Presentation ?
這其中的歷史, 現在已經沒有人知曉了.
本來一開始是在做那個 Scripting language 編輯器 ( in C# ),
但是後來遊戲本體的 bug 多到滿出來, 加上壓片的時間又近了.
只好趕鴨子上架, 跟著抓蟲.



老實說在這抓蟲 還. 蠻. 痛. 苦. 的...
一個原因是因為整個 code base 很大, 大到整個讀進 Visual Studio 一定會把 Visual Studio 炸掉.
不過這當然是次要的原因, 有稍微念過軟體工程的都知道如果 interface / module 有好好切.
是不需要跑整個 code base 的.
但這也就帶出主要的原因了, 就是這 code based 超級老又超級醜 ...0rz
因為一年要出一款遊戲, 很多時候大家就是便宜行事, 繞過該有的架構.
如果做完遊戲之後有好好修回去的話那就算了, 但是實際上是大家都這樣繞,
然後這種東西累積了十五年以上. (最老的 code 的最後修改是 1996)

 

一個小故事是 NBA 2K 裡面有即時戰術, Pass and Go, Icon Pass,
還有戰術提示四種東西會在玩家頭上畫按鈕.
然後有人在 issue tracker 報說如果你同時下戰術命令跟 Icon Pass , 會有兩組按鈕被畫出來.
希望的結果應該是同時只能有一組被畫出來.
恩... 就是加個 flag , 一個畫的時候叫另一個不要出來亂, 花不了多久吧?
好啦, 請各位猜猜我花了多久?




答案是三天, 因為這四種東西是用四種完全不同的方式畫的.
一個是用現在的 Scripting language, 一個是用上一版的 Scripting language ,
一個是把 icon 做成 Maya file 直接餵進 model renderer , 最後一個是綁架最底層 draw call 跑 draw quad .
然後除了第一個, 其他的都沒有 documentation , 當初寫的人也都跑光了...
最後只能跑 XBox 360 profiler 然後把 draw call 一個一個挑出來看他們到底躲在哪...0rz
大家都說 NBA 2K 要出新作品只要改數據就好, 為什麼做到這麼難過.
實際上就真的是改數據很難...


在這裡就是會覺得很認知失調, 絕大多數的時候你會看到讓你血淚的 code .
但是當你翻到很核心的東西的時候, 又會發現怪物.
我們這邊用的語言叫做 Visual Concepts C , 他其實有一部分的 C++ .
有 Class , 能做 polymorphism, virtual function 跟 overloading . 沒有 template 支援.
同時有很多額外文法做家用主機上的 data alignment.
但是它不是閹割 C++ 的語言, 某人是從 C89 一路加上來的.
沒錯, 手工改造 C89 的 Lexical Analyzar , 手工雕 Compiler , 手工雕 Make, 然後拿來做遊戲.
OpoQQ   Seriously?

這大概就是為什麼我們家裡面 in-house tool 這麼多的原因了.
當年有神人首開風氣.
不過老實說絕大多數後來做的 tool 用起來還是蠻血淚的 :/ 

(未完待續) 

Franknine 發表在 痞客邦 留言(2) 人氣()