昨天触乐网在微博上放出了一个新闻,说日本那边上线了一个以敲代码为主要玩法的游戏,还支持目前主流的20种编程语言。笔者作为一个计算机专业的学生,看到这样的游戏是瞬间兴奋了起来。 游戏敲代码边学习边娱乐。抱着这样美好的想法,笔者打开了这款名为《死滅世界生》(程序员灭亡的世界和人造人一起活下去)的游戏。 这款游戏并不是一款手游,这一点让人比较意外。在2019年这类以网页为载体的游戏已经颇为少见,且在国内很多玩家对页游的印象基本是贪玩蓝月或是4399。 由于这款游戏来自日本,所以笔者也见怪不怪了。日本除了盛产美少女抽卡手游,还盛产各类爆肝页游,DMM就是一家非常出名的日本页游厂商。 点击登录,发现这款游戏居然支持直接用Github登录,颇为硬核。这个世界上或许只有这么一款游戏是可以直接用Github登录的了。 看起来这确实是一款为程序员准备的游戏,笔者不禁开始臆测这款游戏的内容、玩法,越想越兴奋。 看玩游戏的开场CG,笔者终于见到了游戏的本体。没想到的是这款游戏居然颇为简单,只有一个换装和一个地图,地图上有标记了A、B、C、D的各种地标,看起来非常像是自选关卡的界面,A、B、C、D分别对应了关卡的难度。 既然是这样,那就先从D的关卡开始玩,玩游戏嘛,毕竟要有一个循序渐进的过程,就算是程序大牛来玩,也得先摸清这款游戏的套路。 和其他游戏不一样,这款游戏并不需要你准备什么装备,也不需要你排兵布阵,看起来这款游戏就是用代码做武器了。行吧,那就开始战斗! 点下红色的按钮,网页开始跳转,马上要进入紧张激烈的战斗环节了! WHAT?????? 相信每个程序员都非常熟悉这样的东西,一个题目,一堆条件,一个输出要求,两个样例。 这就是典型的OnlineJudge啊,哪里是什么游戏!这所谓的支持24种语言,专门为程序员量身打造的游戏,结果就是一个特制的刷题场而已,也真是让人感到失望。 所谓的OnlineJudge呢,如果你是程序员那么你多少会接触过,这是一个基于网页的在线自动评判系统,它上面会有各式各样的题目,你需要通过编程来解决它们。 你将你写的程序提交上去后,OnlineJudge会自动对你的这段程序进行评判,你可以理解为机器自动改卷。一道题是否通过取决于你的程序是否能够在一定的限制下(时间、内存大小)跑过所有的测试用例(即程序自动投喂的输入能否得到理想的输出)。 这款游戏的主体便是这样的一套OnlineJudge系统,只能说这个游戏厂商也是够无聊的,居然将这样的东西做成一款游戏,解题是非常枯燥的事情,基本上没有趣味性可言,这样的东西真的会有市场吗? 本着好奇的心态,笔者搜索了这款游戏的开发商Paiza。不搜不知道,它其实并不是做游戏的,而是专业做OnlineJudge的,在日本它的地位相当于LeetCode之于全球程序员的地位,Paiza是一个帮助IT从业人员提升编程水平的平台。 也就是说,其实这根本就不是一款游戏,它只是OnlineJudge披上了一层游戏的壳,强加以世界观和美少女去吸引一些年轻宅男的东西罢了,这也就不奇怪为什么它可以做到支持世界上主流的各种编程语言了。 看到这你可能就会问了,那么到底存不存在能让程序员下了班还能快乐地敲代码的游戏呢? 答案是,有。你可能会觉得笔者接下来要介绍的是苹果自家为了推广Swift语言推出的SwiftPlaygrounds,确实,它是一款非常好的寓教于乐的App,但是它本质上并不能算是一款游戏,毕竟连苹果自己都将其归类在教育这一分类下。 笔者曾经接触过的一款真正以编程为主的游戏,它叫《Screeps》,这是一款真正的沙盒类MMO页游,而且完全是给程序员量身定做的。 它以JavaScript作为主要开发语言,除此之外它也支持Python、Kotlin等,但是这些并不被官方推荐,可能是因为这款游戏本身后端是NodeJS。 所有的代码将会被自动地提交并实时运行在服务器上,也就是说即使你不在线,你的代码仍然在7x24不间断地执行。 你需要在游戏的基本循环架构下构建你自己的代码,而你的代码将决定你在游戏里的行为。 这是一款实时战略游戏,在游戏你你要做的事情和你在一款普通的RTS游戏里要做的事情类似造农民、采矿、造兵、发展、圈地、打架。 不同的是,在这款游戏里,不论是建筑还是单位,你都不能直接操作,你需要用你的代码去控制他们的行为。 即使你是程序员,在刚刚上手的时候你也可能会一头雾水,我是谁,我在那,我该干什么?好在游戏有非常完善的分步教程,在教程结束之后你的代码可以自动地控制你的单位去寻找资源、采矿、升级基地。 但这只是这款游戏的基础,想要在这款游戏中获得一席之地,你需要不断完善你的代码,让你的单位能够自动巡逻、在遇敌的时候自动攻击等等,同时你还需要用代码统筹规划你的军队,以及你整个地盘的发展。 在镜面0、1,如果你付费了,那么你可以解锁更多的计算资源,但是在镜面2,所有人的CPU资源都将限制在20,在这个领域,你还需要考虑代码的执行效率。 在这款游戏中,你的编程水平将决定你实力的上限。 这款游戏如果你上手了,你会发现它非常有意思,甚至兴奋到下班回家后的第一件事就是打开这款游戏接着调试自己的AI。 由于整个世界是在实时运行的,因而在你不在线的时候,游戏会通过邮件的形式告诉你游戏世界里发生了什么,因而只要你AI写好了,基本上就可以放置Play。相较于现在很多游戏而言,它反而并不怎么爆肝。 如果你没有编程基础,那么笔者推荐你体验一下伪编程游戏《人力资源机器》、《70亿人》,他们都来自于TomorrowCorporation,是相当不错的益智类游戏。 这两款游戏的难度是递进的,后者相较于前者游戏难度暴涨,但玩下来总体的难度还是在可以接受的范围。 相较而言,《70亿人》更加接近真正的编程,且谜题也更讲究算法。如果你对你的智商非常自信的话,可以直接挑战《70亿人》,关于这款游戏,受限于篇幅笔者不做过多的介绍,你可以通过下面的截图感受一下: 这两款游戏都支持iOS、Android、PC,笔者不推荐在Steam上购买,因为《70亿人》的PC版没有中文,但iOS有。 如果你是程序员,笔者还是不太建议你在上班之后继续通过这些游戏烧脑,毕竟大脑的本质和CPU类似,总是处于满负荷甚至超频状态,容易出问题,既然下班了,那就适当放松放松,走出代码世界。 本文所提到的这么一些游戏更适合于学生,特别是对编程有向往或者有学习需要的学生,这些游戏可以真实地起到寓教于乐的作用,尤其是TomorrowCorporation推出的这两款游戏,它们确实是非常不错的作品,而且还颇有一些深度。