Screeps新手游戏指南

一款玩着玩着就变成JavaScript大神的游戏。

一款可以增加你赚钱能力的游戏。

在写下这段文字的时候,我已经删除了这个游戏里所有的数据,因为这个游戏消耗了我太多时间,本着纪念这段游戏经历的目地,我写了这篇文章。

什么是Screeps?

The world's first MMO strategy open world game for programmers.

http://screeps.com

官方这样定义这款游戏:第一款针对开发者的大型多人在线开放策略游戏。而对于这款游戏,很多报道里会提到:”最难“,”战术沙盒“等概念。

是的没错,screeps就是这样一款游戏,一款需要编写代码才能玩的在线策略游戏。玩家需要在游戏中编写javascript代码来控制所有的游戏行为。比如:

查找并攻击敌人

1
2
3
4
enemy = creep.pos.findClosestByRange(FIND_HOSTILE_CREEPS); // 找到距离最近的敌人
if (creep.attack(enemy) == ERR_NOT_IN_RANGE) { // 攻击敌人
creep.moveTo(enemy); // 如果距离不够则向敌人移动
}

找到能量矿并采集

1
2
3
4
sources = creep.room.find(FIND_SOURCES); // 找到房间里所有的能量矿
if (creep.harvest(sources[0]) == ERR_NOT_IN_RANGE) { // 采集能量
creep.moveTo(sources[0]); // 如果距离不够则向矿移动
}

你的代码会保存在游戏中,并且一直运行下去。游戏甚至给你提供了缓存,有代码提示的在线代码编辑器,控制台和完善的API文档。

在游戏里都能做什么?

  • 发展基地
  • 生产工人和士兵
  • 采集资源
  • 攻击其他玩家
  • 建造防御设施
  • 和盟友互相支援

目前有哪些游戏元素

  • 两种资源:energy和power
  • 建筑:spawn,power spawn, extension,storage,road,wall,rampart,tower,observer,link
  • 四矿地图和Source Keeper
  • control rank 和 power rank
  • 远程兵种,近战兵种,治疗兵种,混合兵种
  • controller 房间等级,越高能造的建筑越多,上限8
  • GCL 游戏等级,每一个等级可以多控制一个房间

更多内容可以查看官方文档 http://support.screeps.com/

Screeps收费嘛?

游戏中程序执行会消耗游戏中的CPU,每个月你可以免费获得600个CPU,如果优化的好,600个CPU可以很轻松的控制20个游戏单位,但是如果你想发展多基地或者进入排行榜,还是建议你购买CPU进行游戏,CPU的使用上限是每天300个,也就是说,这款游戏每天可能花掉你人民币0-6块钱。

新人必须知道的

  • 你的基地叫做Spawn,你的工人和士兵叫做Creep
  • 你的代码每执行一次是一个tick,一个tick是2秒
  • 绿色的地方是泥地,如果不修路走过去比乌龟还慢,不是泥地也需要修路
  • Creep有1500ticks的生命,可以使用spawn给Creep延长生命,但是并不建议这么做
  • 路每隔一段时间就会坏,需要经常修
  • energy矿每300ticks刷新3000个,计算好你的WORK数量,5-6个就够了
  • 一定要有防御机制,任何人都可能攻击你,并且可以在几分钟内摧毁你的所有建筑,杀死你的所有Creep,而且并不需要有理由

游戏策略

如何提高工人效率?

和现实中一样,明确的分工可以有效的提高工作效率,矿工专门采矿,运输工种专门运输,升级工人只负责升级,但由于CPU有限,你需要在效率和工人数量上进行权衡。

如何节省CPU?

你可以像调试其他项目一样调试你的程序效率,找到那些CPU消耗很高的代码并且优化它们,官方文档上对每个方法的CPU消耗情况有详细的说明,对于新手,CPU最大的消耗在于查找目标和跨房间移动,解决这两个问题可以节省超过一半的CPU。

应该选择什么样的房间进行游戏?

遵循一个原则:附近资源丰富并且容易防守

移动速度是如何计算的?

请参考 http://codepen.io/findoff/full/RPmqOd/

如何高效的修路

  • 合理修路可以节约1/4的creep花费,你只要有一半的MOVE就可以达到最大移动速度。
  • 只要有creep经过的地方都应该修路,有一个creep走的地方修一条,有多个creep走的地方修两条,如果非常多,就修很多条,但是不要到处修。

建筑的摆放有什么要注意的

  • storage:让从所有搬运工的走动距离最短,通常选择房间的正中央,让其他使用能量的建筑环绕在周围。
  • extension:离storage要近,游戏中有各种个样的高效摆放方式。
  • spawn:让所有的单位出去工作的距离最短,通常在中心附近。
  • tower:分散在房间的各个角落,并且保证出口附近所有的位置都在10个距离以内,这样能做到最高效的升级围墙,防御敌人,修复建筑,但是要记住tower的效率没有工人高。
  • wall和rampart:建议建在最外围,这样可以让最少的敌人进入房间,易于防守和维修,一个外围的围墙最多能被3个近距离单位+4个远距离单位攻击,而一个内部的围墙可以被至少3个近距离单位+十几个远距离单位围攻。

Link的使用

  • 用来代替搬运工运输资源
  • 用来当升级工人的扩展存储
  • 用来当小型的storage
  • 将link建造在外围rampart上可以实现在有围墙的情况下和其他玩家交换资源

你可能不知道的

  • 在有observer之前,你只能看到有你的单位的房间,我指的是代码里
  • 你可以帮助其他玩家建造和维修
  • 你可以帮助其他玩家升级Controller
  • 你可以把资源丢进其他玩家的storage
  • rampart可以叠加在任何建筑上,千万别忘了给spawn、storage上rampart,wall上也可以放一个rampart
  • renew一个creep并不划算,但是你可以在creep路过的时候顺便renew一下
  • 你可以用Grunt提交你的本地代码 http://support.screeps.com/hc/en-us/articles/203022512-Committing-local-scripts-using-Grunt

我的全部游戏代码已经发布在Github上 https://github.com/m4ker/screeps

我在Screeps里的最后一分钟