好消息連連!

啊~最近真是好消息連連,身邊的同學一個個接到他們心目中第一志願的admission。有人要去CMU,也有人要去Columbia,大家都順利的找到了下一階段的目標。最值得恭喜的是剛才接到的消息我女朋友也順利拿到MIT Media Lab的admission了!這個admission可是經過一番強運與波折才得到的,聽到她接到信的同時,我覺得我比她還要興奮 XD 這故事實在很長,我也無法一下交待清楚,但她絕對是個申請上Media Lab的奇耙中的奇耙。看著她的成功,讓我對未來又充滿了熱血,我真的更相信Impossible is Nothing! 有夢想,去做就對了!雖然接下來我們得面臨相隔半個地球的考驗,但我非常興奮,非常期待能趕快退伍也飛到美國去啊!閱讀全文

最近真忙

最近真忙。研究所最後一學期的生活已經接近尾聲了,之前投到AAAI 07的paper被conditionally accepted,所以忙著修正之前匆忙送出所留下的一堆錯。然後另一個投到AAAI 07 Intelligent System Demonstrations的paper也被accepted,所以忙完前一篇還有下一篇...orz 目前預計是五月底口試,然後就算是畢業啦。另外,上個禮拜我去了在101的Google Taiwan interview engineer intern(實習工程師,或者說是工讀生XD)。昨天通知我在台灣這邊通過了,只等著把資料送回美國給VP看過。所以畢業後就打算去Google做到7月底,然後就得當兵了...。Google的面試還蠻有趣的,可惜我簽了NDA,所以不能說細節就是。閱讀全文

遊戲的力量之二

繼續上回的話題。上次提到遊戲的力量強大,足以讓人不吃不喝廢寢忘食,而遊戲設計師們的目標就是想盡辦法讓人能一直沉浸在遊戲的世界中。那麼,這件事是怎麼辦到的?回答這個問題前,得先從遊戲的本質說起。現代每個電腦/電視遊戲都有華麗的聲光效果作為包裝,沒有基本的3D畫面實在很難讓被慣壞的玩家們瞧它一眼。但決定一個遊戲好不好玩,聲光特效並不是決定性的主要因素。先不論這個主要因素是什麼,我們先把它叫做遊戲性(gameplay)。有個故事大家都知道,最近當紅的Nintendo Wii以創新的操作方法造成一股新的流行,把同時期以超強硬體性能為訴求的Sony PS3打得潰不成軍。Sony的PS2雖然非常成功,但仔細觀察可以發現近幾年的遊戲產業沒有太大的突破。許多遊戲都是把熱門的遊戲性重新包裝,換上不同外皮,不同故事,就變出一套(號稱)新的遊戲來企圖從這個龐大的市場中分一杯羹。把時間倒回去看,在PS2上很受歡迎的真三國無雙,自從2000年推出大獲好評後,就年年推出新的一代。(後來甚至出現了戰國無雙,PS3上還有剛彈無雙...。) 雖然無雙遊戲滿天飛,但他們最吸引人的本質還不都是享受萬夫莫敵的快感?反觀Nintendo,一直以來都是以追求真正好玩的遊戲為訴求。在他們想到能把三軸加速度感應器用在遊戲上,讓玩家真正動起來後,突然就開啟了全新的遊戲性大門,也吸引到了許多原本完全不玩遊戲的非玩家。大家都愛新奇有趣的玩意,遊戲性的創新也因此能夠吸引許多目光。除了Wii之外,在1998年出現的音樂節奏遊戲 Dance Dance Revolution(DDR)(台灣比較多人叫它跳舞機)也是一個開創全新遊戲性的例子。DDR成功的把跳舞變成用腳跟隨節奏踩四個箭頭的遊戲,在當時也刮起一陣旋風。還記得我高中一下課就往湯姆熊報到,DDR前面總是圍著滿滿的人群,即使機台上只能有兩個人,台下也還是一堆人跟著音樂一起練習。後來音樂節奏遊戲如雨後春筍般冒出,有吉他、鼓、森巴、ParaPara,還有太鼓達人等等。雖然遊戲方法不太相同,但其實基本的遊戲性,也就是跟著節奏做正確的動作,是相同的。利用創新的遊戲性吸引到大量新玩家後,其實更難的是要怎麼留住玩家?以已經快10歲的DDR為例,到今年大型機台的DDR已經出到了第九代(DDR SuperNova)。這九代說實在都沒甚麼新東西,同樣的玩法,只是加上更多的歌曲,加上更多更難的模式,就這樣把壽命延長至今。再觀察一下目前在遊樂場裡玩DDR的人,幾乎都是從數年前玩到現在的元祖玩家,這些人玩的都是最難的那些歌曲。箭頭又快又密集的不斷流動,已經沒人會說這是在跳舞了,也沒什麼初學者敢上去嘗試了,只剩下那些死忠的核心玩家依然不斷的練習。一個曾經造成轟動的遊戲為什麼會變這樣?我們先從遊戲性到底是什麼來說起。關於遊戲性的定義,實在是眾說紛紜。Wikipedia上這樣說:Game play (or gameplay) includes all player experiences during the interaction with game systems, ...閱讀全文

