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

前言

在这个小游戏中,咱们将使用 SpriteKit 框架进行开发。SpriteKit 框架是 Apple 在 2D 游戏领域着重发力的一个高性能游戏框架,关于这个框架的介绍你们查阅官方文档进行。html

关于这个游戏,能够说它打开了我对游戏开发的大门。在 17 年中的暑假,我使用了 Cocos-2dx 这个基于 C++ 的跨平台游戏框架完成了第一和第二版的「方块弹珠」小游戏,在使用 Cocos-2dx 完成游戏的两版实现过程当中,我发现了所谓的跨平台实际上就是用一门与平台无关的语言或者是自造的一个 DSL,分别针对不一样的平台,作一个与原生开发语言的 bridge,经过使用 DSL 来抹平平台差别性。git

粗略的来看,能够认为各类跨平台框架作的都是一些「脏活」,包括目前的 Flutter 也是同样的套路,只不过 Flutter 的「跨平台」作的更加完全,以往的那些例如 Cocos-2dx 等传统的跨平台框架,最终到了「渲染」这一层,终究还得走原平生台的绘制方法,但 Flutter 使用了 Google 自家调教得更加完美的渲染引擎,绕过了原平生台。github

关于这方面的内容网上已经有了大量的学习资料,而 SpriteKit 在随着 iOS8 一同推出到如今,也已然是个相对成熟的 2D 游戏框架框架了。「方块弹珠」这个小游戏我在去年五一期间使用 Cocos Creator 复刻了一个简单的 web 版,而且也已开源,你能够在这里找到,或者扫描如下二维码进行试玩。web

预备知识

在这个小游戏中,咱们正式进入到了对物理世界的模拟这一环节,可能会对数学和物理知识有一点要求,但全部人均可以搞定,而且也正是因为 SpriteKit 物理引擎的加入,可以让咱们以相对小的成本,经过使用「面向对象」的思路去操做每个模拟物理世界中的刚体。编程

对于前两个小游戏来讲,咱们只是在使用 iOS 的系统 UI 组件「强行」完成一个游戏,也不须要去考虑从一个玩家的角度去看待问题,只是在为了完成功能而去完成游戏。markdown

如今,我须要和大家一块儿从新思考,一个精品小游戏,应该考虑的问题有哪些:app

  • 故事;
  • 玩法;
  • 美术;

对于投入资本不大的小游戏来讲,基本上没法与 3A 大做匹敌,这方面我以为作的比较好的「独立游戏」有《空洞骑士》和《蜡烛人》。固然,我这里所说的独立游戏并非真正意义上的一我的独立完成,而是指一我的数很少的开发团队,若是你也对「独立游戏」感兴趣的话,能够去看下这个纪录片,我的认为算是比较接地气的把目前国内作独立游戏的开发团队描述较为真实。框架

说实话,当我看完这个纪录片后,我才真正意义上的明白了我所认为的「游戏」和这群人所理解的「游戏」的差距是多么大。今后之后,我对游戏的理解上了一个层次,虽然我是一个曾经因游戏而丢弃了学业,变为了老师口中的「问题学生」,因此在曾经很长的一段时间里,由于被「伤害」过,因此对「游戏」自己带入了本身不少的偏见与误解。工具

甚至有一段时间我对身边的同窗如此沉迷于游戏自己,我一直是抱有一种「游戏是毒药」的态度去看这件事。但我如今发现「游戏」,是一件能够真正意义上去定义一个属于你本身「世界」的东西,这跟以前作 app 的理念是意义的,咱们能够给用户去定义如何使用这个 app,去定义用户能够在这个 app 中进行的操做。oop

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

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

游戏故事

在公元 4666 年,地球已彻底不适合人类居住,那个咱们曾经的美好家园已经被猫星人控制,由于在 2020 年底发生了一件事情,致使人类社会生存的压力开始变得爆炸,使得更多的人养了猫咪,后续发展到 75 亿人总共饲养了 150 亿只猫咪,那么,就是它消灭了人类吗?

不,事实上,是他们的狂妄结束了他们的统治。他们相信本身是一切造物的主宰,他们污染水源,占有土地,扼杀天空。最后,根本用不上什么核冬,只剩下他们孤芳自赏带来的漫长深秋。

“不,他们只是犯傻做死了本身。”

皮筋儿跟随幸存的大部分人类踏上了寻求殖民地的征途,可是在茫茫宇宙中搜寻一个可供长久生存的殖民星球是一件多么困难的事情啊!甚至都没法保证最基本的需求,能量的获取皮筋儿只能经过获取击落的陨石或者其它小星球,经过能量转换器提取碎石中的基础元素,进行二次加工改造。

好在皮筋儿最终仍是找到了属于他的殖民星球,取名为「蜗牛星」,为了搭建属于本身的星球,皮筋儿开始没日没夜的储备基础原料,甚至在梦中,都在为本身的星球努力着。

以上就是初版小游戏的故事背景,很存粹,简单来讲就是皮筋儿要不停的努力获取原材料,构筑本身的星球。这就是「蜗牛睡不着」游戏的本质。

目前该游戏可在 AppStore 进行下载:「星球罐子」app 下载地址(我也不知道能存活多久🤔

总结

从以上我所讲述的内容,能够发现作游戏历来不缺实现游戏的工具,却的是对游戏自己的理解,对一件事情的理解有多深,从侧面所反映出去作这件事时所产生的实际影响就有多大。

由于这个游戏会花费比前两个小游戏多得多的时间,而且为了达到一个更加完美的体验,我会专精于一些小点不放过,正是由于以前在实现这个小游戏的过程当中,它教会了我不少,我也想把这个游戏教会个人东西带给你们。

在这个游戏中,咱们已经完成的内容有:

  • 游戏讲解;
  • 熟悉 2D 编程;
  • 刚体碰撞与检测;
  • 小球的发射与方块的消除;
  • 游戏逻辑完善。
相关文章
相关标签/搜索