Screep:World日记第一天

直到如今,买这款游戏已经两年多了,在此之前完全没有认真的在玩这款游戏,控制器最高等级也才5级,写这文章是想分享一下游玩screeps的经历并且锻炼一下自己的写作能力。

本人刚结束高考,高二高三忙于学习没有太多时间敲代码而且理解能力比现在略差,也没有真正认真地去看官方api文档。

既然说到了这款游戏,那我给没玩过游戏的读者先入入坑,查阅了各大平台,讲screeps的作者少之又少。

首先,screeps是一款mmo多人开放塔防游戏,需要使用js (JavaScript)语言来编写脚本控制单位(creep)运作,来进行资源采集、攻击等等行为进行游戏,游戏内配备有api文档。

我常使用vscode编写程序,

以下是官方简介:

Screeps 是什么样的游戏

Screeps 是一款 MMORTS (大型多人在线即时战略游戏)。游戏里有很多世界,每一个玩家都可以在包含所有玩家的单个世界中创建自己的领地。在领地上可以采集资源,建造单位以及占领领土。随着你征服的领土越来越多,势力范围越来越大,你在游戏世界中的影响力也越来越大。不过荣耀与风险并存,你的领地也同时被虎视眈眈的其他玩家盯着。

Screeps 主要是为了有编程背景的人设计的。和其他 RTS 游戏不同的地方在于,只要你为你的 Creep 敲好了代码,就可以让它们自动运行,不用你亲自操作。同时和其他 MMO 游戏不同之处在于你不用花费成片成片的时间去玩,只用没事的时候抽空看一看一切是否进展顺利。

游戏世界

Screeps 的游戏世界由很多相互连接的房间(room)组成。每个房间是一个 50x50 封闭空间,可能有 1~4 个出口通向其他的房间。世界被分为不同的镜面(shard),并通过之间的传送门相连。你可以把镜面视为整个世界的 z 轴。

每个房间的布局是独一无二的,由程序生成,包括以下三种元素:

  • 平原(Plain Land)- 普通的地面,移动成本为2。
  • 沼泽(Swamps)- 移动成本为10.
  • 墙(Walls)- 阻止单位移动。

可以通过以下设施改变房间布局:

  • 道路(Roads) - 可以将移动成本减小到1。道路会随着使用而损坏,需要维修。
  • 建筑墙壁(Constructed Walls) - 由玩家自行建造的墙壁。与天然墙壁不同,建筑墙壁可以被其他玩家攻击、破坏。
  • 城墙(Ramparts) - 防御工事。己方单位可以在城墙内移动,并且在城墙被完全破坏之前,城墙内的己方单位无法被攻击。城墙会随着游戏时间推进而损坏,需要维修。

在游戏开始的时候,你可以从世界中任意选择一个空闲的房间作为自己的领土。之后会有一个安全期,在此期间别人无法攻击你,最好利用这段时间加强自己的防御,否则时间一过别人就可以蹂躏你。

属地(Colony)

能量源(Energy Sources) 是游戏里的主要资源,可以由 Creep 采集。能量源的单次储量有限,不过每 300 个游戏 tick 都会恢复。

母巢(Spawn) 是 Colony 的核心部分。可以存储采集到的能量并用能量建造新的 Creep。每个房间最多可有 3 个 Spawn。

Spawn 本身只能构建基本单位,如果想构造高等单位就需要建造 Spawn 扩展(Extension)。

Creeps

和其他 RTS 游戏一样,你的可控制单位被称为 Creep。但是 Screeps 炫酷的地方在于共有 7 种身体部件可为你所用以构建你的专属 Creep,每个单位上最多可以有 50 个部件。可以利用此机制构造出不同类型的 Creep:普通工人,能够在几个 tick 内建造或修复结构的巨型建筑机器,大容量运输单位,快速廉价的侦察兵,装备精良的具有再生能力的战斗机等。没有做不到,只有想不到。

不过要注意的是 Creep 的生命时间只有 1500 个游戏 tick (大约 30-60 分钟,具体取决于每个游戏 tick 的时长),然后它会死掉。 因此,你不仅需要控制现有的 Creep,还需要设计 Creep 的更替方式。

标准的 Spawn 只能产生花费不超过 300 单位能量的基本 Creep。想要生产高级的 Creep 就需要建造 Spawn 扩展(Extension),每个 Spawn 扩展可使 Spawn 的能量存储容量多 50,从而允许生产更高级的 Creep 。

Spawn扩展的放置位置不重要,只需要和 Spawn 在一个房间里就行了,并且一个扩展可以被多个 Spawn 共同使用。生产 Creep 前需要 Spawn 和扩展里有足够多的能量。

一个房间里可以放置的扩展数量取决于房间的控制水平。详细的说明在控制里。

Creeps 能力

每个 Creep 的能力由 Creep 的构造部件决定:

  • WORK – 收集能量,建造和修复结构,升级控制器的能力。
  • MOVE – 移动的能力。
  • CARRY – 运输能源的能力。
  • ATTACK – 短距离攻击的能力。
  • RANGED_ATTACK – 长距离攻击的能力。
  • HEAL – 治疗其他单位的能力。
  • CLAIM - 控制领土的能力。
  • TOUGH – “空”部件,唯一作用就是承受伤害。

每种能力的强弱取决于对应部件的数量。以工作效率为例,有 3 个 WORK 部件的 Creep 的工件效率是只有一个 WORK 部件的 3 倍。这同样适用于其他部件。

移动力

除了 MOVE 外, Creep 的每一个构造部件都有重量:带的部件越多,移动速度越慢。每个部件(除了 MOVE)都都会产生疲劳值:在道路上为 1 点,平原上为 2 点,沼泽里为 10 点。每一个 MOVE 部件每个游戏 tick 会减少 2 点疲劳值,当 Creep 的疲劳值大于 0 时无法移动。

如果要保证 Creep 每个游戏 tick 能移动一格,需要计算除 MOVE 外的所有部件的疲劳值总和并使 MOVE 减少的疲劳值不低于这个总和。

换句话说,一个 MOVE 部件在每个 tick 可以移动其他部件一个方格。如果一个 Creep 的 MOVE 部件不足,他的移动力会按比例减速,这可以通过疲劳度来看出。

值得注意的是,没有搬运资源的 CARRY 部件是不会产生疲劳的。

几个小例子,在平原上运动时(每个部件移动一格产生2点疲劳值):

  • Creep [CARRY, WORK, MOVE] 在没有搬运能量的时候一个 tick 可以跑 1 格,搬了能量以后 2 个 tick 才能跑 1 格。
  • Creep [TOUGH, ATTACK, ATTACK, MOVE, MOVE, MOVE] 将以满速(1 个 tick 一格)行动。
  • Creep [TOUGH, ATTACK, ATTACK, MOVE, MOVE] 根据向上取整原则 2 个 tick 移动 1 格。

伤害

每个 Creep 可以承受的伤害总量由部件总数决定,每个部件可以增加 100 点耐久。被攻击时,排在前面的部件会被优先攻击,当部件完全损毁时,Creep 就不再有对应能力了。

下期讲解游戏机制和代码编写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值