原创文章

微信小游戏 1.0 版本游戏内容

微信小游戏 1.0 版本游戏内容

1.0版本内容配图

故事是这样的。

我最近又回头翻了一遍 1.airPlane 的代码。

翻之前我以为,这个项目大概还是那种很典型的飞机大战,飞机在下面飞,敌机从上面下来,子弹一顿打,打完就算了。

结果真把 js/main.jsjs/databus.js 这些文件看下来以后,我突然有点明白,所谓 1.0 版本,已经不是一个简单的能跑 Demo 了,它其实是一个很完整的小游戏骨架,甚至可以说,很多玩家进来以后能感受到的东西,基本都已经在里面了。

它不是只会动。
它是已经开始有自己的节奏了。

先说最直观的,核心玩法还是飞机大战这一套,但不是那种极简的飞机大战。
玩家进去以后,先是标题页,然后能进设置页、商店页、更多游戏页、历史战绩页,点开始之后才进入真正的战斗。
这个顺序其实很重要,因为它说明这游戏不是只想做一个对战场景,它想做的是一个完整的微信小游戏入口。

你不是一脚踩进战斗就结束了。
你会先在标题页停一下,看看今天的状态,顺手开个设置,看看商店里能不能买点东西,或者翻一下历史成绩,甚至还能先去看一眼旁边挂着的几个扩展玩法入口。
这种感觉就很像一个真正的游戏,而不是一个临时拼起来的关卡。

进入战斗以后,主循环还是很清楚的。
玩家驾驶飞机,在竖屏战场里移动,飞机会自动射击,敌机会按关卡节奏不断生成,子弹、道具、金币、碰撞、结算,这些东西都在一个链路里跑。
看起来都是老东西,但真把它们串起来以后,味道就不一样了。

我最喜欢看的一点,是它的关卡结构。
这个项目不是随便一条直线往后推,而是有 10 个明确的国度,风之国度、岩之国度、雷之国度、草之国度、水之国度、火之国度、冰之国度、月之国度、日之国度,最后落到最终国度。
你光看名字,就知道它不是单纯做数值加法,它已经想让每一关有一点自己的脾气。

更要紧的是,关卡不是摆设。
databus.js 里,关卡时长、关卡提示、敌人上限都已经配好了。
每一关持续多久,每一关屏幕上最多能放多少敌人,节奏怎么从前面慢慢推到后面,这些都不是靠感觉瞎蒙,而是已经变成了明确的系统。
所以你打起来的时候,会明显感觉到,前几关给你喘气,后几关开始加压,到了第十关就不是让你随便玩玩了,而是真的要把你往终局里推。

而且这个敌机系统也不是只做了几种外形那么简单。
从现在这套设计来看,它是按关卡和类型一起去组织的,简单说就是每一关都可以长出自己的敌机组合。
这样做的好处很直接,第一,不会腻,第二,后面往里加内容也方便。
你不是在改一个死结构,而是在一个已经能分层的系统里继续往下填。

说到玩家自己这边,也挺有意思。
飞机不是只有血条这么简单。
现在这套状态里,生命、护甲、特殊技能、无敌技能这些东西都已经摆上来了。
护甲最多三层,炸弹技能有次数,无敌也有次数。
这就意味着玩家不是纯靠手速硬扛,而是要在该保守的时候保守,该爆发的时候爆发。
游戏一下子就从一条单薄的射击线,变成了有资源管理意味的战斗。

这块我觉得特别像一个 1.0 版本该有的样子。
因为真正的 1.0,不是说内容越多越好,而是说,核心的交互已经完整了。
你知道自己为什么会掉血,为什么能开炸弹,为什么还能在某个时刻顶着无敌往前冲。
你做的每一个决定,都是能落到系统里的。

再往外看一点,商店也已经有了。
商店里能买护甲、技能、子弹和复活券。
这个设计很现实,也很微信小游戏。
因为它不是单纯让你一局打完就走,而是把局外成长和局内体验连起来了。
你打得越多,攒得越多,下一局就能带着一点优势进去。
这种设计一出来,游戏就会从一次性的体验,变成能反复回来的东西。

