涨姿势了,Tilemap还可以这么用?

摘要:涨姿势了,Tilemap还可以这么用?

关键词:Tilemap,独立游戏,游戏场景

撰文&编辑:三二 

教你画像素画首发 | 公众号 pixelart

本文共934个字,阅读大约需要3分钟。


传统游戏中的游戏场景,是可视化地图网格Tile瓷砖。任何值(除了0或任何空白值)都表示在游戏世界中看到的Tile瓷砖。Tilemap瓷砖地图是静态的,通常,tile瓷砖是固定大小的。

这是多年来我作为游戏开发者查看tilemap的方式。

tilemap主要用于横版平台游戏。我想知道是否可以更改它们(例如,如果我想要一个可以破坏的场景),直到去年我成功了。

注意:这是我为自己的开源游戏引擎Vigilante Game Framework编写的tilemap系统。

我不会讨论代码,因为其他引擎实现起来可能会有所不同,我的tilemap系统是为了尽可能最佳处理碰撞和渲染而编写的。

任意大小的Tilemap

这是我为Ludum Dare 44开发的游戏,玩家是一个旅行者,必须尽可能快地穿过隧道。

因此游戏的主要功能之一是随机生成的隧道。鉴于它是Ludum Dare,我只有48-72小时,因此没有足够的时间来创建具有碰撞检测功能的自定义隧道系统。

我尝试创建1个Tilemap,用很小的Tile(2×2像素)完全填充屏幕,然后使用随机点和余弦插值切出隧道,使其弯曲和波动。

由于分辨率低,曲线看起来相当平滑,并且由于tilemap已经具有碰撞处理功能,因此我不必写新的碰撞系统。值得注意的是,我的tilemap系统经过优化,可以通过合并边界框来尽可能少地进行碰撞检查。

我想让隧道看起来更有趣,还添加了其他微小的Tile颜色,并制作了精美的图案而不影响碰撞边界框。结果显示出该游戏在图形上的排名高于任何其他类别。作为程序员,美术并不是我的强项。

结论:Tile的尺寸可以根据实际需要来确定

如果正确构建了tilemap,则可以使游戏场景有别于传统的Tilemap游戏。

俄罗斯方块

这是我在Ludum Dare 46之后做的Tetris俄罗斯方块复刻。

我增加了一个tilemap来存储下落的方块。如果我想旋转一块方块,只需交换Tile。

方块降落后,我要做的就是设置已经降落到板块图上的Tile,并用新的形状重置该Tile的位置。

结论:Tile可以移动

Tilemap可以用作可播放的对象,而不仅仅是场景静态功能。

总结

我想从这篇文章中得出的结论是,我们在游戏中实现的典型功能(例如tilemaps)的使用方式可能会比过去更多。

对于我提出的这两种情况,可能有更复杂但有效的方法实现,但是我认为使用Tilemap更简单,并且在保持游戏效率的同时达到了我想要的效果。


参考资料

[1]

Tilemaps_More_than_a_Grid: https://gamasutra.com/blogs/TimStoddard/20200511/362705/Tilemaps_More_than_a_Grid.php

完。

本账号系网易新闻-网易号“各有态度”签约账号



Author: pixel32