2019年3月的月度游戏:怎么了,甜甜圈?

由于什至对我来说还不清楚的原因,本月,我主演了一个2D平台游戏,名为“ What’s Up Donut?”。Donut:

我对英雄霜糖糕点的旅程有一个宏大的愿景,但是这个月我专注于制作一个小型演示。 虽然我咬的东西可能超过咀嚼(ha),但我对结果感到非常满意!

如果您想在阅读明细之前进行播放,则可以在此处的网络浏览器中进行播放。

目标

  • 了解有关Unity的Tilemap功能的足够知识,以创建一个具有基本教程内容,难度不断攀升和戏剧性结论的2D平台演示。
  • 与上个月一样,使游戏变得易于使用,足以让其他人无需额外的指导即可上游戏

范围

  • 基本的2D平台控制:左右移动,跳转
  • 根据按住按钮的时间跳到不同的高度
  • 捡起粘在甜甜圈上的巧克力粉
  • 射击洒水,让它们在发射时从甜甜圈中消失
  • 创建2–4个具有不同主题的关卡
  • 创建老板

回顾:进展顺利

达到目标

学习如何与Tilemaps一起使用是一个有趣且相对容易的过程,这使我能够将大部分时间和精力集中在创建内容上。 结果是一个具有轻松教学内容,多个不同领域和一个糟糕老板的关卡。 列表上唯一可疑的项目是“难度升级”。我没有很多人在测试这个水平,我不确定难度曲线是什么样的。

当我向人们展示此内容时,我的意思是不提供任何其他说明来确定该演示是否满足用户友好的目标。 我很高兴看到具有相当丰富的平台经验的玩家能够在无需其他帮助的情况下自行完成演示。

完成所有范围的项目

我剔除了除“ 2-4级”要求之外的列表中的所有范围项目。 但是,我所完成的这一级要比预期的要长得多。 我可以将其分解为两个或多个级别,但我选择不打乱流程,只是为了检查列表中的某个项目。

瓷砖贴图效果非常好

几年前,我尝试在Unity中制作平台游戏,但对创建关卡的难度感到惊讶。 经过几个小时的复制粘贴编辑图块GameObjects来生产少量内容后,我放弃了。 资产商店中提供了许多第三方工具,但我很乐意在具有可疑支持且没有周围社区的插件之上构建整个游戏。

幸运的是,现在情况好多了。 在2017.2版中,Unity添加了Tilemaps,它工作得很好,可以处理很多繁重的工作。 在完成了出色的教程并仔细阅读Unity的入门指南之后,我能够相对迅速地开始编写内容。

我特别喜欢的功能是能够创建“分层”图块贴图。 这使得创建平台层,在甜甜圈后面的装饰层,在甜甜圈前面显示的装饰层以及“危害”层(例如熔岩或咖啡)的创建层非常容易。 。

Unity还很好地弄清楚了每个瓦片的对撞机形状应该是什么,使创建坡道之类的东西变得非常容易:

比上个月更波兰

就波兰而言,我对“ What’s Up Donut”降落的地方感到非常满意。 我花了一些时间去购买适合主题的资产,最后找到了撒满了平台的平台,是的!

在开始建立关卡之前,我还花了很多时间玩游戏的“感觉”(尤其是跳跃)。 从一开始就锁定跳跃高度和长度之类的内容,可以更快地构建我知道可以导航的内容,而无需每次添加跳跃都点击“播放”。

学习了大量的新工具

除了弄清楚磁贴图之外,我还学习了很多工具:

皮斯克尔

What’s Up Donut的绝大部分艺术品资产都来自按需付费的网站Kenney.nl。 前面提到的糖果图块效果非常好。 无视一个大怪癖(由于某种原因,图块是70px x 70px吗?),他的站点上可用的资产质量和多样性给我留下了深刻的印象。

对于Kenney.nl所没有的一些我需要的东西,我亲自创建了占位符资产。 输入Piskell,这是一个基于浏览器的精灵编辑器,用于创建像素画。 我无法说说它的功能与更先进的工具相比,但是它很容易学习,对于初学者来说很完美。 我能够弄清楚如何独自使用所有功能,并很快就开始运转。

电影机

最初,我认为将摄像头设置为仅停留在Donut的中心就足够了,但是我很快意识到对摄像头进行细粒度控制可能有用。 幸运的是,有一个很棒的工具叫做Cinemachine,可以轻松使用高级相机功能。

一个低调但有价值的功能是可以将相机限制在一定范围内。 当Donut接近水准线边缘时,用无法触及的深渊填充屏幕的一半会很尴尬。 借助Cinemachine,您可以在水平周围创建围栏,以限制摄像机的漂移范围:

让人想起超级马里奥世界或超级英雄,有一瞬间,甜甜圈掉下了隧道,同时避开了敌人并收集了好东西。 当相机对准甜甜圈时,导航令人沮丧。 但是,使用Cinemachine的“虚拟摄像机”,我可以创建第二个具有较低垂直偏移的摄像机。 当沿着隧道跳下时,一个简单的脚本会在居中摄像机和偏移摄像机之间平稳过渡:

最后,Cinemachine使创建CaMeRa ShAkE变得容易。 这对于使老板相遇更有史诗感非常有用。

我也很幸运能偶然发现这一点。 我刚巧看到Unity的tilemap简介中提到了它!

DOTween

