前言:现在负责新开的SLG项目,趁现在还没有完全立案忙里偷闲讲一些SLG地图相关的开发经验与心得。这篇文章主要目的是分享我在项目中遇到的一些问题,温故知新,同时也算是抛砖引玉,希望能跟各路大佬一起优化方案。

现在这篇主要是讲大地图相关的一些方案和经验。PS:现在项目处于立案阶段,以下所说方案不一定能够满足项目的所有需求

分析

地图分两块:一、表现,二、数据

数据分两种:一、本地,二、网络

地图上的表现主要分三种

一、建筑、NPC等

二、 地表、山体、水、各种地形

三、特效相关(天气系统,各种特效)

地图上的数据主要分两种

一、配置在网格上

二、配置在配表上

(当然以上两种可以配合使用)

重点

表现和数据分层

策划的表现及数据配置

美术的表现及数据配置

数据之间的分层

相关的性能

开发软件:Unity2019.4

一、表现

一、建筑、npc相关

分析:u3d自带的网格系统功能已经比较齐全,获取网格以及坐标转换或者说网格整体的配置等功能有开放的接口及配置,能够满足大多需求。同时unity有自带Tile Pattle(网格画板系统) 用于网格的可视化操作。此系统主要是用于地图表现及数据的配置,原生的系统以及基本满足策划与美术的配置需求减少开发时间,同时该系统也开发不少接口,能够让开发人员重写画笔方法以及瓦片编辑相关的操作。

方案:参考现在市面上的slg游戏,基本有建筑和npc等物体。基本可以使用unity上面的Tilemap(网格系统) 进行制作。

注意点:

支持正方形和菱形瓦片的创建。

支持瓦片旋转,配合摄像机产生透视效果

Tile Pattle的一些基础的接口

画笔菜单

一些重写接口

二、 地表、山体、水、各种地形

分析:这部分比较杂可以有各种各样的实现方案,主要还是要按需求进行制作,比如说可以编辑的网格水,流动和河流,3D的山体,以及一些地形,地表。

方案:如果是水流、河流的话可能就是 Particle System(粒子系统) ,如果是可以编辑的范围的水流的话可能就要重写下GridBrush(画笔),或者说使用Shader去制作。如果是3D物体的话可能就要用到Terrain(地形系统),使用DDC(数字内容制作)相关软件(Maya、3DMax、Blender、Substance全家桶等等...)

注意点:最好不要用太多3D物体,大地图是slg的一个核心系统,同时大地图的性能优化一直是个问题。而且如果为了节省性能使用低模的3D模型,在拉近时的表现有时会低于2D的(这里是参考了海外有上线的某SLG游戏)。

最后说一下地表,分开说是因为这部分大概会比较固定。

方案1:网格拼凑

方案2:图片(精灵)地表

分析:使用方案1网格的话,不太利于表现和美术资源的制作.首先只能一块块拼接,在交界处肯定会不太和谐(地表肯定是重复的),而且美术制作的时候还需要把原图出来后再分成一张张网格状图片,制作成本加大。后续替换地表时也是个问题,只能一张张替换。可能就地表比较简单时使用。

综合以上这边使用的是方案2。理由上面说:符合传统美术资源制作流程和方便后续迭代。然后这里面的平铺方案有两个,一个是使用利用无缝滚动实现地表绘制。

二是Sprite配合Shader进行平铺。先把Sprite的WarpMode中的Repeat,这样对超出的uv值进行重复采样。然后再使用一个可以普通采样的shader在属性面板上加上参数配置再进行即可(这里给出个简单的shader)

