零
我倒腾了快两个月的学前端用RPG放出来了,虽然只是第1季。下边是3分钟预告片:
在这篇文章里,我会花一些时间说下这个「RPG x 前端课」产品背后的故事和逻辑,有点长,先放最重要的链接:
预售地址 http://s1.ftqq.com
试玩地址 http://get.ftqq.com/581.card
如果你只是想知道如何做一个类似的游戏,可以拉到最下边。
一
以前我也在微博上说过。技术课程,尤其是系列大课,并不是单纯的把内容讲清楚就完了。它本质上其实是一个把五六十分的人变成七八十分的任务。
九十分到一百分的人自学能力很强,人过一遍官方手册就基本会了,并不需要跑你这里来学。所以来学习课程的人,多多少少是在学习上存在一些问题的。课程的目标,其实是解决这些问题。
这些问题里,最麻烦又占比例最大的,就是学习意愿。如果你想要挣钱,你只需要挑动学员的学习冲动;而如果你想真的改变他们,就要想方设法提高完课率。
所以我时常在想,能不能针对这些学不太下去的人群,去做一些学起来没那么痛苦的课程。我管这个叫「无痛学习」,未必快乐,但也不太痛苦。快乐学习当然更好,但难度太高,先定一个阶段性目标。
这就可能需要通过改变课程的结构和交互方式来实现。
二
有意思的是,同样是这样一个人群,他们却可以天天准时打开手机,在记住一堆的职业、等级、资源名称、科技树节点之后,去玩一个卡牌或塔防游戏,还能一玩好几个月。
于是我想,如果他们能把同样的精力,放在学习编程上,是不是可以无痛的学会同样复杂度的知识和技能?而从我个人的角度看,那些游戏系统的复杂度根本就不比React差多少。
所以能不能把课程做成游戏呢?答案当然是可以,而且已经很多成功的例子了。Steam上边就有各种非常优秀的编程游戏。
但在这不是我想要的。因为这些游戏太优秀了,它们对游戏性的追求大于对知识尤其是具体知识的追求;所以它们把原理抽取出来,再配上各种妙趣横生的细节,让你沉迷其中。
但当你离开游戏环境,你会发现一个悲剧的事实:自己还是不会写程序。
在我想要的编程游戏里,游戏性本身不是作为卖点,而是作为止疼药。编程知识不经扭曲的教授,这对某些人群可能有一点小痛苦,但这时候游戏性会跳出来,给点乐子,把玩家或者说学员拉回来坐下,接着往下学。
当然知识容器和游戏性之间如何去平衡,是一个麻烦的问题。但这样的好处是,当离开游戏,你会发现学会的知识在现实世界中同样管用。
三
然后我就开始规划起这个课程来。首先我找了个之前做过游戏的同学聊了聊。
他说,记得初中还是小学的时候,有一个街机游戏叫做「国民教育委员会」,其实就是一个小学和初中语文数学物理化学之类知识的问答游戏。玩这个游戏,也是能学到知识的,偶尔还能遇到考试题。你是不是想做这种。
我说对对对。他说NONONO。我问为啥?
他说,因为这种不火啊。「国民教育委员会」虽然有人投币玩,但都是在「街霸」和「侍魂」排长队的时候,所以销量很难做大。当然最大的问题是定价,你的课程都是几千的吧,假设把前端部分都做进去,定价也差不多一千。但你知道Steam上游戏的均价么,2017年的数据是5美金。所以,除非你能把成本控制到极低,不然回本都很困难。
我问他,那怎么将「成本控制到极低」?他说,你听过RPG Maker吗?有点耳熟,我好像还买过呢。
四
于是我拿起图灵最近出版的《游戏剧本怎么写》抱佛脚,试着写了个剧本。然后开始看RPG Maker的程序框架源码,正好它是用JavaScript编写的。弄明白怎么运行以后,我又差不多花了一周写了一个交互式课程系统嵌进去。
我开始以为需要一个月才能做完,于是决定只做前端部分的课程,不做全栈部分。然而做完上边的准备工作,一个月都过完了。
玩游戏是开心的,但做游戏却是繁杂的,且枯燥。这里就不详细说了。总之,在500多个小时过去以后,我终于做完,不,终于发现自己做不完了。?
500个小时的成果如下:课程内容做完了网络部分的课程,HTML部分做了一节;整个游戏的流程时间大概在1~2个小时,然而这些只占到我规划的前端课程的四分之一。
这意味着还要花上至少1000小时才能把整个规划做完,一天如果工作8个小时差不多要做三五个月。让我去哭一会儿先。
我相信好东西是值得花时间去打磨的,但目前,我还没办法确认它是「好东西」。比较好的是,虽然只有几分之一的,却也相对完整,完成了我对游(ke)戏(cheng)的基本构想。
所以我决定把现在已经做得差不多的部分发布出来,作为《萌猫、室友、前端课》的第1季,以一个极低的价格进行预售。然后根据这一季的反馈和销售情况,决定如何继续。
五
最后说一下整个制作过程中得到一点点经验教训吧,这是第一次做比较长的RPG,知道了很多以前不知道的事情。
首先做游戏和做应用的核心逻辑是不同的。
应用是建立一个简洁清晰的目标,然后冲着那个地方去;而游戏是要构造一个探索环境,从中发掘乐趣。应用关注的是降低学习成本,一旦建立起来一个模式,就要不断重用,让用户专注于业务本身;而游戏需要新奇感,需要持续不断的产生小变化,来构建张力推动玩家不断玩下去。
所以对游戏而言,变化是一种常态。为了在成本和变化之间到达均衡,需要有个可以不断重用的构造变化的系统 —— 这个就是游戏引擎。
这次能把《萌猫》做出来(哪怕只做了第一季),完全是因为有一个好用的游戏引擎,RPG Maker。这个引擎是为普通人设计的,它在覆盖了 RPG 绝大部分常规要素的情况下,通过一个无编程的图形界面来进行操作。这节省了我非常多的时间,让我可以把精力花在内嵌的课程系统上。
RPG Maker 直接在 Steam 上就可以买,这个产品也做了好些年了,第一个版本发布是1992年… 最新的稳定版是 MV,除了细节上的优化,在我看来最好的地方是改用了 JavaScript,可以轻松部署跨多个操作系统(含手机)以及 Web 的安装包。
从技术细节上来讲,RPG Maker 弄了一个核心 JS 引擎,这个引擎通过读取一堆 json 格式的数据,首先载入地图,载入资源使其可视化;然后创建事件,放置玩家。当玩家触发事件后,进行相关的操作。
RPG Maker 的 GUI 界面主要就是编辑这堆 json ,如果想修改引擎,可以通过插件覆盖某些对象的方法的方式进行。因为 MV 这个版本 2015 年就发布了,所以它的插件生态也还是很不错的,各种插件都有,懂 JS 的还能随手改改。
另一个非常爽的地方就是,RPG Maker 有很多现成的 DLC 可买,里边是各种风格的人设图、地图和音乐素材,这些买完以后都是可以商用的。这就解决掉了不会画画和作曲的人做游戏的最大问题,像《萌猫》里边的素材全都是买的。
坏处就是很可能和其他的RPG Maker制作的游戏雷同。我觉得问题不算大,至少可以解决早期测试的问题,如果真的火了,可以再花钱找画师画,毕竟现在一张立绘都几千了,还得看档期。
最后答复下关于开源的问题,因为整个引擎和素材全部是商业授权,所以开源是不可能开源的。不过RPG Maker 本身也不贵,自己买下就是了。
关于如何用 RPG Maker 做 RPG ,其实本身没什么难度,主要是需要弄明白一些基本概念和 RPG 的常规流程。如果以后有机会,出个教程好了。其实B站有免费的教学视频,自己搜一下就可以了。
原文链接是预售地址。试玩建议用电脑。