有许多可用于Unity的补间插件。 我最终选择了DOTween来创建“节奏”敌人和老板的猛击攻击之类的东西。

DOTween还允许用户通过回调将自定义代码添加到补间的生命周期中的各个点。 通过在补间中添加OnComplete回调,可以轻松地在老板摔倒到地面时摇动相机:

  transform.DOMoveY(smashDistance,smashTime).OnComplete(()=> { 
cameraShakeImpulseSource.GenerateImpulse();
});

专家提示:如果要对补间进行任何操作 ,请务必查看该备忘单以获取缓动功能的直观指南。 DOTween开箱即用地支持所有这些功能,使用它们可以使您的游戏更加流畅。

TextMesh Pro

这个插件非常成功,最终被集成到Unity中。 TL; DR使得处理文本变得更加容易。 我几乎不了解它的功能,但它使向文本死掉的轮廓添加轮廓变得简单,而不必为GameObject添加另一个“ Outline”组件而感到困惑:

回顾:进展不顺利

游戏设计要点:不要使技工超负荷

甜甜圈可以捡起并撒上火:

我绝对喜欢这个技工,以至于我计划像在《超级马里奥兄弟》中的硬币一样在整个关卡中撒这些(对不起!)。 但是,我对洒水有些兴奋,他们最终选择了三重职责:

洒机械师1:解锁门控内容

为了成为最终的老板,您需要洒些水(霜?)。 在关卡的早期,您会看到走廊被苍蝇挡住:

摆脱这个警惕的监护人的唯一方法是武装起来并结冰。

洒机械师2:弹药

如果您有足够的洒水来击落嗡嗡作响的苍蝇,那么游戏中稍后会有平台化的部分会更加容易。 这意味着我必须小心,在整个关卡中有多少洒水可用,以激励玩家明智地使用它们。

洒机械师3:煽动行动

最后,大量的拾音器如洒水可以鼓励某些类型的动作。 超级马里奥兄弟(Super Mario Brothers)始终通过硬币放置来做到这一点。 从玩家的角度来看,“硬币”的目的是赋予额外的生命:

从关卡设计师的角度来看,它们可以作为导航提示……

……鼓励探索……

……并鼓励玩家冒险:

所有这些好处都取决于一个关键假设:代币是完全可选的奖励。

如果需要硬币来解锁游戏的某些部分,则动态将完全不同,例如在《 What’s Up Doughnut》中撒些便便。 我必须小心,不要太早或太频繁地洒水。 否则,我会过早打开关卡的后期部分(因为它们充当键),或者使困难的部分变得轻而易举(因为它们充当弹药)。

故事的寓意:不要让您的硬币负担过多!

缺乏一点点抛光

尤其是:

  • 声音。 任何声音
  • 跨不同环境的多种背景
  • 当Donut失去生命时,平滑的“重置”过渡
  • 进行更多的游戏测试以消除困难
  • 拾起“甜甜圈”的更明显的含义。播放声音,为事物设置动画等。

Unity的“魅力”开始显现

这是我第一个遇到Unity问题的项目。 有些是小怪癖,有些则完全打乱了我的工作流程:

Unity 2018.2中的Tilemap错误 在场景编辑器中从调色板中选择一个图块有时会将摄像机重置为原点,迫使我一直滚动回到我正在处理的关卡部分。 这种情况经常发生,并且非常令人沮丧。 我很高兴得知2018.3解决了此问题。 但是,它还引入了嵌套的预制件,并且(在我看来)引入了笨拙的伴随工作流程。 这也确实很烦人,但我坚持使用2018.3,因为它远没有tilemap错误那么糟糕。

调整相机边界很容易。 正如我前面提到的,Cinemachine的一个不错的功能是您可以编辑一个多边形,以限制相机可以移动的位置……有时。 有时您不能这样做,在这种情况下,您必须先重置布局。

Unity将控制器操纵杆输入和键盘箭头输入完全不同。 默认情况下,箭头键具有“平滑”功能,使您按住该键的时间越长,输入信号就会逐渐增大。 对于控制器输入,情况并非如此,控制器输入立即跳到最大信号值。 因此,开箱即用的控制器和键盘输入感觉完全不同。 奇怪的。 有一种解决方法应该可以解决该问题,但是我没有设法解决这个问题。

PhysicMaterial与PhysicsMaterial2D

Unity有一个Rigidbody和Rigidbody2D。

它具有Collider和Collider2D。

有RaycastHit和RaycastHit2D。

它具有PhysicsMaterial2D,但是……

结果

我对“甜甜圈怎么了?”的方式感到非常满意。 我只完成了一个级别,但是比较长。 最终结果只花了我4分钟多的时间就完成了。 我没有安排我(两个)游戏测试者的时间,但是根据Level Up!中的经验法则,获得内容的时间通常是游戏创作者的两倍左右。 那将是8分钟,超出了我最初的预期。

在开发游戏时,有时候我本该要测试一件事,但会全神贯注地玩游戏。 这是一个令人鼓舞的问题!

您可以在网络浏览器中签出游戏或下载Windows游戏客户端。 如果您有任何想法或批评,请留下回应!

下个月

我花了一个周末的演示在PAX East为我朋友的游戏(Zarvot)设置了死斗模式。 这是一次超级有趣的体验,让我觉得尝试制作本地多人游戏会很有趣。

诚然,我已经落后于进度了。 因此,一个小型的本地多人游戏将(希望)成为使我重回正轨的完美项目!