前言
在这个小游戏中,我们将使用 SpriteKit 框架进行开发。SpriteKit 框架是 Apple 在 2D 游戏领域着重发力的一个高性能游戏框架,关于这个框架的介绍大家查阅官方文档进行。
关于这个游戏,可以说它打开了我对游戏开发的大门。在 17 年中的暑假,我使用了 Cocos-2dx 这个基于 C++ 的跨平台游戏框架完成了第一和第二版的「方块弹珠」小游戏,在使用 Cocos-2dx 完成游戏的两版实现过程中,我发现了所谓的跨平台实际上就是用一门与平台无关的语言或者是自造的一个 DSL,分别针对不同的平台,做一个与原生开发语言的 bridge,通过使用 DSL 来抹平平台差异性。
粗略的来看,可以认为各种跨平台框架做的都是一些「脏活」,包括目前的 Flutter 也是一样的套路,只不过 Flutter 的「跨平台」做的更加彻底,以往的那些例如 Cocos-2dx 等传统的跨平台框架,最终到了「渲染」这一层,终究还得走原生平台的绘制方法,但 Flutter 使用了 Google 自家调教得更加完美的渲染引擎,绕过了原生平台。
关于这方面的内容网上已经有了大量的学习资料,而 SpriteKit 在随着 iOS8 一同推出到现在,也已然是个相对成熟的 2D 游戏框架框架了。「方块弹珠」这个小游戏我在去年五一期间使用 Cocos Creator 复刻了一个简单的 web 版,并且也已开源,你可以在这里找到,或者扫描以下二维码进行试玩。
预备知识
在这个小游戏中,我们正式进入到了对物理世界的模拟这一环节,可能会对数学和物理知识有一点要求,但所有人都可以搞定,并且也正是由于 SpriteKit 物理引擎的加入,能够让我们以相对小的成本,通过使用「面向对象」的思路去操作每一个模拟物理世界中的刚体。
对于前两个小游戏来说,我们只是在使用 iOS 的系统 UI 组件「强行」完成一个游戏,也不需要去考虑从一个玩家的角度去看待问题,只是在为了完成功能而去完成游戏。
现在,我需要和你们一起重新思考,一个精品小游戏,应该考虑的问题有哪些:
- 故事;
- 玩法;
- 美术;
对于投入资本不大的小游戏来说,基本上无法与 3A 大作匹敌,这方面我觉得做的比较好的「独立游戏」有《空洞骑士》和《蜡烛人》。当然,我这里所说的独立游戏并不是真正意义上的一个人独立完成,而是指一个人数不多的开发团队,如果你也对「独立游戏」感兴趣的话,可以去看下这个纪录片,个人认为算是比较接地气的把目前国内做独立游戏的开发团队描述较为真实。
说实话,当我看完这个纪录片后,我才真正意义上的明白了我所认为的「游戏」和这群人所理解的「游戏」的差距是多么大。从此以后,我对游戏的理解上了一个层次,虽然我是一个曾经因游戏而丢弃了学业,变为了老师口中的「问题学生」,所以在曾经很长的一段时间里,因为被「伤害」过,所以对「游戏」本身带入了自己很多的偏见与误解。
甚至有一段时间我对身边的同学如此沉迷于游戏本身,我一直是抱有一种「游戏是毒药」的态度去看这件事。但我现在发现「游戏」,是一件可以真正意义上去定义一个属于你自己「世界」的东西,这跟之前做 app 的理念是意义的,我们可以给用户去定义如何使用这个 app,去定义用户可以在这个 app 中进行的操作。
在「游戏」的世界里,我们完全可以从一个更加底层的角度去描述、去定义,而不再局限于「功能」本身,开始从教育我们的用户如何行走,如何阅读,如何使用某种工具,做某件事情时需要用上什么条件去实现等等,这些事情完全可以由游戏开发者自己出发,通过他自身了解这个世界的角度,了解这个社会的程度,在自定义的游戏世界中描绘出他真正想要表达的东西。
在上周二我司邀请到了陈星汉做了一个分享,在他的分享中我真正了解到了如何通过游戏去描绘出自己的世界观,如何去讲述自己对这个世界的理解,我非常感谢他,让我重新对「游戏」有了一个全新的认识,同时也把游戏作为了一个我今后发展努力的方向。
游戏故事
在公元 4666 年,地球已完全不适合人类居住,那个我们曾经的美好家园已经被猫星人控制,因为在 2020 年末发生了一件事情,导致人类社会生存的压力开始变得爆炸,使得更多的人养了猫咪,后续发展到 75 亿人总共饲养了 150 亿只猫咪,那么,就是它消灭了人类吗?
不,事实上,是他们的狂妄结束了他们的统治。他们相信自己是一切造物的主宰,他们污染水源,占有土地,扼杀天空。最后,根本用不上什么核冬,只剩下他们孤芳自赏带来的漫长深秋。
“不,他们只是犯傻作死了自己。”
皮筋儿跟随幸存的大部分人类踏上了寻求殖民地的征途,但是在茫茫宇宙中搜寻一个可供长久生存的殖民星球是一件多么困难的事情啊!甚至都无法保证最基本的需求,能量的获取皮筋儿只能通过获取击落的陨石或者其它小星球,通过能量转换器提取碎石中的基础元素,进行二次加工改造。
好在皮筋儿最终还是找到了属于他的殖民星球,取名为「蜗牛星」,为了搭建属于自己的星球,皮筋儿开始没日没夜的储备基础原料,甚至在梦中,都在为自己的星球努力着。
以上就是第一版小游戏的故事背景,很存粹,简单来说就是皮筋儿要不停的努力获取原材料,构筑自己的星球。这就是「蜗牛睡不着」游戏的本质。
目前该游戏可在 AppStore 进行下载:「星球罐子」app 下载地址(我也不知道能存活多久🤔
总结
从以上我所讲述的内容,可以发现做游戏从来不缺实现游戏的工具,却的是对游戏本身的理解,对一件事情的理解有多深,从侧面所反映出去做这件事时所产生的实际影响就有多大。
因为这个游戏会花费比前两个小游戏多得多的时间,并且为了达到一个更加完美的体验,我会专精于一些小点不放过,正是因为之前在实现这个小游戏的过程中,它教会了我很多,我也想把这个游戏教会我的东西带给大家。
在这个游戏中,我们已经完成的内容有:
- 游戏讲解;
- 熟悉 2D 编程;
- 刚体碰撞与检测;
- 小球的发射与方块的消除;
- 游戏逻辑完善。