按照以前规律,这个时候他通常会选择去折腾UNIX系统相关的东西。
不过这两天不太一样。
那个新出现的NovaScript让他生出了不少兴趣。
借助自己先前悄眯眯走大学网络打通的跨海线路,虽然延迟极高,但自己仍然可以从赫尔辛基访问到美国的Nexus骨干网。
这着实让他开阔了不少眼界,也见到了很多在芬兰根本看不到的东西。
就比如真正的宝可梦中心、以《生化危机》为原型搭建的洋馆、模仿真正战斗机做出来的街机……
这些都是他在芬兰见不到的。
不过对林纳斯来说,眼下他根本没太多兴趣去折腾电子游戏。
《Zork放置》这种已经是他愿意接触的极限了。
比起玩游戏,自己更愿意把时间花费在开发项目上。
“嗯?Screeps……这是什么东西?”
他本打算像往常那样走Nexus主页去跳转到官方的NovaScript文档,好能查查资料。
但选项卡里却多出了一个自己从未见过的新鲜玩意儿。
“编程游戏?”
看着描述的小字,林纳斯愣了愣,脑海中立马闪过了一个名字。
《磁芯大战》
作为一名黑客,这个‘游戏’的确让他记忆深刻。
“唔,不然……试试看好了。”
林纳斯的侵略性是内敛的。
他就像是绝大多数的极客怪咖那样,内向、孤僻。
他是个低调的家伙,从不会主动跳出来指摘别人的是非,更不会高声炫耀自己的功绩。
事实上直到今天为止,学校内的其他人也仍然没搞清楚《Zork放置》的服务器到底是怎么连上的。
可内敛,并不代表不存在。
越是闷骚的人,隐藏在灵魂深处的疯狂便越是张扬。
【可用服务器】:
【加利福尼亚-127/200-加入】
【亚利桑那-49/200-加入】
……
才一进来,画面上便出现了一个滚动列表。
里面密密麻麻地排列着一大堆服务器。
除了这些可供直接选择的官方服务器之外,还有一个‘私人服务器’的选项。
看起来应该是用自己的PC运行服务端。
加州距离赫尔辛基实在是太远了些,纵使林纳斯有心,也实在是很难跑通。
无奈,只得选择了人数少得多的波士顿服。
游戏画面比想象中要更加简陋。
50x50大小的方形地图,由各种颜色的格子组成。
黑色的岩壁、闪烁着的黄色资源点、绿色的沼地以及灰色的标准地面。
很硬派的理工风格。
按理来说对于这种东西,林纳斯随意划拉两下,性质也就过去了。
但这一次,他却没有直接退出,而是将目光死死盯在画面下方的窗口上。
那是一个类似Unix或DOS系统命令行似的窗口,可供他输入指令。
第378章 只会被想象力束缚的游戏(月初双倍求月票喵)
除此之外,画面上基本就没有其他的交互元素了。
点击地图按钮切换到全局视角,林纳斯这才注意到独特之处。
他所在的这个50x50的区域,与其说是地图,倒不如说是一个小房间。
此刻它正被嵌在一块由无数个房间组成的大号地图中。
除了他所在的区域之外,其他房间大多都是空的,偶尔也能看到些标着不同标志的房间。
那些标志,显然就是代表着在活动着的玩家。
事实上这正是林立新在《Screeps》中加入的一点优化策略。
并不直接生成一张超大的地图,而是根据需求动态地一个房间一个房间地生成。
当地图难以容纳现有的玩家之后,再考虑扩张。
而被完全弃用,长时间没人的空房间,则是会被服务端自动回收。
这套技术是林立新亲自操刀的。
除了优化之外,也算是在为一些未来才会用得到的技术做铺垫。
这种动态的地图加载,在未来的大世界游戏中还会经常用到。
就比如大名鼎鼎的沙盒至高神,MineCraft我的世界。
在MC中,每格格子都包含自己的数据,想要把整个程序化生成的近乎无限大的世界加载完,那根本就不现实。
别说有没有必要,就算是真要加载,那也会轻松把内存和硬盘都给撑爆的。
于是像MC这样的游戏便研究出了一套区块加载技术。
说白了就是把一整个完整的世界拆成一个个单元,根据玩家所在的位置动态地加载卸载。
保证同一时刻只有必需的区块在内存中。
这也算是MC这款游戏对内存高度敏感的诱因之一了。
林纳斯扫了一眼离自己最近的几个房间,随便挑了一个点进去。
“唔?”
地图的一角摆着一个画着跟对方同样图案的方块。
上方还显示着它的名字。
【我的基地1】
除此之外,还有几个小一些的点点,同样画着与基地完全一致的图案。
将光标移上去,右侧的信息栏便弹出了它们的信息。
这些东西就是所谓的‘Creep’了,也就是游戏最基本的行动单位。
有意思的是,这些Creep并非像基地那样静止不动的,而是随着游戏时间的流动一顿一顿地做着自己的事情。
其中两个正对着那个闪烁着黄色光芒的资源点,显然是正在开采资源。
另外一个则是在地图上跑来跑去,不知道在做什么。
虽然林纳斯对《命令与征服》这款火遍了大江南北的RTS并不感兴趣,但他的确还是偶尔能看到相关的内容,也算是略有耳闻。
眼前这画面,看起来似乎就像是《命令与征服》里那样子似的。
有基地,有建筑,有采矿的单位,也有备战的士兵。
现在唯一的问题就是……要怎么玩?
带着疑惑,林纳斯重新返回到自己的房间。
自己的房间里倒是的确也有一个自己的基地,这是刚才进入游戏的时候强制让他创建的。
不过名字他都没改,直接使用的默认的【Spawn1】。
如果说这是网页版的《命令与征服》的话,那这个基地应该能用来建筑一些其他东西才对。
最起码也应该能像刚才那个玩家那样,生产一些自己的单位用来操作。
但这里啥都没有。
他选中自己的基地,右侧的信息栏里虽然东西很多,但根本见不到生产东西的选项。
【不知道如何开始?点这里查看教程→】
不管林纳斯的实力再怎么高超,也不可能在一无所知的情况下凭空上手。
无奈之下,只好点进了教程。
这下他总算弄明白了要如何生产单位。
“要……要写代码??”
看着屏幕上跳出那密密麻麻一大片的内容,饶是林纳斯,也不免有些头皮发麻。
不过出乎意料的,这代码倒是意外的好懂。
比起自己平时所面对的C或是汇编这些语言来说,教程中展示的这个名叫NovaScript的语言,干净的简直不像话。
甚至林纳斯有种感觉,哪怕是个不懂编程的普通人,也能根据代码大致猜测出它的作用。
就比如面前这个生产一个Creep单位的代码。
Game.spawns['Spawn1'].spawnCreep([WORK,CARRY,MOVE],'Harvester1');
刚才乍一看,他还寻思这代码未免也太长了点。
毕竟汇编码平常基本都是操作寄存器和数位,很少有这种长篇大论的。
但仔细一看,这才注意到它反倒是更容易了解。
开头的Game.spawns显然是在尝试访问游戏中的基地列表,而传入的这个'Spawn1',不就正是自己基地的名字吗?
看样子开头这一截的意义就是定位到了基地。
然后后面的spawnCreep,自然就是调用这个基地的生产单位功能了。
WORK、CARRY、MOVE,这三个目测估计就代表着单位的能力。
Work工作,显然是用来采集资源或是建造东西用的。
Carry搬运,暂时不清楚,但大概是用来转运物资?
Move移动那就更是字面意思了。
等于说这么长一串,其实就只是让基地生成一个矿车而已。
“嘶……怎么感觉……好像有点意思?”