Saturday, April 12, 2008

Processing

首先,感謝強哥推薦使用Processing來做為迷宮遊戲的實作語言,真的節省了很多很多很多時間,也把原本自己認為沒有足夠能力寫出來的東西,硬是在短短一個晚上就孵出雛型,還有時間跑去和同學吃宵夜。這玩意兒,真的是太強大了。

根據官方網站的說法,Processing是一個open source的程式語言,適用在圖像、動畫、或是人機互動的程式設計上。一般程式語言,如Java或c/c++之類的,要寫和user互動的介面,說有多痛苦就有多痛苦。雖然也斷斷續續寫了將近六年的程式,但平常很少寫這類的application,寫網頁系統佔大多數。這次竟然還要寫可以讓使用者玩的迷宮,救人喔...

但是,Processing真的把不可能變成可能...。接獲可用Processing的線報後,從下午開始讀官網上的Basics範例,到晚上九點已經把迷宮的雛型整個做出來了,真的是史上超快速成班,現在回想起來都覺得不可思議,三個多小時就寫出一支小遊戲....姑且稱它Tony Maze好了 XD。(不包含畫面美化的後製時間)

Tony Maze試玩版



這兩天寫下來,強烈感受到Processing的強大與便利,說有多好玩,就有多好玩 XD。它的IDE根本像玩具一樣,超可愛,用了心情保證大好。還是下載之後免安裝的超環保綠色軟體。呼之則來,揮之則去,讓你隨心所欲~~~~
(廣告詞都幫Processing想好了 XD)



雖然Processing還在Beta階段,但是官網上的教學(Learning)簡單明瞭,一針見血,在論文分秒必爭的最後時刻,還讓我想一看再看,越看心情越好,越看越有趣,好想一次全部看完。哪有學一個新的程式語言這麼開心的呀!!!

尤其Processing語言是建立在Java的基礎上,對我來說,真是天大的好消息,終於不用在c++的地獄裡打滾了。要說Processing的魅力在哪,或許是Processing只要幾行簡單程式,再加上一些技巧和創意,就能創造出意想不到的效果。這樣的程式,這樣的軟體,真的是藝術呀~~

在會寫程式的條件下,第一次接觸Processing,可以從Basics看起,這部份會從範例中帶出主要的使用語法、method(function)、和一些屬性。若全部讀完,要寫個小遊戲,已經綽綽有餘了。當然,寫程式,舉一反三是很重要的。Processing language的API,可在Reference的連結查詢。

看完Basics,若要知道一些更深入的主題,就可以繼續往下看Topics,或挑自己需要的看就好。我就只挑了File IO看,因為我需要記錄使用者的路徑資料,再把結果寫入檔案;後來一不做二不休,連迷宮的地圖,也改成用讀文字檔的方式load進程式。這裡的開檔讀檔,比平常的簡單很多,但是因為簡單,也就沒有很大的彈性,畢竟Processing的長處是開發視覺效果的程式語言。

不要誤會Processing是拿來寫遊戲的,這只是它的一個小小應用之一。它還能創造很多視覺效果、物件的動態變化,如畫曲線產生煙霧sine波型的波動、或是圖片的遮照...都辦的到。平常用慣套裝繪圖、影像處理軟體,也不是學多媒體相關的,壓根沒想過這些特效、影像的呈現,竟然可以用各式各樣的數學算式創造出來。每看一個影像或動畫的範例,就對程式語言的技巧(藝術)和數學的美妙結合打從心底的佩服。

第一個shock到我的範例:Functions
(驚) 這…竟然是用幾行數學式子畫出來的...





幾行數學式子巧妙的計算,就能創造出這樣的圖形,真的是…太美妙了!!

--
相關介紹文章:網路藝術新興電腦語言—Processing

Written by 譚晴琄 Tuesday, 02 September 2003

Processing 是一種具有革命前瞻性的新興電腦語言,她的概念是在電子藝術的環境下介紹程式語言,並將電子藝術的概念介紹給程式設計師。她是 Java 語言的延伸,並支援許多現有的 Java 語言架構,不過在語法 (syntax) 上簡易許多,並具有許多貼心及人性化的設計。Processing 可以在 Windows、MAC OS X、MAC OS 9 、Linux 等作業系統上使用。本軟體目前是處於初版測試的階段,試用版聽說最近真的快要出了!以 Processing 完成的作品可在個人本機端作用,或以Java Applets 的模式外輸至網路上發佈。

● 簡介

雖然圖形使用介面早在二十年前成為主流,但是基礎程式語言的教學到今天仍是以文字命令列的介面為主,學習程式語言為什麼要那麼枯燥呢?人腦天生擅長的是空間的辨識,圖形介面利用的正是這種演化上的優勢,加上它能提供各種即時且鮮明的圖像式反饋 (feedback),可以大幅縮短學習曲線,並幫助理解抽象邏輯法則。舉例來說,電腦螢幕上的一個像素 (pixel) 就是一個變數值 (the value of a variable) 的視覺化表現。Processing 將 Java 的語法簡化並將其運算結果“感官化”,讓使用者能很快享有聲光兼備的互動式多媒體作品。

