第一次接觸到corona這套遊戲引擎大概是在去年底(2010)的時侯,那時還在美國出差兼休息,有一天老闆就跟我說有個14歲的小朋友做出了一個遊戲,而且在某一周還熱賣到贏了iPhone的頭號遊戲軟體Angry Bird。老闆叫我有空試用看看,看可以寫出個什麼東西來。也因此有了第一次的接觸與了解。
創造corona這套引擎的是一家叫做Ansca Mobile的公司,他們公司位在加州的Palo Alto,就在Cupertino不遠處。創立者是Carlos Icaza 和 Walter Luh。這兩位原本是在Adobe公司中負責管理Flash Lite團隊,但是在2007年他們離開了Adobe,然後找了早期投資Google和Microsoft的創投公司要了一百萬美金的資金就建立了這家公司。當初他們的理念就是要建立一個適用於智慧型手機運作且跨平台的遊戲引擎。因此,可以說corona初時設計完全是為了手機環境而建的。然後他們在2009年12月釋放了iPhone專用的開發套件SDK;在隔年4月份也開發了Android開發套件。目前Corona最近的版本為2011.628版。
從最新版的API來看,其實它己經不只是單單的遊戲開發平台了,它現在也可以拿來開發iPhone/Android的應用程式。而從過去的新聞來看,他們目前似乎也正在努力的開發給WP7用的環境,呵呵,當然微軟也是有用點力的吧。所以在手機上開發遊戲,電子書或應用程式,對程式開發者是一個不錯的選擇。除了跟作業系統相關的功能之外(也真的不多),它真的可以一套程式碼每個平台都可以運作。當然,螢幕解晰度的問題得自己先考慮好。
它的開發方法與環境真的是相當簡單,相對於使用XCode/iOS, Eclipse/Android SDK或VS/Windows Phone 7 SDK來說,它簡直沒什麼進階的開發工具:就一個文字編輯器跟一個執行時期模擬器。怎麼除錯呢?用最原始的print to console方法,就是自己在程式碼上埋print把訊息放到console中來看。
當然,現在的corona是小有名氣的,所以有些公司為了它強化一些編輯器給corona的開發者使用。
Corona使用的程式語言是LUA,LUA是個很有趣的程式語言;當初被設計時,是為了可以快速的嵌入一個系統中做為擴展使用。而且被設計的目標是要輕量化,容易使用,也容易擴充。它本身是使用c語言所建構出來。因此它可以很容易的被加到自己的系統中。而這套語言現今被很多大型遊戲拿來做為功能擴充使用,像是大話西遊II、仙境傳說、魔獸世界、戰錘40k、博德之門、軒轅劍外傳漢之雲。現在Corona也拿它來當開發用的程式語言。
LUA有個很大的特色是,容易看的懂也可以做簡易修改。這是因為它拿掉了所有複雜的機制,如繼承。但這並不表示它的功能會大大的受限,相反的,它有點像是Javascript一樣,高度彈性與高度相容性的設計,所以很容易的可以用很少的程式碼做到,許多目前物件導向語言,如Java或C#一些功能。當然,這並不表示LUA比較先進。它只是期望用簡單的彈性的機制來完成要求的功能。
除了程式語言特別之外,Corona也加了功能強大的物理引擎;它整合了Box2D這套物理引擎。它也是Angry Bird或AndEngine等所使用的引擎。
另外,它也提供了資料庫的存取(SQLite),網路功能(socket, JSON etc)。現在又加上了社群網路的功能,如Facebook, OpenFeint等。所以可以它的功能己經愈來愈完整了。
下一節將開始介紹Corona的設計。
留言列表