一款玩着玩着就变成JavaScript大神的游戏。
一款可以增加你赚钱能力的游戏。
在写下这段文字的时候,我已经删除了这个游戏里所有的数据,因为这个游戏消耗了我太多时间,本着纪念这段游戏经历的目地,我写了这篇文章。
什么是Screeps?
官方这样定义这款游戏:第一款针对开发者的大型多人在线开放策略游戏。而对于这款游戏,很多报道里会提到:”最难“,”战术沙盒“等概念。
是的没错,screeps就是这样一款游戏,一款需要编写代码才能玩的在线策略游戏。玩家需要在游戏中编写javascript代码来控制所有的游戏行为。比如:
查找并攻击敌人
1 | enemy = creep.pos.findClosestByRange(FIND_HOSTILE_CREEPS); // 找到距离最近的敌人 |
找到能量矿并采集
1 | sources = creep.room.find(FIND_SOURCES); // 找到房间里所有的能量矿 |
你的代码会保存在游戏中,并且一直运行下去。游戏甚至给你提供了缓存,有代码提示的在线代码编辑器,控制台和完善的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