金币系统也是一样。
打的时候能捡金币,金币能进永久积累,还能和商店联动。
历史战绩也会保存,最高分、局数、关卡、总击毁这些东西都能记下来。
这其实就是在给玩家一个回头看的理由。
不是你玩完就散了,而是你会忍不住想,我上次打到哪了,我这次能不能比上次更稳一点。

我自己看这种系统的时候,总会觉得,游戏真正有意思的地方,不是某一个按钮有多亮,而是它有没有把玩家的重复行为接住。
飞机大战这种东西,单局爽感当然重要,但能不能让人连续玩三局、五局、十局,靠的就是这些看起来不起眼的积累。
金币、历史、复活、商店、关卡递进,这些东西一旦接上,味道就完全不一样了。

还有一个我觉得特别明显的点,就是这个项目已经开始认真对待微信小游戏的运行环境了。
performance.js 里有性能分级,低、中、高三档会根据设备和帧率动态调整。
spatial-grid 也已经接进来了,碰撞不再是那种傻乎乎全量比对的方式。
对象池也在,金币、敌机这些东西都尽量复用。
这说明它不是只追求能跑,而是在尽量让它跑得稳一点。

这部分我其实挺有感觉。
因为很多人做小游戏,第一版都很容易犯一个毛病,就是觉得先做出来再说,优化以后再补。
结果真跑到真机上,才发现卡得离谱。
这个项目不是这么干的。
它已经把低端机、高端机、粒子数量、渲染压力、碰撞开销这些东西提前放进考虑范围里了。
说白了,这不是单纯在写玩法,这是在写一个能放进微信小游戏环境里长期活着的版本。

再往下,还有剧情和氛围。
这个项目不是那种空空的飞机壳子,它已经开始有故事了。
story-dialogues 这一套已经进来了,标题页、每关开场、Boss 前警告、结算反馈,这些地方都可以插入文案。
再加上前面那些元素国度的设定,整个世界就慢慢立起来了。
你会发现,它不再只是一个飞机对飞机的数字游戏,而是一个有自己的空域、自己的国度、自己的灾变源头的世界。

这点我很喜欢。
因为一旦世界观有了,很多东西就不只是功能,而变成了体验。
同样是打敌机,如果你知道自己是在穿越风之国度,下一关会进岩之国度,再往后还有最终国度,那你打的时候心里就会多一层东西。
你不是在清屏,你是在推进。
不是在刷分,你是在往终局走。

还有那些扩展入口,也挺像一个完整项目该有的样子。
顶蘑菇、坦克大战、弹球,这些现在还挂着开发中,但它们的存在本身就说明,这个项目不是只想把一条主线做到死,而是想把这个小游戏入口慢慢做成一个可扩展的小宇宙。
哪怕现在还没真正展开,光是这个结构已经摆出来了,后面要补玩法的时候,手也会顺很多。

所以你要我现在给 1.airPlane 的 1.0 版本下个定义,我会说,它已经不是一个半成品了。
它是一个功能齐,节奏齐,氛围也开始齐的微信小游戏版本。
它有标题页,有设置,有商店,有历史,有关卡,有道具,有金币,有复活,有性能分级,有故事线,有扩展入口。
你说它还不够精细,那当然,离真正成熟还差一截。
但你说它只是一个雏形,我觉得也不对。
它已经能让人很清楚地看到,这个项目到底想长成什么样了。

我现在回头看,最打动我的其实不是某一个模块,而是这些模块拼在一起以后给人的感觉。
一个普通的飞机大战,慢慢被做成了一个有世界观、有系统、有节奏、有成长的小游戏。
这种东西,才是 1.0 版本最该有的样子。

它不是把所有想法都做满。
它是把最该有的东西,先都站住了。

而这一步,真的挺重要。

评论

发表评论