很多人在求職時都會在簡歷的技能一欄裡寫上:精通Excel,但他們到底有多精通呢?有的人會用它做報表,有的用它做數據分析,但真正能將Excel的潛力發揮到極致的人並不多。最近,一位ID為s0lly的網友就用Excel完成了一個看似不可能的事,在Excel裡用一個個單元格,重製了初代的《文明帝國》。不是一個地圖或者界面,而是一個完全可玩的遊戲。
據作者s0lly透露,Excel版文明帝國是他花了一星期時間製作完成的,作為 「OneLoneCoder」快速程式設計比賽的作品,只用了400多行程式碼。
這個大小只有8M的Excel遊戲,已經有了一套相對完整的功能。玩家可以移動角色和鏡頭,建造新的城市,佔領的城市可以建造各種單位:開拓者、戰士、弓箭手、投石車等等。遊戲目前允許兩名玩家相互對抗,雖然還達不到完整版遊戲的水準,但考慮到開發週期,這個作品本身還是相當厲害的。
初代《文明帝國》是DOS時代的產物,以現代的眼光來看畫面相當粗糙,Excel版的畫面看起來甚至更加很簡陋。但這並不代表Excel遊戲不能有好的畫面。
如今說到遊戲畫面,你可能會想到流行的光線追蹤技術,這種技術能夠模擬光的傳播路徑,讓畫面更加真實,這種高端的技術往往需要用的最高階顯卡才能實現。但沉迷於Excel的s0lly,僅用這款辦公軟體就製作了一段光線追蹤Demo。
從這段Demo可以看到,Excel算繪的畫面雖然解析度很低,但卻在光影的表現上非常突出,從地面上可以看到小球的反光,而小球上可以看到彼此的反光。玩家可以自由控制鏡頭的移動,而光影的效果會隨著鏡頭的移動時時改變。
s0lly喜歡把各種各樣的東西搬到Excel裡。比如用Excel算出完整的3D建模,用Excel模擬三體運動或多至100個的多體運動問題,執行Pseudo 3d engine ,真是無所不能。
不過說到底Excel並不是一個遊戲引擎,用Excel跑這些程式的代價也是很大的,運算效率差得很多。我們看到的影片和動圖都是經過加速後播放的,實際在Excel裡玩文明帝國的體驗是讓人抓狂的,每輸入一個指令都需要經過大量的計算後反映到圖像上,反應在遊戲中就是「一步一卡」。一個簡單的指令對於Excel來說可能是巨大的運算量。從CPU的負載上能看出來,遊戲裡每走一步都是對CPU的巨大挑戰。
作者說在算繪光線追蹤時,畫面大概是2秒一幀的節奏。這也說明了為什麼遊戲公司不用Excel來開發遊戲(誤)。
目前這個Excel版《文明帝國》還處於1.0版本,因此功能還比較簡單,但作者已經準備好了之後的更新的計畫,比如加入AI,加入多個文明,科技樹和奇觀等。誰能想到一款有運算能力的辦公軟體,有一天會被強行徵用為遊戲引擎呢?也真是難為Excel了。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!