前言

借用游戏官网的介绍,Screeps 是一款为程序员制作的 MMO 沙盒游戏。“Screeps”意为用脚本(Script)编程控制你的爬虫(Creep)。游戏的核心是通过编写 JavaScript 来控制你的单位,完成资源采集、领地扩张、战斗防御等任务。

目前游戏有 Screeps: WorldScreeps: Arena 两个版本,前者是 MMO 版本,后者是 PVP 版本。Screeps: Arena 目前还在开发中,并不太稳定。本文介绍 Screeps: World,并简称为 Screeps。

游戏介绍

不同于其他基于伪代码或图形化界面的编码游戏,Screeps 使用 JavaScript 作为编程语言,这使得玩家可以像编写一个真实的工程项目一样进行开发。然而也正是因为如此,Screeps 的门槛也比较高,需要玩家有一定的编程基础。

如果你觉得拿不定主意,不知道适不适合自己,那么游戏官网上提供了免费的教程关卡,可以先尝试一下。

不会玩怎么办?

对于像我一样的编程苦手,以前基本没有接触过 JavaScript,在游玩的时候会遇到很多问题,甚至有很多傻瓜问题。不过不要灰心,如果你能坚持下来,那么你的编程能力一定会有很大的提升(当然,如果体验过免费教程关卡后感觉非常吃力和痛苦的话,那还是应该先学习一些基础的知识,有时放弃并不是胆怯而是种智慧)。

  1. 关于 JavaScript 和 TypeScript 的问题,请善用搜索引擎,因为这个过程正是提升编程能力的最佳途径。现在有了大语言模型,这类编程问题问它们效果不错哦。

  2. 如果你有一些疑问需要他人解答,你可以加入官方的 Discord 服务器,在里面提问,或者在官方论坛上提问。当然你也可以加入 qq 群组与 qq 频道,大佬们会为你的疑问提供解决思路(当然,请尊重他人的时间,不要问一些没有价值的问题)。qq 频道可以通过搜索 screeps 关键词找到。

  3. Screeps 的官方文档非常的详细,也有相应的汉化版本,也可以解答你的很多疑问。

  4. 学习大佬的代码。我不少的代码与框架都是都是从 HoPGoldy 大佬那里借鉴抄来的,真的大有裨益。

  5. 看教程。这个系列的教程非常详细,由浅入深介绍了游戏内容、环境配置、代码设计与进阶内容,很适合小白入门(比如我)。其中环境配置部分介绍了在 vscode 上编写代码的方法,非常推荐。

游戏体验

两年前我曾经上手玩过一次,但因为能力过于欠缺中途放弃。这今天我又重新拾起这款游戏,目前的情况与之前相比已经有了很大的进步(之前甚至是直接在游戏内置的 IDE 里写代码的,非常僵硬)。

这是目前我的房间情况,还是处于前期发展中。不过我已经品尝到这类长周期、高反馈的编程游戏的甜头了,希望以后能更加精进代码,早日解锁全部建筑(雾)。

房间控制等级-LV5

游戏游玩过程中,最大的阻碍还是时间。在前期需要很多时间学习文档,虽然教程关卡给出了一些基本的运行方法,但随着房间里的建筑越来越多,简单的逻辑可能就支持不了这些单位的运作了。我经常得花上一整天的时间去调整我的代码结构,以应对不断增大的房间规模。在没有完成自己的第一套代码的情况下(即到达8级的控制等级并有了稳定的代码),玩家是需要花费大量时间在代码上的(时间倒流术警告!),这是最让我觉得痛苦的地方。

然后就是 JavaScript 上的短板。因为我本身并没有深入学习 JS 和 TS 的语法,在编程过程只能现学现卖,很大程度上影响了我的游戏体验。不过,这样也算是强迫自己去学习 JS 与 TS 知识了。

最后就是,调试起来真的很麻烦,虽然有单元测试和 server-mockup 测试,但依然不方便调试(我也没去尝试)。调试全在生产环境游戏环境进行(乐)。

总结

总之,Screeps 是一款非常耐玩且硬核的游戏,有着详尽的文档与有力的社区支持。如果你有一定的编程基础,那么这款游戏能力帮助你更快地提升(JS 和 TS)的编程能力。同时作为一个工程项目,它也能让你的程序设计水平有相当大的提升。投入的时间越多,收获的成就感也就越大!