首页 > 其他分享 >2D游戏地图的设计思路

2D游戏地图的设计思路

时间:2024-01-18 10:57:26浏览次数:23  
标签:游戏 地图 物件 2D 地表 绘制 思路

2D游戏一般按玩家视角可以分为:侧视、俯视、斜45度。横轴游戏一般都属于侧视;俯视一般常见于一些小游戏,号称上帝视角;斜45度就是所谓的2.5D,又称为伪3D,用2D的技术产生3D的效果,主要是看美术绘制的贴图。视角不同,游戏场景的设计是有所差异,今天主要总结下前一周使用Tiled制作地图的一些思路,想了想这些视角应该都是适用的。

 

设想一下游戏场景中的元素:

  • 草地、沙滩、湖泊。
  • 高大的树木、房子。
  • 桥梁、城墙。
  • 白云、雨、雪。
  • 可以访问的商人或功能性NPC。
  • 地上跑来跑去的小怪物。
  • 天空中飞鸟。
  • 等等。

如何设计一个支持上述元素的地图结构?下面给一个简单的思路。

元素分类:

  • 地表(Tile):使用地表(Terrian)铺成的,位于物件之下或之下。一般位置都是固定的,可以静态也可以动态。如:草地、沙滩等,湖泊等。湖泊往往要显示为水波动的效果。
  • 物件(Object):在地表上面或下面、规则或不规则、位置固定或不固定的东西。如:树木、房子、NPC、怪物、飞鸟等。物件的显示需要根据其位置决定它们的遮挡。如:角色走在一棵大树的后面,就需要先绘制大树然后角色;角色移动到大树的前面,则需要先绘制角色。

地图分层:

为了支持丰富的场景元素,2D地图一般会采用分层结构。下面是一种简单的分层设计,可自行根据需求进行调整。

地表分层:

  • 底层地表(Lower Tile Layer):用来放置最底层的地表元素,如:草地、沙滩。物件一般会绘制于其上。
  • 中层地表(Middle Tile Layer):放置一些细节性的地表元素用来丰富地表,如:地图衔接、边界、装饰地表之类的。
  • 上层地表(Up Tile Layer):可以用来实现一些烟雾效果,或者高大的城墙。上层地表绘制在所有物件之上。

物件分层:

  • 地上物件(Ground Object Layer) :依附在地表之上的,如高大的树木、房子、NPC、怪物等。
  • 通过物件(Pass Object Layer):绘制在地上物件之上或之下,为了实现特殊的一类需要穿越的元素,如桥梁、城墙的门洞等。
  • 天空物件(Sky Objects):绘制在所有物件和地表之上,如:天空中的飞鸟。

绘制顺序:

  1. 底层地表
  2. 中层地表
  3. 地上物件 (第一层)
  4. 通过物件
  5. 地上物件 (第二层)
  6. 上层地表
  7. 天空物件

通过以上这样的分层和元素划分,基本上能满足RPG类游戏的各种地图需求。当然也可以简化下,比如3,4,5简化为地上物件一层即可。3,5的存在是为了支持,站在城墙上和城墙下。当然每一个物件层,遇到位置变化的游戏元素,若角色,跑来跑去的怪物,需要根据位置决定其绘制顺序。对于2D游戏,最简单的判定方式就是根据Y坐标。

制作游戏地图的工具,我选择Tiled,一个免费开源的工具。可以满足各种各样的需求,当然技术牛逼,时间充裕,阵容较大的团队自行开发也未尝不可。后续,会整理下Tiled的用法,和代码层面使用Tiled地图的方法。

以上是对2D分层设计的一些粗略想法,记录自己的思考,并供参考。

标签:游戏,地图,物件,2D,地表,绘制,思路
From: https://www.cnblogs.com/micenote/p/17972030

