方块世界开发日志

方块世界开发日志 [原文来自:www.11jj.com]


[好文分享:www.11jj.com]

方块世界(Tetris World)是在考试 fantasy console 的过程中实现的一个小作品,虽然小,然则在体验长进行了细心考量,这里将设计过程记录成文。

发源

差不多去年这个时候,我起头涉足游戏斥地,并在机缘巧合之下选择建造一款俄罗斯方块的变种,采用的是捏合不合类型游戏的思路。因为想捏和的器材越来越多而斥地只能在部门业余时间进行,这个项目断断续续进行了一年还尚未完成。在或许 9 个月的时候,我逐渐感受这种捏和的体式未能回到交互和体验的本源上来考虑问题,立异性照样被类型游戏局限住了。也或许是谁人时候,倏忽有一个场景浮现在我脑中:一片坦荡的原野上,多数俄罗斯方块渐渐飘落。这个场景的气氛与今朝加倍竞技化的俄罗斯方块迥然不合。或许 1 个月前我在读 indienova 的博文时发现了 fantasy console 这一门类,把玩之下发现似乎颇为适合实现这个创意,出乎意料的是,这个游戏很快地做完了。

设计

游戏的核心即为上文所述的场景,体验上要充足放松,可以相对佛系地游玩。首先确定的是需要恢弘的地图,并或许同时下落多个方块,为了在这个前提下维持俄罗斯方块的弄法,有两个问题必需首先解决:1. 若何切换方块?2. 若安在恢弘地图下消行?问题 1 仿佛对照简练,只需要增加两个切换按钮就可以了,问题 2 对照核心:因为行太长,实在是太随意发生失误了,而一旦失误想经由消上面的行来解救几乎是弗成能的,解决这个问题是游戏能够成立的关键。

方块实现

在解决两个核心问题之前,我先确定了方块实现的方案。一般用 Tilemap 实现俄罗斯方块,都邑把每种方块建模成四个 Tile 的组合,在 TIC80 里这意味着一个方块会有 24 或 32 个像素宽。因为 TIC80 总共只有 240x136 的不同率,这显然会使得地图显得很小。为此,我将方块建模成四个 2x2 方块的组合,这样地图尺寸就大大扩大。在这种逻辑下,我舍弃了原先以 Sprite 为单元单子的 Tilemap 角力,悉数采用像素运算与把握,稀奇是写了碰撞检测的逻辑。

我曾经纠结于多个方块在空中的碰撞问题,为此设想过多个方案都既不好玩又不好实现,最后决意专注核心体验避免复杂性,爽性在空中不做碰撞。

降雪机制

在早期设想的时候我曾经考虑过小精灵这个概念:小精灵按期展现,搬运方块匡助玩家填空。然而这个概念并不克在我脑中形成一幅和主场景相容的画面,显得非常克意。我也考虑过其余机制,比如稀奇方块可以形成有经久的围栏,许可在局部形成更短的行并消弭,又比如在 t-spin 等接触面积大于必然值的落地事件时触发同色消弭等。但最后我感受这些都太复杂了,“穿透”成为最可行的关键词,在考虑了几个穿透物的方案后,我回到了最初的譬喻:既然方块像雪片一样从空中落下,那雪花就是最合适的可穿透下降物。在试玩的过程中,从最低休闲起头聚积的雪花切实能冲抵大地图带来的问题。此外,降雪纯挚随时间递增的效用使得玩家即使不做把握也可以慢慢消行,加上融洽的视觉究竟,几乎超出预期地解决了游戏核心体验的问题。

方块世界开发日志


受控标识与色彩设计

在具体实现的过程中,本认为已经解决的问题 1 又冒了出来。虽然把握的切换只是两个按键的事,受控方块的标识却有多少选项。最直白的就是加框,然则因为我特别醉心于方块在夜空中落下的意象,并不克容忍加框这种光鲜的人造物来损坏沉浸感。为此只能使用不合的颜色来标识,而这需要和色彩设计综合考虑。

传统俄罗斯方块的色彩系统非常简练:每个方块一个色彩。在实际试玩的过程中,我发现这样会使得聚积的方块非常花哨凌乱,方块过多时显著损坏场景的和平感。我进展方块聚积起来具有相对协调的颜色,为此限制了色彩的个数,这使得方块起头形成更协调的更大色块。倏忽我意识到玩家或许想有意识地用方块堆出一些外形——这是恢弘地图带来的意外究竟,而当前颜色与方块绑定的做法使得玩家“涂色”时会受限于可用方块的种类。

