摘要:涨姿势了,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更简单,并且在保持游戏效率的同时达到了我想要的效果。
参考资料
Tilemaps_More_than_a_Grid: https://gamasutra.com/blogs/TimStoddard/20200511/362705/Tilemaps_More_than_a_Grid.php
完。
本账号系网易新闻-网易号“各有态度”签约账号