3k 3 分钟

# UE 蓝图篇 蓝图作为 Unreal 的大杀器,为 Unreal 提供了可视化编程的能力,把一些代码层面的概念通过可视化形式实现,从而能够让艺术家和策划们实现更为复杂的逻辑。 一句话讲:让不会写代码的人,可以基于已有的内容,通过排列组合的形式实现复杂业务。 # 蓝图类型 Unreal 4 的蓝图目前有以下几种: /** Enumerates types of blueprints. */UENUM()enum EBlueprintType{ /** Normal blueprint....
16k 14 分钟

以下为个人学习笔记整理。B 站课程传送门 # CMake CMake 是用来统一编译代码,相当于是执行编译的自动化脚本。定义 CMakeLists.txt 以后,就不需要对项目代码进行逐个的编译。 # 编译一个简单代码 main.cpp #include <iostream>int main(){ std::cout << "hello world" << std::endl; return...
4.3k 4 分钟

以下为个人学习笔记整理。参考 PhysX SDK 3.4.0 文档,部分代码可能来源于更高版本。 # PhysX——Memory Management 篇 (未完待续) PhysX 所有对象的分配都是基于 Foundation 内的 PxAllocatorCallback 完成,这里以 PsPool 作为按理简单介绍一下 先来看看 Pool 的构造函数,这里稍微有些绕: // 通过泛型模板定义好该类型的分配器 Alloctemplate <class T, class Alloc = typename AllocatorTraits<T>::Type>...
718 1 分钟

以下为个人学习笔记整理。参考 PhysX SDK 3.4.0 文档,部分代码可能来源于更高版本。 # PhysX 内置容器介绍(未完待续) 本文主要归纳了 PhysX 里看到的一些内置容器,因为用的时候每次都要确认一下,干脆做个系统记录。 # 基础容器 # Array 常规数组,支持扩容。插入时如果容量不够了触发扩容,每次扩容容量翻倍。 # InlineArray 支持提前分配好 N 个元素的 Array。 # Pool Pool 其实是一个维护多个指针的数组,其继承自 PoolBase: mSlabs:InlineArray 的数组指针,初始时大小为...
12k 11 分钟

以下为个人学习笔记整理。项目源码来自 kcp github 开源库 # kcp 源码阅读 # 收发包流程 Kcp 握手 | 挥手 规则其实是上层应用自己定义的,因此实现上五花八门,这里简单介绍一下: Kcp 握手: 客户端请求连接,服务器创建 kcp 对象,生成 conv 编号,通知客户端 客户端通过 conv 初始化 kcp,双端 conv 一致,开始通信 特殊情况: 客户端连接请求丢失:客户端未收到 conv 触发重传 服务器同步 conv 丢失:同理,客户端触发重传再次建立连接,服务器再次生成 conv 并同步 客户端发起请求后断开(未通知服务器):服务器 kcp...
2.5k 2 分钟

以下为个人学习笔记整理。 # asio 源码阅读 Boost 的 asio 库常被用于实现异步的网络 IO,在服务器开发中往往充当着非常重要的作用,是服务器开发的基础。这里主要根据个人对于 asio 库阅读后的理解和感悟,进行系统化的归纳和总结。 # service_registry 类 Service 对象的管理器,通过单链表的形式存储所有的 Service 对象。并提供了添加、查询、创建等常用接口。 fork 操作 # execution_context 类 包含一个 service_registry 对象,对 service_registry 所有接口进行了一层封装,通过...
750 1 分钟

以下为个人学习笔记整理。 # 浅谈 AOI AOI(Area Of Interest)—— 感兴趣区域。在多人在线类游戏中,通常使用 AOI 来描述一个实体的可见范围,例如周围的其他实体。一方面用于减轻客户端的压力,保证不影响玩家体验的情况下,尽可能少的显示物体。另一方面很多游戏机制的实现也依赖于 AOI,例如光环效果,怪物 AI,地雷引爆等。 # 实现方式 常见的 AOI 实现有两种: 十字链表形式 网格划分形式 # 十字链表实现 假设每个点都是一个实体,因此可以根据实体的 x,z 坐标构建一个双向十字链表如下图。 # 实体位置变更 根据对应的 x,z...
362 1 分钟

以下为个人阅读感悟。 # 亲密关系 # 人际关系的构成 # 四种依恋类型 安全性:感情上很容易接近他人,不管是依赖还是被人依赖都感觉心安。 痴迷型:希望在关系中全身心投入,没有亲密关系令我不安,患得患失。 恐惧型:和他人发生亲密接触使我不安,感情上渴望亲密却很难完全信任他人。 疏离型:即时没有亲密关系也安心,独立自主很重要,不希望依赖他人或被他人依赖。 个人评价:疏离型 + 痴迷型,感觉很矛盾... #...
3.5k 3 分钟

个人设计开发的 3D 导航寻路方案 # 3D 寻路 NavBound 基于 RecastNavigation 的 3D 场景下寻路解决方案 ——NavBound。 # 核心思想 通过构建「非障碍空间」下的八叉树,将空间分割为稀疏的立方体结构,再对立方体之间更新 connect 和 region 信息辅助 A_star 实现 3D 场景下的寻路。 # 离线数据生成规则 初始化参数配置 障碍空间体素化 非障碍空间体素化 生成八叉树 更新八叉树节点连接情况 更新八叉树 region 信息 转为 NavBound 格式 # 初始化参数配置 #...
18k 17 分钟

以下为个人学习笔记整理,源项目 github 链接。 # SoloMesh SoloMesh 的构建过程可以分为如下几步: 「Step 1」Initialize build config 「Step 2」Rasterize input polygon soup 「Step 3」Filter walkables surfaces 「Step 4」Partition walkable surface to simple regions 「Step 5」Trace and simplify region contours 「Step 6」Build polygons mesh from...