相关文章

  • Unity 游戏中的战斗系统的架构与设计
    很多刚开始做游戏的小伙伴感觉战斗系统是一个比较麻烦的部分,不知道如何设计,角色很多,职业很多,技能有好几种,还有装备相关的东西。今天这篇文章详细的讲解一个战斗系统应该如何架构与设计,你看完并搞懂它,战斗系统的架构与设计对你来说再也没有难度了。首先我们先来上一张架构图: ......
  • IGC的底层核心结构Transformer是如何彻底改变NLP游戏规则的?OJAC近屿智能带你一探究竟
    没有Transformer,就没有NLP的突破,听起来有些夸张,但事实确实如此。什么是Transformer?Transformer是一种基于注意力机制的神经网络架构。可以用于处理序列数据,被广泛应用于翻译、识别等任务。这种模型的主要特点是使用自注意力机制和位置Embedding来提升语言的表达能力。Transformer模......
  • Unity3D 游戏服务端哪些模块可以做成无状态详解
    Unity3D游戏服务端是指在使用Unity3D引擎开发的游戏中,负责处理与游戏客户端的通信以及游戏逻辑的服务器端。在设计游戏服务端时,有一种常见的设计模式叫做无状态模式。本文将详细介绍Unity3D游戏服务端哪些模块可以做成无状态,并给出技术详解和代码实现。对啦!这里有个游戏开发交流......
  • Unity3D 在游戏引擎中常用的光照模型有哪些现详解
    Unity3D是一款强大的游戏引擎,其在游戏开发中广泛应用于各种类型的游戏。光照模型是游戏引擎中一个重要的组成部分,它决定了游戏中的光照效果和物体的视觉效果。在Unity3D中,常用的光照模型有Lambert光照模型、Blinn-Phong光照模型和PBR(PhysicallyBasedRendering)光照模型。对啦!这......
  • 使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第十五章到第十八章
    十五、反转棋游戏原文:inventwithpython.com/invent4thed/chapter15.html译者:飞龙协议:CCBY-NC-SA4.0在本章中,我们将制作反转棋,也称为黑白棋或奥赛罗。这个双人棋盘游戏是在网格上进行的,因此我们将使用带有x和y坐标的笛卡尔坐标系。我们的游戏版本将具有比第10章中的......
  • 使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第十九章到第二十一章
    十九、碰撞检测原文:inventwithpython.com/invent4thed/chapter19.html译者:飞龙协议:CCBY-NC-SA4.0碰撞检测涉及确定屏幕上的两个物体何时相互接触(即发生碰撞)。碰撞检测对于游戏非常有用。例如,如果玩家触碰到敌人,他们可能会失去生命值。或者如果玩家触碰到硬币,他们应该自动......
  • 使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第五章到第九章
    五、龙之境原文:inventwithpython.com/invent4thed/chapter5.html译者:飞龙协议:CCBY-NC-SA4.0本章中您将创建的游戏名为龙之境。玩家需要在两个洞穴之间做出选择,这两个洞穴分别藏有宝藏和一定的厄运。如何玩龙之境在这个游戏中,玩家身处一个充满龙的土地。这些龙都住在洞......
  • 使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第十章到第十四章
    十、井字棋原文:inventwithpython.com/invent4thed/chapter10.html译者:飞龙协议:CCBY-NC-SA4.0本章介绍了一个井字棋游戏。井字棋通常由两个人玩。一个玩家是X,另一个玩家是O。玩家轮流放置他们的X或O。如果一个玩家在一行、一列或对角线上获得了三个标记,他们就赢了。当棋盘......
  • 使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:致谢到第四章
    致谢原文:inventwithpython.com/invent4thed/chapter0.html译者:飞龙协议:CCBY-NC-SA4.0没有NoStarchPress团队的出色工作,这本书就不可能问世。感谢我的出版商BillPollock;感谢我的编辑LaurelChun、JanCash和TylerOrtman,在整个过程中给予我的难以置信的帮助;感谢我......
  • ZEW 玩游戏 游记
    是1.12,星期五。6:40开始比赛,我还没登录网站()原因是在看其他人带表?开了,第一题,不太习惯在比赛时看网页于是乎寻找pdf:done.打开一看这pdf其实挺简陋,然后教练曰马上下文件然后断网。这时LuoTianYi的电脑坏了,下不了文件hhhh。召唤教练并尝试使用ftp,先试用FileZilla,but......