经由一番考虑我从新设计了色彩系统,让色彩随时间而不是方块改变,每隔一段时间,系统会更调新下落方块将具有的颜色,这样玩家老是有一批同色而外形各异的方块来用,加倍随意搭建自己喜欢的图案。

方块的色彩选择的是通亮的暖色系,与之对应,受控方块的色彩自然就要选用亮色的蓝或绿。遗憾的是,这样我喜爱的亮黄+夜空的色彩对比就无法展现在视野的中央。后来我实现了下落标识的功能,这时蓝色就可以只标识不才落标识上,方块本身则贯穿原有颜色,然则我又发现在这种模式下玩家的眼睛会集中在底部,同样不会关注亮黄+夜空的色彩对比。最后这个感想只能留给任由方块下落的佛系玩家,这是游戏设计的一点遗憾。

方块世界开发日志


粒子系统

在游戏设计过程中我经常战胜实现一些花哨特效的诱惑,部门是因为 TIC80 的机能和示意力有限,这种限制其实也是 fantasy console 这类斥地情形的长处。然则我照样决意在消行这里作出最棒的视觉究竟——消行对比通俗俄罗斯方块太难了,必需要给玩家以惊喜,同时,这个视觉究竟理当既华美又同样和平,具有“不为人知地寂静发生”的感触。最后我选择了飘散的究竟,经由把握速度可以同时呈现出能量和轻盈感。

方块世界开发日志


TIC80 没有自带粒子系统,我在之前的斥地中也并没有效过此外引擎的粒子系统,或许参考了一下网上的常规设计后就爽性起头着手实验。按照单粒子单倾向移动->消散->多粒子移动->分批移动->速度扰动的顺序逐渐实现一个自然的粒子究竟。在实际把握时,我意外地发现最大的挑战来自像素本身。起头时我用浮点数按帧储蓄 x 和 y 的值,x 和 y 改变达到一个整数时就结算到位置上,事实导致移动倾向只有两种:45 度和水平,形成非常难看的折线。为此需要让 x 和 y 协调改变,在固准时间后或移动跨越必然距离后才结算距离。

粒子移动完成后,整体分布究竟的处理反而意外顺利,引入了随机速度扰动后,只需要把握随机的区间就可以实现究竟的微调。比如凭证 x 的位置改变粒子的基准速度,就可以呈现出向右方启齿的究竟。这里还有一个窍门是为了使随机数被压缩在接近 0 的区间,可以简练使用两个甚至三个平均分布的随机数相乘,我用这种处理防止闲逸的粒子扎堆。

声音系统

我进展游戏大部门时间是无声的,但一度考虑不才雪和消行时播放一句音乐。TIC80 撑持 SFX 的定制,然则折腾了好半天后我根本确信无法使用 8bit 杀青我心中的音效。我进展下雪时的音乐有一种回忆色彩,而消行时的音乐通亮而轻盈,这需要相同于钢琴的音色和相同于三角铁的音色。抛却音乐后游戏就完全无声了,作为补偿,我倏忽意识到可以给方块本身配上音符,就像玩家可以不管消行只是堆图案,他/她也理当可以不管所有储蓄的器材只进行即逝的创造。于是我为切换把握的按键加上了声音,若是下落的方块对照合适,经由横向摆布方块的相对位置玩家就可以编排出趣的乐句。虽然或许根基不会有人这么玩,这个设法照样让我非常兴奋。实际试玩过程中意外的旋律或许令旁边的人会意一笑,算是一个不错的副产品。

音符选择上,我选择了 C 大协调 F 大调给前两种颜色,高八度的 D 大调给最亮的..,红色则用 C 大调的关系小调 a 小调(和声小调)来跟尾。音阶的设计理应更花心思,但那已经跨越了我的能力局限。

设置与交互设计

我在交互上一度有过稍显新颖的困扰。比如,我执着于不实现游戏内菜单,实现的古板是一方面,另一方面,我感受这样一个世界不应该有菜单这种完全把握的意象,更何况 TIC80 的游戏自带一个游戏外菜单。然则为了不合目的的玩家能有最佳体验,我照样设计了指示物的开关(开便于游戏,关更有漂浮感),时间和分数的开关(开便于记录刷分,关避免干扰),把交互简化成两个专用的键。

键位上,TIC80 默认 a 对应 XBOX 手柄上的 X 而 x 对应 B,这使到手柄上正常的摆布把握变成了 a 和 x 的新颖把握,因而我增加了 q 和 w 来切换方块,这样的话马上下落对应的 z(手柄上的 A)就显得干扰太多了,于是我增加了回车来马上下落。

