我當工程師,我在寫故事
進到 Taiwan AI Labs 實習今天恰好滿一個月,聘雇契約上寫的職務是「人工智慧系統工程師」。
我在康乃爾大學所上過的電腦科學課程當中,跟職稱最相關的無非是大三下選的 Foundations of Artificial Intelligence (人工智慧概論),但畢竟是概論課,許多觀念瞭解得很表面,點到為止,沒有實際應用學到的人工智慧概念以及演算法。順帶一提,我下學期(大四上)決定修 Machine Learning for Intelligent Systems (機器學習及智慧型系統),我因此告訴自己,暑期的實習說不定能讓我提前接觸到各種相關技術、瞭解產業裡這些技術的使用方法、以及未來可能的研究及發展方向。雖然我嚴重缺乏知識,我奢望我能像去年實習一樣(連 HTML、CSS 都不會寫卻跑去做前端工程師),邊工作邊學習。
我說自己缺乏知識,那我到底有多狀況外呢?實習第一天我不停的聽到 CNN 跟 training model(s) 這兩個詞彙,我還以為指的分別是透納廣播公司的有線電視新聞網以及模特兒經紀公司的專業培訓課程。
我的確是讀 Computer Science。我道歉。
但現實總能超乎想像。一個月後的今天,我發現我幾乎沒寫任何程式碼,而跟我工作最相關的兩門課竟是 Screenwriting (編劇與寫作)及 Topics in Computer Game Architecture (遊戲設計理論與架構)。
所以,我到底在幹嘛呢?
我也認真思考這個問題,思考了一段時間。
飛行閱讀:自訂路徑,翱翔天際
開始工作第一天,實習導師 H 遞給我他的電腦,叫我玩玩看團隊開發的飛行閱讀平台。
六月初,為了展示目前開發的技術,還有測試技術做成產品的可行性,Taiwan AI Labs 智慧城市團隊發布了「飛行閱讀台大平台」。使用者只需在台大校園內隨機選取起始點與終點,平台利用人工智慧及影像處理,剪接空拍影像片段,便能自動生成使用者定義航線上的飛行模擬影片。如過途中經過特別的景點,譬如台大圖書館、鹿鳴廣場、醉月湖等,影片上還會出現字幕導覽,給使用者做詳盡的介紹。
使用者問卷調查結果:空拍影像結合人工智慧,給人新鮮、有趣的第一印象。別於其他廣泛被使用的地圖工具,譬如 Google 地圖,飛行閱讀平台提供使用者全新的視野,將視角提高至 Michel De Certeau 所說的 「可見度臨界值」之上。
The ordinary practitioners of the city live ‘down below,’ below the thresholds at which visibility begins… they are walkers whose bodies follow the thicks and thins of an urban ‘text’ they write without being able to read it.”
— Michel De Certeau
當我們遠離城市地表,我們也遠離城市的紛亂嘈雜;從居民視角,提高至所謂「神的視角」(The Totalizing Eye)。就如亨利‧詹姆斯 (Henry James) 的城市書寫中,同時蘊含可讀性與不可讀性,從居民視角,看不到都市整體樣貌,卻看得到人與人之間的互動,其中,難以捉摸的心理意識與繁雜的情緒奔騰著;相反的,從神的視角,人類顯得微不足道,一切混亂化為秩序,無論高速公路上的交通阻塞、建築物的糜爛燈光、人擠人的小吃街道,全看起來像圖畫似的街景。印象與景觀兩種都市再現方式,既相異卻又彼此糾纏,這樣熟悉的城市,在變換視角之後竟能如此不同。
可是,飛行閱讀平台因為影片品質,加上許多使用上的小問題,目前無法像「看見台灣」紀錄片一樣,表現出這些既熟悉卻又難以察覺的感動,也很難喚起居民對城市,還有對這塊土地的認同。譬如:使用者介面不夠友善,回饋不夠明顯,有時選完開始結束兩個點卻無法開始導覽,使用者卻也不知道為什麼。又譬如,在路口轉角,兩支不同空拍影片間必須加入轉場效果,卻因拍攝時間天候不同,分別為晴天和陰天,導致影片銜接視覺上看起來極度不自然。這些小缺陷的加總,在強調視覺美感和協調感的環境攝影或景觀導覽紀錄片中,更會被放大檢視。
雖說如此,在使用者互動這塊領域,飛行閱讀平台有很大的潛力,因為飛行路線並不單一,每人每次的飛行途徑都能不一樣。台大版,近1,500名測試者中,平均的停留時間是2分19秒,估計是導覽一兩條路徑左右的時間。使用者就算缺乏使用動機,也可能對空拍加上人工智慧自動生成路線有一定的好奇與興趣。
下一個飛行閱讀平台,我們跟龍崎區地方政府合作,準備開發促進月世界地形景觀公園觀光的導覽平台。差別在於,這次的平台跟使用者應該有更多的互動,用故事劇情、視覺設計、和音樂包裝既有技術,做成有明確主題,明確目標的故事驅動型遊戲。於是,月世界計畫就此誕生。
稍微離題,上班第一天發生一件印象深刻的事。我的主管(在這邊取個綽號,叫做鼻子)中午吃飯時盯著我看了很久,一副想說話的樣子。H 看著鼻子句子卡在舌尖的樣子,跟我說:「做好準備,他要說很失禮的話了。」
過了一分鐘,鼻子終於忍不著,說:
「我覺得你長得像一隻暴龍。」
心裡納悶。哪裏有這樣講話的主管啊 :(
H 還在一旁一直笑,很過分。
台南月世界:發想起點
首先,我開始設計使用者體驗流程。
這裡強調一下,以下的圖像都是我在策劃階段做出來的展示圖,跟實際開發的平台可能完全不同。還有,身為短期聘約人員,我不能將細節紀錄得太詳細,以免有揭露營業秘密的嫌疑。
進到平台的著陸頁面,使用者可以選擇故事導覽,或者自由探索。
自由探索預計利用台大平台的既有技術為基礎做改良。如果使用者不想受到遊戲架構必然帶來的侷限,想快速瞥見月世界的空拍景象,那麼自由探索模式再適合不過。
選擇故事導覽,使用者便被帶到故事序幕。序幕會介紹使用者在故事中扮演的角色,角色所身處的世界,以及這個世界的規則。序的最後,角色將被賦予任務,以完成任務為目標,進到陌生的世界探險。
6月中旬,我完成了故事序的初稿。
終於,我進到公司第一次寫程式,而且是自己決定要寫的。只是用簡單的手稿語言,將故事序的各個支線做成選項,利用網頁呈現。目的是讓自己跟團隊確信,加強互動性可以讓作品很好玩。
接下來,回到了不碰程式的每天,開始構思遊戲系統。
真正的互動性重點在於有效利用空拍機影像,結合故事情境,讓使用者猶如在當地探險。在台南龍崎區踩點,做成無向圖,在圖的每個節點,使用者都能看到該地點的360度環繞景觀。若視野中出現特定地景、建築、或物品,便會觸發故事情節。
點與點之間的邊,也能利用無人機拍回來的空拍影像,加上台大飛行閱讀平台的技術,生成順暢的飛行模擬影片。與定點的360度影像相同,在某些路徑上,可能觸發故事情節。
除了構思系統,我也繼續做UI、視覺設計,還有跟智慧音樂團隊討論如何在體驗中融入背景音樂和場地音效。還有,我跟H去練習飛無人機。
6月底跟公司老闆杜奕瑾討論以上敘述的這些想法,但杜奕瑾只說:「目前這個故事沒有讓我感動。」
我部分同意,好吧,只好砍掉重練。
腦補的故事容易遠離人文和地方特色,為了將這些細節融入故事中,七月一號,我,一位在台北實習的台南人,竟然跑回台南出外景場勘。
回來整理資料,發現實習剛好快滿一個月。七月,我先是要利用實際場勘收集的資料,結合地理資訊和人文特色,將故事完整的初稿寫出來。月底目標是把故事跟空拍影像合併,做出遊戲的早期雛型 (gameplay and technical prototype)。
七月三號,是公司每月例行的衝刺檢視會議 (sprint review),每個團隊分別報告前一個月的功績。還不用在會議中上台報告的我,作為代替,開始下筆寫這篇文章。
寫這篇文章,其實主要目的有三。
首先,練習中文。不要笑,中文寫作蠻難的。
接著,將這一個月所做的事以文字紀錄,藉此自省,期望下一個月的學習與工作效率都能更高。同時,也讓台南的家人朋友們知道我在台北有好好做事,沒有浪費暑假過著花天酒地、金迷紙醉的生活。(當然,有的話也不會寫在這裡。(笑))
最後,是自我沈澱,釐清一下自己暑期的目標。這一個月,心中隱約覺得有哪裏不太對勁,寫這篇文章的過程中,我才摸著這疑慮的源頭。寫故事跟做遊戲,這兩件都是我非常喜歡做的事,但好像不是我此時此地主要想學習的東西。
大學邁入尾聲,我察覺到以我目前的程度,頂多是一名勉強及格的工程師,進來軟體公司,起初目的是加強這方面的能力和經驗。每天有八小時在公司,我不想把全部時間花在跟我原來目標差距甚遠的工作上。況且,無論是每月例行的衝刺檢視會議,或是 AI Labs 不定期邀請來的講者演講,我連基本技術都聽不懂,這種感覺很差。
所以,接下來一個月,我想我會多留一點時間給自己。至於實際上怎麼做,還得嘗試。說不定是當創意力枯竭,無法下筆的時候,上一些線上的機器學習課程,估計就算在上班時間,這也是能被允許的範圍。極端一點,我可能考慮跟通公司溝通,看有沒有機會一週休超過兩天,甚至提前結束實習,來完成自己暑期想完成的事。
我當工程師,我在寫故事。
再次離題。
短短一個月,我已經目睹三位學長的離開,他們要繼續求學,或者轉換跑道。每次有人離開時,在不捨的氛圍下,團隊總會拍一些類似邪惡宗教的照片。
這一個月,不論是離開的三位學長,還是團隊的其他人,謝謝你們的指教。