E4fb08d3c028c97f5da6e62a7a08a6cd
Swift 游戏开发之「方块弹珠」(〇)

前言

在这个小游戏中,我们将使用 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 中进行的操作。

在「游戏」的世界里,我们完全可以从一个更加底层的角度去描述、去定义,而不再局限于「功能」本身,开始从教育我们的用户如何行走,如何阅读,如何使用某种工具,做某件事情时需要用上什么条件去实现等等,这些事情完全可以由游戏开发者自己出发,通过他自身了解这个世界的角度,了解这个社会的程度,在自定义的游戏世界中描绘出他真正想要表达的东西。

在上周二我司邀请到了陈星汉做了一个分享,在他的分享中我真正了解到了如何通过游戏去描绘出自己的世界观,如何去讲述自己对这个世界的理解,我非常感谢他,让我重新对「游戏」有了一个全新的认识,同时也把游戏作为了一个我今后发展努力的方向。

top Created with Sketch.