结语

我想我还会使用 fantasy console,或许是 TIC80,也或许购入 PICO-8,这些对象当然不是没有问题,比如自带的代码编纂器对习惯了 vim 的轨范员来说过于痛苦,几乎没有什么用,Sprite 编纂器也仅仅够用,与 Aseprite 这种神器相距甚远。然则它们的限制和高度集成的特点会潜移默化地塑造斥地进程,迫使斥地者络续回到游戏的核心弄法,是一个非常安适的工作情形。

有一种说法是 fantasy console 适合快速斥地原型,这点我之前一贯不太领略。因为穷困太多游戏引擎的便当功能且工作在十分低的抽象上(sprite、map、甚至像素),实现一个在此外引擎里拖拖拽拽的简练义务都或许颇费周章。现在我起头懂得它或许并非适合任何游戏的原型斥地。对于一个相对复杂的类型游戏,仅仅竖立类型的要件或许就要虚耗大量时间,然则对于弄法稀奇、衬着稀奇的游戏,所有引擎供给的功能都邑变成枷锁——对于这类游戏没有什么比直接画像素更安闲了。

不长的斥地时间却让我感触颇多。作为一个全包型且只能在业余时间进行斥地的个人斥地者,理当更多地僵持立异的自力弄法。去实现成熟的类型游戏机制当然是有益的,那些机制创立之初本身也极富创意,然则因为珠玉在前,很随意陷入繁琐的细节,反而无法充实施展创意。至少对我而言,幻想的游戏斥地是一种接近艺术创作的状况,追求的是触动,而不那么关心传统意义上的“好玩”和“吸引力”,照样理当对方针进行精简,僵持做游戏的初衷,尽快抓住和成长自己的灵感。

游戏今朝已经移植到 Love2d 引擎上,后续斥地将基于这个版本进行,TIC80 的版本已经上传到 itch.io,可以免费游玩。Love2d 版也放到了 itch.io 上,今朝只是加了封面、彩蛋和一点音乐,收费 2 刀,也进展人人撑持。方块世界开发日志下载地址:https://yarray.itch.io/tetris-world

方块世界开发日志


方块世界开发日志

自媒体 微信号:11jj 扫描二维码关注公众号
爱八卦,爱爆料。

小编推荐

  1. 1

    京东白条是什么(京东白条是什么意思有什么危害吗)

    大家好,小美今天来为大家解答京东白条是什么以下问题,京东白条是什么意思有什么危害吗很多人还不知道,现在让我们一起来看看吧!1、一、京

  2. 2

    建设银行营业时间佛山(佛山建设银行几点下班时间)

    大家好,小美今天来为大家解答建设银行营业时间佛山以下问题,佛山建设银行几点下班时间很多人还不知道,现在让我们一起来看看吧!1、根据财

  3. 3

    恋李白古诗原文(心恋李白古诗)

    大家好,小乐今天来为大家解答恋李白古诗原文以下问题,心恋李白古诗很多人还不知道,现在让我们一起来看看吧!1、不是。2、余光中《念李白》

  4. 4

    快讯 | 伊朗伊斯兰革命卫队:伊朗成功打击以色列军事目标

    新华社快讯:据伊朗塔斯尼姆通信社报道,本地时间14日凌晨,伊朗伊斯兰革命卫队起头对以色列方针动员大规模导弹和无人机袭击。据以色列媒体报

  5. 5

    大风!降温!插花镇下周有雨!

    小伙伴们注重阜阳下周要降温降雨了!阜阳景象最新估计受冷空气影响18日夜间-19日还有一次降水天色19-20日平均气温较前期下降4~6℃同时18-19日全市

  6. 6

    那个傻瓜歌词(那个傻瓜歌词韩语)

    大家好,小美今天来为大家解答那个傻瓜歌词以下问题,那个傻瓜歌词韩语很多人还不知道,现在让我们一起来看看吧!1、只爱着你 我是傻瓜吧 2、

  7. 7

    上海租车公司哪家好(上海租车公司哪家便宜)

    大家好,小豪今天来为大家解答上海租车公司哪家好以下问题,上海租车公司哪家便宜很多人还不知道,现在让我们一起来看看吧!1、上海一嗨汽车

  8. 8

    福安市公共资源交易中心(福安市公共资源交易中心招标公告)

    大家好,小伟今天来为大家解答福安市公共资源交易中心以下问题,福安市公共资源交易中心招标公告很多人还不知道,现在让我们一起来看看吧!

Copyright 2024.依依自媒体,让大家了解更多图文资讯!