Processing 的程式碼是開放的,和近來廣受愛戴 Linux 作業系統、Mozilla 瀏覽器、或 Perl 程式語言等一樣,使用者可依照自己的需要自由裁剪出最合適的使用模式。Processing 的應用千變萬化,但你會看到它們都遵守開放原始碼的規定,這樣的設計大幅增加了整個社群的互動性與學習效率。

● 源起

Processing 的創始者: Casey Reas 與 Ben Fry 是美國麻省理工學院媒體實驗室 (M.I.T. Media Laboratory) 旗下美學與運算小組 (Aesthetics & Computation Group) 的成員。美學與運算小組由著名的電腦藝術家 John Maeda 領導,於一九九六年成立至今,在短時間內聲名大噪,以其高度實驗性及概念性的作品,既廣且深地在藝術及設計的領域裡,探索電腦的運算特質及其帶來源源不絕的創造性。極少數人能完美結合並平衡藝術家、設計師和電腦工程師的才華於一身,更重要的是Casey和Ben擁有開放源碼的胸襟。

Casey Reas,目前為加州大學洛杉磯分校 Media/Arts 系所的助理教授,及義大利艾維里互動設計學院(Interaction Design Institute Ivrea)的附屬教授。Casey的作品主要在處理並抽象化生物體系的動態表現,並以多媒體、感應式裝置藝術、雕塑和數位印刷等媒材呈現。Casey 時常演講並展覽於於歐洲、亞洲及美國各地,他為本屆奧地利的林茲藝術節 (Ars Electronica in Linz︰多媒體藝術界規模最大的年度盛事) 的評審。

Ben Fry 現仍在 MIT 的媒體實驗室攻讀博士,他的研究重心在於如何將有機資訊視覺化 (Organic Information Visualization),並創造出能隨著不斷更新的資料,即時進行形變或質變的電子動態系統。他的博士論文在處理如何視覺化解碼成功後人類基因學所揭示的龐大資訊量,Ben 用的名詞為 Genomic Cartography (基因地圖學)。

● 使用者

網路的興起激起了許多設計師和藝術家學習程式語言的動機,因為學會了電腦的語言,你才能跟它溝通,這樣不只靜態的圖像和文字,連動態的互動模式都可以成為設計師和藝術家全盤掌控下的精確表現。傑出的設計師和藝術家往往具有病態的控制欲,這是無庸置疑的,所以才會有些人乾脆連軟體都自己寫算了,而且寫程式也是藝術!如何寫的簡潔,還要清楚明白,中間的學問很大。

誰會去學或是去用 Processing 呢?大致上是對科學與藝術之間的跨領域表現有興趣的人。一般的數位藝術家或設計師會以現有的軟體(例如 PhotoShop, Illustrator, Flash 或 Director)來從事創作,往往在不知不覺中,被大企業所主導的制式化生產工具,限制了創意及表現形式的可能性。但是如果你 (妳) 剛好擁有撰寫電腦語言的能力,你 (妳) 大可以為了實現腦海裡的傑作,專門來打造一個能跑它的程式,如此一來,不但作品的內容是藝術,其工具,形式及創作過程本身亦是一樁藝術。

● 現況

雖然還只是在測試階段,Processing 目前已在網路上 (www.proce55ing.net) 集結了一群志同道合的專業人士,為軟體的教學與更新奠定了基礎。網站上的 Learning 和 Reference,就是完整的學習資料庫﹔Exhibition 中則提供了許多當今最傑出的電子藝術家的作品與連結﹔你(妳)可以在網站中的 Download 部分免費取得該軟體,並在討論版 Discourse 註冊,這是一個完全民主式的論壇,可以問問題,發表意見,提供作品的交流,並一起準備未來的附加及外掛程式。哪天若是心血來潮,在泉湧的靈感下創造了什麼大作,別害羞,投稿給 reas@groupc.net 試試,你 (妳) 的作品將會被放在網站上供人欣賞與學習。

在美國,除了 Casey 和 Ben 各自所屬的學術機構外,Processing 亦在耶魯、哥倫比亞、紐約大學、舊金山藝術學院等地被教授或使用。目前看來,Processing 先要在紐約、波士頓、舊金山、洛杉磯、德國伯林、芬蘭赫爾辛基、義大利艾維里、哥倫比亞波哥大等城市生根,再由這些城市擴散開來。在亞洲除了日本, Processing 已進入位於馬尼拉及漢城的學術機構。

相關網址︰
1. Processing
2. Casey Reas
3. Ben Fry
4. Marius Watz
5. Mikkel Crone Koser
6. Processing, from Wikipedia

2 comments:

  1. 嗯讚喔 Processing 果然好物,尤其語言設計本身的mindset 真的十分有趣 ^^

    ReplyDelete
  2. hello!~我正在自學processing,但是遇到一個問題就是我不知道要如何把寫好的東西傳到網頁上頭去,因為我以前完全沒有寫程式的背景,現在只是自己想要試試看,所以很痛苦,想請教您是如何做到把它貼上去的,謝謝

    ReplyDelete