maker mv rpg 源码_我花了500多个小时,把前端课做成了RPG游戏

我倒腾了快两个月的学前端用RPG放出来了,虽然只是第1季。下边是3分钟预告片:

在这篇文章里,我会花一些时间说下这个「RPG x 前端课」产品背后的故事和逻辑,有点长,先放最重要的链接:

  • 预售地址 http://s1.ftqq.com

  • 试玩地址 http://get.ftqq.com/581.card

如果你只是想知道如何做一个类似的游戏,可以拉到最下边。

以前我也在微博上说过。技术课程,尤其是系列大课,并不是单纯的把内容讲清楚就完了。它本质上其实是一个把五六十分的人变成七八十分的任务。

九十分到一百分的人自学能力很强,人过一遍官方手册就基本会了,并不需要跑你这里来学。所以来学习课程的人,多多少少是在学习上存在一些问题的。课程的目标,其实是解决这些问题。

bb5039c9b88ce4e5dbb39fdf5f53fa59.png

这些问题里,最麻烦又占比例最大的,就是学习意愿。如果你想要挣钱,你只需要挑动学员的学习冲动;而如果你想真的改变他们,就要想方设法提高完课率。

所以我时常在想,能不能针对这些学不太下去的人群,去做一些学起来没那么痛苦的课程。我管这个叫「无痛学习」,未必快乐,但也不太痛苦。快乐学习当然更好,但难度太高,先定一个阶段性目标。

这就可能需要通过改变课程的结构和交互方式来实现。

有意思的是,同样是这样一个人群,他们却可以天天准时打开手机,在记住一堆的职业、等级、资源名称、科技树节点之后,去玩一个卡牌或塔防游戏,还能一玩好几个月。

于是我想,如果他们能把同样的精力,放在学习编程上,是不是可以无痛的学会同样复杂度的知识和技能?而从我个人的角度看,那些游戏系统的复杂度根本就不比React差多少。

所以能不能把课程做成游戏呢?答案当然是可以,而且已经很多成功的例子了。Steam上边就有各种非常优秀的编程游戏。

但在这不是我想要的。因为这些游戏太优秀了,它们对游戏性的追求大于对知识尤其是具体知识的追求;所以它们把原理抽取出来,再配上各种妙趣横生的细节,让你沉迷其中。

但当你离开游戏环境,你会发现一个悲剧的事实:自己还是不会写程序。

在我想要的编程游戏里,游戏性本身不是作为卖点,而是作为止疼药。编程知识不经扭曲的教授,这对某些人群可能有一点小痛苦,但这时候游戏性会跳出来,给点乐子,把玩家或者说学员拉回来坐下,接着往下学。

当然知识容器和游戏性之间如何去平衡,是一个麻烦的问题。但这样的好处是,当离开游戏,你会发现学会的知识在现实世界中同样管用。

然后我就开始规划起这个课程来。首先我找了个之前做过游戏的同学聊了聊。

他说,记得初中还是小学的时候,有一个街机游戏叫做「国民教育委员会」,其实就是一个小学和初中语文数学物理化学之类知识的问答游戏。玩这个游戏,也是能学到知识的,偶尔还能遇到考试题。你是不是想做这种。

我说对对对。他说NONONO。我问为啥?

他说,因为这种不火啊。「国民教育委员会」虽然有人投币玩,但都是在「街霸」和「侍魂」排长队的时候,所以销量很难做大。当然最大的问题是定价,你的课程都是几千的吧,假设把前端部分都做进去,定价也差不多一千。但你知道Steam上游戏的均价么,2017年的数据是5美金。所以,除非你能把成本控制到极低,不然回本都很困难。

我问他,那怎么将「成本控制到极低」?他说,你听过RPG Maker吗?有点耳熟,我好像还买过呢。

96e24344b6b6ac26a59c16f4f07e251d.png

于是我拿起图灵最近出版的《游戏剧本怎么写》抱佛脚,试着写了个剧本。然后开始看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 格式的数据,首先载入地图,载入资源使其可视化;然后创建事件,放置玩家。当玩家触发事件后,进行相关的操作。

4fbe4439bb3a9c1292673194da0e8bd3.png

RPG Maker 的 GUI 界面主要就是编辑这堆 json ,如果想修改引擎,可以通过插件覆盖某些对象的方法的方式进行。因为 MV 这个版本 2015 年就发布了,所以它的插件生态也还是很不错的,各种插件都有,懂 JS 的还能随手改改。

另一个非常爽的地方就是,RPG Maker 有很多现成的 DLC 可买,里边是各种风格的人设图、地图和音乐素材,这些买完以后都是可以商用的。这就解决掉了不会画画和作曲的人做游戏的最大问题,像《萌猫》里边的素材全都是买的。 

7a69616c0e307652f27e094d28429d8b.png

坏处就是很可能和其他的RPG Maker制作的游戏雷同。我觉得问题不算大,至少可以解决早期测试的问题,如果真的火了,可以再花钱找画师画,毕竟现在一张立绘都几千了,还得看档期。

最后答复下关于开源的问题,因为整个引擎和素材全部是商业授权,所以开源是不可能开源的。不过RPG Maker 本身也不贵,自己买下就是了。

关于如何用 RPG Maker 做 RPG ,其实本身没什么难度,主要是需要弄明白一些基本概念和 RPG 的常规流程。如果以后有机会,出个教程好了。其实B站有免费的教学视频,自己搜一下就可以了。

原文链接是预售地址。试玩建议用电脑。

【实例教程1】怎样编写一个插件? 1. 插件的注释与定义参数 2. 读取插件参数 3. 插件指令的实现 【实例教程2】制作一个启动画面 1. 从哪里开始? 2. 创建启动画面的场景类 【实例教程3】玩转菜单初级篇 1. 给各个菜单界面添加背景 2. 让背景滚动起来 3. 在主菜单界面增加自定义菜单:改名 4. 在主菜单界面移除菜单命令 5. 在主菜单界面增加一个自定义窗口 【实例教程4】玩转标题画面 1. 美化游戏标题 2. 让背景动起来 3. 自定义标题菜单 4. 美化菜单 【实例教程5】制作小游戏:坦克大战(上) 1. 游戏结构及流程介绍 2. 相关素材资源的下载和使用 3. 基础知识:音效的播放 4. 基础知识:精灵表的切帧 5. 基础知识:使用MV中的动画 6. Scene_TankWarTitle类解析 7. Sprite_Bullet类解析 8. Sprite_Explode类解析 9. Sprite_Tank类解析 10. Sprite_Enemy类解析 11. Scene_TankWar类解析 12. Scene_TankWarGameOver类解析 【实例教程6】存档的加密解密与保护 1. 找出MV存档和读档的方式 2. 制作MV存档的修改器 3. 如何保护存档? 4. 制作一个存档保护插件 【实例教程7】制作一个传送插件 1. 传送插件的主要功能 2. 将自定义数据保存到存档中 3. meta数据的使用 4. 使用地图备注登记传送点 5. 在插件中解析并记录传送点 6. 使用地图备注登记多个传送点并在插件中记录 7. 制作传送点选取窗口显示传送点数据 8. 将物品或技能标记为传送物品、传送技能 9. 显示传送动画实现传送功能 10. 禁止使用传送道具或传送技能 11. 实现插件命令
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值