簡單

簡單的法則(The Laws of Simplicity)前幾天買了John Maeda的新書:簡單的法則(The Laws of Simplicity)。John Maeda是MIT Media Lab的教授,我久仰他的大名,他的另一本書Creative Code: Aesthetics + Computation也讓我很感興趣,可惜在台灣似乎不太容易買到。在資訊系待了快六年了,寫了很多程式,看過很多研究,也幫學弟妹上過許多課,對於"簡單"這件事也有點感悟。以寫程式為例,還記得小時候初學程式時,因為對程式語言本身不熟悉,很多指令和語法都不是很確定適當的寫法。東學一點,西學一點,所以寫出來的程式碼總是混雜不同風格和邏輯,也就是一團混亂。剛學C語言時,我甚至對於什麼時候要加分號這件事都感到很困惑。後來程式寫多了,對於電腦底層(OS, compiler, programming language)的了解也更為深刻。了解了OS如何多工執行程式及分配記憶體,compiler怎麼分析處理程式碼之後,突然就發現這些看似複雜的東西其實背後都是用簡單的規則串連在一起的。這時有了精練的能力,精確知道什麼是必要的,什麼其實並不重要。運用這種能力,看穿複雜背後的本質,就能用簡單的程式描述複雜的事物。我常看別人寫的程式,初學者和大師的程式碼很容易分辨。初學者的特徵是重複、雜亂、思緒跳躍、用表面的規則來描述複雜的現象,大師的特徵是簡單、一致、有一定的秩序、直接用簡單的規則描述背後的本質。簡單的東西不但容易了解,而且也很美麗。可是這不是件容易做到的事。沒有深厚的基礎知識,很難看透複雜背後的簡單規則。近幾年流行的Design Patterns就是依靠這種深厚的功力所濃縮精練出來的簡單規則,而John Maeda提出的The Laws of Simplicity也是同樣的道理。只是,對於初學者來說,直接學習這些經由前人精練出來的簡單法則,並不能帶給他們相當於大師腦袋中的數十年功力。我還記得我在大一時看過Design Patterns,那時並沒有得到什麼感動,只是記了一些的規則(也就是pattern),但並不了解要怎麼運用。後來陸續寫了幾個較大的系統,慢慢發現要做出一定規模以上的複雜系統,必須先清楚的了解它,再適當分解萃取成許多較簡單的小塊(module/class),才能做明確的分工,也才能輕易的讓別人了解。到這時我才體會到Design Patterns是什麼,也才能對它裡面所蘊藏的智慧結晶感到驚嘆與感動,在台大資訊系有一門課叫做資訊系統原理,這門課教的是在分析及設計物件導向系統所用的UML。奇怪的是,這門課被排在大一下學期。小大一們才剛學完C語言,寫過的最大程式大概只有100行,在這個時候學設計大型系統才需要的UML會如何?根據我觀察身旁的同學,幾乎沒人記得大一的這門課在幹什麼。大多數人在大三才會有需求實做較大的程式,因為我們也沒正式教過物件導向的設計和分析,所以很多人根本不會去用UML,更別提記得它在幹麼。於是我在一門需要實做上千行程式的課裡發現竟然有不少人把所有程式碼都放在一個.cpp裡面....。就此看來,想要掌握簡單的法則似乎沒有捷徑。一定得親身經驗過什麼是複雜,才能從中體會簡單的美。閱讀全文