使用Unity构建简单的视频游戏。

我一直很喜欢游戏。 我最早的记忆之一是陪伴父亲和姐姐到一家二手游戏商店,为我们的新游戏男孩挑选出我的第一个电子游戏《 柯比的梦境 》。 当我得知游戏是由真实的人制作的时,我只希望有一天自己打造自己的游戏。

近二十年后,我在Coursera担任软件工程师,该公司是一家教育技术公司,提供顶尖大学的在线课程。 尽管在大学学习过计算机科学,但我从来没有绕过开发自己的游戏。 因此,当所有员工都面临挑战以完成Coursera专业化培训时,我立即知道我会选择哪一个:密歇根大学的游戏设计与开发。 当需要构建我的第一个自定义游戏时,我决定构建一个受Kirby的Dream Land启发的侧滑游戏。
众所周知,游戏的主题会极大地影响游戏的趣味性。 由于我的目标是学习游戏的设计和开发,而不是分发最终的游戏,因此我决定将主题设为我碰巧喜欢的两件事:小熊猫和食物。 在与“ 带有肉丸机会的阴天”不同的前提下,玩家控制着一只在屏幕上飞来飞去的小熊猫,收集从天上掉下来的神奇食物。 对于任何饥饿的动物(或人类)来说,这都是一个梦想成真,因此我将其称为“小熊猫梦想” 。

作为独立游戏开发人员,我知道我必须保持游戏简单,以在合理的时间内完成。 一旦玩家完成了介绍序列(包括跳起一系列平台),熊猫便开始飞翔。 之后,玩家可以通过收集食物而获得积分,食物会随机从天上掉下来。 这些食物中有些是鲜绿色的,这意味着吃掉它会消耗玩家一颗心。 随着时间的流逝,屏幕滚动更快,有毒食物的百分比增加。 一旦玩家失去了全部三颗心,游戏便结束并记录他们的得分(如果适用)。

该游戏的代码可以大致分为以下功能:
- 开始游戏
- 步行
- 飞行
- 滚动屏幕
- 随机产生食物
- 对食物进行编程以使其跌落
- 碰撞检测
- 跟踪心中
- 结束游戏
我能够通过本课程中较早开发的一款游戏《 Super Sparty Bros》改编许多功能。与大多数Unity游戏一样,《 Super Sparty Bros.》和《红熊猫梦》都是用C#编写的。 在课程开始之前,我从未使用过这种语言,但是语法与Java和C ++足够相似,因此并不难掌握。 一旦开始和结束游戏的核心机制就位,我添加了自定义代码以自动滚动屏幕并生成食物。 我还更新了核心游戏事件循环,以便熊猫可以行走或飞行,具体取决于当前游戏的进度。
为了专注于设计过程,我不会对脚本进行太深入的了解,但是我在下面提供了一些示例,以了解它们的外观。 我会很容易地承认我采用了一种“ hack-it-together”方法来扩展原始代码,因此从风格上讲它并不是理想的。 就是说,它可以编译并运行无错误,这就是我所要求的原型!


我游戏的另一个目标是从零开始创建子画面。 为了创建精灵,我使用了免费的在线像素艺术编辑器Piskel。

即使与其他形式的数字艺术相比,像素艺术也提出了一系列独特的挑战。 画布上的空间如此之小,要在简单性和细节之间寻求适当的平衡可能很困难。 对于上面的精灵,我增加了熊猫头相对于其身体的大小,以便为其独特的面部痕迹留出更多空间。
但是,该过程中最棘手的部分是对精灵进行动画处理。 对于玩家的头像,我创建了三个不同的Sprite集:站立,行走和飞行。
对于站立的动画,我创建了几帧上下摇动熊猫的尾巴,即使在玩家不动时也能给它逼真的感觉。

对于行走动画,我创建了一个四帧序列,该序列前后交替地移动了腿部,并从站立动画中重新调整了帧以创建更自然的过渡。

为飞行动画创建基础只需要对站立动画进行一些较小的编辑。 但是,我还添加了一些可用于正面或负面事件的框架。 由于精灵本身并没有留下太多的情感余地,因此我在角色上方使用了经典的像素气泡技巧。

绘制精灵后,我调整了Unity中动画的时间,直到感觉自然为止。

游戏中使用的大多数其他资产都包含在《 超级Sparty兄弟》中。但是,我确实为食物创建了一个额外的精灵集。 有毒的变种没有明显的精灵。 相反,我对Unity中的每种食物都应用了绿色过滤器。 唯一的例外是熊猫所钟爱的竹子,它从没有毒性,但是由于其天然的绿色而难以区分。 整rick

由于有了这一经验,我现在对如何开发游戏有了更好的了解。 像Unity这样的游戏引擎是一个很好的起点,它可以抽象出许多更复杂的细节。 即使如此,从美术,关卡设计到代码,一切都需要令人难以置信的体贴和对细节的关注。 因此,我对游戏开发人员,尤其是在内部自行构建所有内容的小型独立工作室的开发产生了更大的赞赏
以目前的形式, 《小熊猫的梦》很可爱,但是太容易引起人们的兴趣了。 为了将其转变为可投入生产的游戏,我尝试添加地形(例如山脉或平台)以及飞行敌人以躲避玩家。 另一种方法是将游戏分为多个级别,每个级别都可以具有独特的收藏品和boss战斗。
尽管目前我没有任何继续开发该游戏的计划,但我有一天自己会开发另一款游戏。 发生这种情况时,我会很高兴有这种经验。
我非常感谢密歇根州立大学和游戏设计与开发专业课程的讲师在线上提供课程。 特别是,Brian Winn详尽的教程使学习Unity变得轻而易举。
小熊猫的梦想可以在这里播放。 网页播放器在加载时可能空白一两分钟-请耐心等待!