有人用Excel“重制”了初代《文明》
很多人在求职时都会在简历的技能一栏里写上:精通Word、Excel,但他们到底有多精通呢?
就拿再常用不过的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上,之前就有人用Excel制作了各种游戏,包括《2048》、《大富翁》……甚至《塞尔达传说》。
目前这个Excel版《文明》还处于1.0版本,因此功能还比较简单,但作者已经准备好了之后的更新的计划,比如加入AI,加入多个文明,科技树和奇观等。
谁能想到一款有计算能力的办公软件有一天会被强行征用为游戏引擎呢?也真是难为Excel了。