Conan建筑
流放者柯南那种建筑功能的实现记录
KiUrahara
哦吼~!猿类,这就是简述。
展开
-
双端验证 注意的点
bug原创 2022-10-29 10:58:13 · 121 阅读 · 0 评论 -
Conan建筑 —— bug排查
自动化bug测试,记录复现步骤原创 2022-10-27 16:52:18 · 127 阅读 · 0 评论 -
Conan建筑 —— 服务器优化 建筑碰撞数据_获取攻击范围内的建筑
服务器计算攻击范围内的建筑原创 2022-09-28 15:54:20 · 229 阅读 · 0 评论 -
Conan建筑 —— 服务器优化 建筑碰撞数据
优化服务器建筑数据原创 2022-08-30 19:13:51 · 144 阅读 · 0 评论 -
Conan建筑 —— 建筑预览
复制柯南建筑原创 2022-08-30 16:19:41 · 97 阅读 · 0 评论 -
Conan建筑实现 —— 服务器逻辑接口
服务的逻辑比较清晰,不像客户端,要写很多表现原创 2021-11-08 20:31:16 · 437 阅读 · 0 评论 -
Conan建筑实现 —— 快捷建造
最近策划又给整活了——主要是看见创造与魔法那种建造方式,想要一个类似的建造模式。原创 2021-09-10 16:39:14 · 416 阅读 · 0 评论 -
Conan建筑实现 —— 最近实现的总结
来源:好像是我们策划要做副本,然后想把自己建的建筑框进副本里,就直接当副本地形建筑编辑器了。进而又有了蓝图的想法,怕是想在游戏里卖建筑成品。。。。有难点的地方:数据统一导出是没有什么问题的,有个比较烦的就是:假如我建了一个小房子,可是我在用的时候又想换朝向,这样就得处理所有建筑的旋转了。这样就有个问题,我之前在实现的时候,家具和工具台是有人与角度旋转潜力的,然而这样的话,家具和工具台就要做非统一选择规则的实现了,还好现在需求还到任意角度。。。。实现: 之前讲建筑实现流程的时候说了,在建筑摆放阶段(f原创 2021-07-12 15:48:42 · 87 阅读 · 0 评论 -
Conan建筑实现 —— 优化方式思路
我们目前有 40*40*6 的建筑块。极限情况下四面都有墙,那就有 arroundCount = (40+1)*(40+1)*(6+1) 的材料块 和40*40*6 个支柱。当然这种是没办法建造的,理论存在而已,玩家有空间才能去建造,但是总量也是个不小的数目。要考虑优化的方面有哪些:数据传输量大,渲染合批。数据传输量大:1、可以对字段进行压缩,不需要用float来表示位置,可以使用一个int来表示:固定的位置+实际偏移百分比(家具、工具台采用的方式,会有些许的误差) 或者 固定位置 + 当...原创 2021-03-08 15:18:45 · 127 阅读 · 0 评论 -
Conan建筑实现 —— 体素化碰撞模拟编辑器
最近刚把建筑体素化碰撞编辑器写完,大概样子是这样——图1~~~因为建筑的旋转和摆放都是确定的,为了模拟用碰撞检测效果,就要把建筑的mesh用体素化的小立方块描述。图2就是对一个工具台进行了体素化碰撞,红色是有效碰撞区域,当红色部位的数据块被占用,就说明不允许建造。白色加红色是工具台成功建造完成后,要对当前位置进行数据块进行占用填充。绿色部分是当绿色部位全部被占用则说明当前工具台是完全接地的。图1 ...原创 2020-12-09 19:48:14 · 336 阅读 · 0 评论 -
Conan建筑实现 —— 魔方工具
这篇要讲的是在开发过程中,我想到的一个批量刷建筑材料信息给建筑单位的辅助配表工具。 它(魔方工具)要解决的问题是这样的:就拿墙来举例吧,墙在建造到固定的位置的时候,要把自己提供的连接位置刷新到建筑单位里。这样又带来了一个问题,假如墙的上边是一个提供的连接位置1(建筑单位的定义位置为准),那他就会把当前所在的建筑单位的1号位置暴露。之后比如有一个浮动的天花板(也就是建筑时候,玩家当前操作的天花板),需要1、2、3、4其中一个位置才能满足建造。这时正好墙提供了建筑单位的1号位置。因此天花板可以...原创 2020-10-17 15:20:59 · 148 阅读 · 0 评论 -
Conan建筑实现 —— 架构方面
架构方面: 1、 一个SceneMgr类:来管理场景和建筑的数据交换、互动、调用等。提供了建筑对外的操作接口。由于最初是用是ILRuntime方式的热更,所以初版就是用了C#开发,后期项目转lua,建筑功能没有跟着转,主要是当时建筑还没有成形且体型比较大。 2、一个建筑单位的类:用来存储当前建筑单位的固定位置数据。比如包含了那些建筑材料,提供了哪些连接位置,哪些空间位置被占用。 3、一个建筑数据基类:声明了基本建筑材料的读表数据。是一个存储数据的类,要确保数据冗余,因为会有建筑材料数量...原创 2020-10-09 17:07:28 · 127 阅读 · 0 评论 -
Conan建筑实现 —— 结构:
实现 结构: 数据存储:在规划的时候,说了每个建筑材料要根据旋转等级来确定,实际在建筑单位里到底是什么样的。所以我们需要一个存储建筑材料的建筑单位。 为了方便获取到实时运算的数据,我们要建立分别根据建筑材料的占用信息做key,建筑材料当做值的列表,来表示当前空间位置被哪个占用;也要建立根据建筑材料的提供的位置当做key,一个建筑材料列表当做值,来表示那些建筑材料给这个连接位置提供了连接位置。 每个建筑材料里面存储了提供位置处的所有建筑单位,所以这里使用的是当前建筑材料提供的...原创 2020-09-28 15:42:01 · 102 阅读 · 0 评论 -
Conan建筑实现 —— 主流程
实现 主流程: 我们看了市面上很多跟建筑有关的游戏,有很多模仿Conan的。很少有Conan建造的那种流畅感。其实要达到Conan的那种流畅感,需要更多样性的视点控制。 所以,我会选择在主流程上,需要有一个最远点,给予一个由远到近的以某个合适的步长,来缩进视点。在建筑材料类里定义了判断当前视点是否可以建造的方法。在这个判断方法中,要实现的是当前视点属于哪个建筑单位,建筑材料占用的位置在这个建筑单位中是否已经被占用;这个建筑单位是否能提供这个建筑材料需要的连接位置;且能提供连接位置的地方是否...原创 2020-09-26 15:19:07 · 161 阅读 · 0 评论 -
Conan建筑实现 —— 服务器相关
实现: 首先分析功能实现上的分工吧。我们要按防作弊来做,所以服务器是要进行验证是否能建造的判断。 就规则来说,承重规则是建立在连接规则之上的,其他几个都是相互独立的。 所以有没有机会和服务器分工呢?比如把规则进行分配完成。其实就最后完成来说吧,不建议分配完成,主要是两个人沟通顺畅思路一样还好,差一点都会在之后的功能叠加上被放大。我们项目的整个流程和数据存储都是前端确定,因为前端表现更知道需要什么吧。我们的打算就是前端先把整个功能写出来,后端前期只做存储,之后再功能完整后再进行代码移植...原创 2020-09-26 14:26:14 · 128 阅读 · 0 评论 -
Conan建筑实现 —— 基本思路
建筑规划:在观察柯南的建筑方式的时候,很容易能归纳出几个通用的规则:1、占用;占用就是空间的占用,就像墙占用了某个竖直的面,护栏就不能再建造到这个竖直面,他两在配表里是有互斥关系的。再比如柱子就是占用中心点,楼梯也是对中心点有占用。2、连接;连接就是建材模拟真实世界的样子有对应的连接点。比如天花板就会给墙提供连接位置,也会给柱子提供连接位置。3、载重;载重就是用来限制横向宽度的方法。4、立方格:以一个长宽高都相等的立方体作为基本网格或者叫体素的单位,进行建筑物(建筑材料)的填充;5、碰撞模拟:原创 2020-09-25 18:51:46 · 307 阅读 · 0 评论 -
Conan建筑实现 —— 初步实现
这是实现后的几个效果图:原创 2020-09-25 18:47:21 · 154 阅读 · 0 评论