Shader "Custom/Scroll" {Properties{_MainTex("Texture", 2D) = "white" {}_Color("Color", Color) = (1,1,1,1)_Scroll("Scroll", Vector) = (0,0,0,0)}SubShader{Tags { "RenderType"="Opaque" }LOD 100Lighting OffPass {CGPROGRAM#include "UnityCG.cginc"        #pragma vertex vert#pragma fragment frag#pragma target 2.0float2 _Scroll;sampler2D _MainTex;float4 _MainTex_ST;half4 _Color;struct a2v{float4 vertex   : POSITION;float2 texcoord : TEXCOORD0;};struct v2f{float4 vertex   : SV_POSITION;float2 texcoord : TEXCOORD0;};v2f vert(a2v v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);o.texcoord.x += _Scroll.x;o.texcoord.y += _Scroll.y;return o;}half4 frag(v2f i) : SV_Target{half4 col = tex2D(_MainTex,i.texcoord);return col * _Color;}ENDCG}}
}

通过调整scroll参数进行位移,这个优点是只有一张图个人觉得是最好的方案了。但是要计算它的滚动速度,这里给出一个我个人用的公式。

X轴速度 = ((1 / 地表宽度) * 100 )+ 摄像机的x位移

y轴同理,这里的100是unity的默认设置

 三、特效相关(天气系统,各种特效)

分析:特效相关的基本就是一个怪物的动效,主城的防护罩之类的特效,然后还有就是天气系统。 前者需要逻辑触发所以基本不需要配置。后者也是需要逻辑配合,制作的话是使用Particle System(粒子系统),后面我会写一篇关于天气系统的分享。

二、数据

一、本地

分析:这里本地基本指的是策划在大地图上绘制的数据位置,然后配合配表中的数据项使用。

方案:基本流程就是策划在Tile Pattle(网格画板系统)使用画笔Brush(可自定义),在Tile上面点出数据,然后开发人员给个转换选项,把配置转为数据。(这边使用的json)

注意点:这里的数据配置是跟表现是分层的,同时数据之间也要分层。主要两点,可以保证数据之间区分,同时也能分开导出数据。以后如果有某一种数据废弃那就直接不导出不使用即可。

二、网络

分析:如果是地图随机生成之类的话不需要配置,但通常有禁止行走,禁止迁城等关乎数据的格子是需要前端配置的。

方案:导出数据共享给后端即可,这里使用json也是因为前后端好解析数据。

三、结语

这一次主要是分析了一下大地图表现以及数据配置的一些大体方案,其中很多细节都没有提及(主要是性能优化相关),下一篇打算说一下大地图的一些业务框架以及实现时的一些细节。

SLG项目开发经验一_大地图方案相关推荐

  1. SLG项目开发经验二_大地图设计与实现

    前言:这部分主要讲的是大地图中的一些业务框架设计,和实现上的一些经验. 开发软件:Unity2019.4 正文: 先分析一下大地图上拥有的元素:地表.边界线(区域).军队.行军线.网格物体.景观物体. ...

  2. 大数据项目开发案例_大数据分析技术——项目案例2(房价数据分析上)

    1 二手房房价分析简述 在现在这个社会,房子成为绝大多数人心中难以抹去的痛:不仅在于它的价格高不可攀,也在于我们多少有些囊中羞涩.若不是得益于亲朋好友相助.父母相帮,估计依靠着我们这点微薄的薪水去购房 ...

  3. 大数据项目开发案例_大数据开发相关术语解析

    Java['dʒɑːvə] 当前软件开发行业应用最广.就业量最大的编程语言,在各类编程语言排行榜长期位列第一.是企业软件开发的首选语言,也是Android系统的开发语言. Java吸取了C++语言的众 ...

  4. 大数据项目一般金额多少_大数据分析师年薪一般多少?学什么专业才能从事大数据?...

    近几年,大数据为各个领域带来了全新的变革,大数据的重要性越来越被企业和国家所看到,大数据工作者的需求再次被无限放大,他们的薪资和社会地位也在不断上涨.马云在演讲中就提到,未来的时代将不是IT时代,而是 ...

  5. 大数据项目开发案例_大数据分析技术——项目案例1(猫眼电影数据分析上)...

    壹 猫眼Top100电影数据分析概述 从这一节开始,我们就综合利用已学到的一些分析技术来尝试做一些比较复杂的实际数据分析项目.在这些实际的项目案例中,我们将会看到一个完整的数据分析流程:数据清理--数 ...

  6. 大数据项目一般金额多少_大数据工作月薪多少 就业前景好不好?

    大数据分析员一个月的薪水可以达到1万5左右,数据分析员的薪水更高,可以达到20000元/月.工程师有更多的一般工作经验,薪水也更高,年龄在30-50万是很正常的事情.我国大数据的发展还不成熟,这方面的 ...

  7. 大数据介绍项目流程_大数据介绍

    大数据介绍项目流程 About Big Data 关于大数据 什么是大数据?(What is Big Data?) In modern world, there are many big proble ...

  8. 大数据、大地图与地理信息产业的发展_孙世友

    大数据.大地图与地理信息产业的发展_孙世友 作为大地图和大数据之间相互促进,如何为地理行业进行推进?大数据的发展必将促进地图行业的创新发展,大地图的产生更能提升大数据的价值.大地图是融入了大数据的深层 ...

  9. 大数据产品开发流程规范_大数据类项目的项目管理流程是怎样的?

    1.大数据落地的难处 首先,难在大数据技术端和市场应用端的信息不对称.大数据技术端可能存储着海量的数据,可能掌握着先进的计算和分析挖掘技术,但是并不了解市场的需求痛点,或者无从发力,或者闭门造车.而市 ...

最新文章

  1. android builder模式 插件,如何在Kotlin中实现Builder模式?
  2. Caffe RPN :error C2220: warning treated as error - no 'object' file generated
  3. NPOI “发现 中的部分内容有问题,是否要恢复此工作薄的内容?如果信任此工作薄的来源。。。”的问题的解决方法...
  4. matlab二维谐振子,基于有限差分法求解的二维谐振子的MATLAB程序如下。哪位大神能帮我做个注明啊,完全看不懂啊,,急...
  5. - 动规讲解基础讲解五——最长公共子序列问题
  6. 河南高中计算机会考excl,高中信息技术会考EXCEL知识点.pdf
  7. 2GB显存畅玩 DeepFaceLab更新至2019.12.29
  8. 获取股票交易数据的Tushare的使用方法
  9. oracle中删除级联方法,Oracle 外键级联删除
  10. 如何修改 Kubernetes 节点 IP 地址?
  11. 如何把两个PDF合成一个PDF文件
  12. Android从网页中跳转到APP
  13. Mysql中自定义函数的创建和执行
  14. 金堂县五月花计算机学院,成都五月花高级技工学校计算机专业引领未来
  15. IK-analyzer添加搜狗词库
  16. Qt Designer设置背景以及背景图片
  17. 晶振作为电子产品“心脏”关键部分,究竟是什么原理起到什么作用
  18. 泰雷兹高科技赋能全球最安全的电子护照之一,泰国公民咸受其益
  19. Web大学生网页作业成品 bootstrap响应式网站开发 基于HTML+CSS+JS+Bootstrap制作火锅美食网站(4页)
  20. HashMap和有序LinkedHashMap实现对比

热门文章

  1. GOF-Java基础知识和J2EE框架知识之间一座隐性的桥
  2. 计算机怎么没有word文档,【2人回答】电脑上没有Word文档怎么办?-3D溜溜网
  3. 教你查看所有快递物流的最后更新时间
  4. 孪生再世代表数字几_黑暗传说之再世狼人
  5. 计算机专业进农商行还是电信,农商行好进嘛?为什么那么多人选择报考农商行?...
  6. jQuery节点操作
  7. 荣耀V30这款5G手机到底值得买吗?说说我的看法
  8. JedisCluster详解
  9. 索尼android 8,简直良心!索尼正式宣布升级 Android 8.0 计划
  10. php7.4自定义扩展的编写Windows篇