摘要:
TCHAR 字符 C++支持两种字符集:即常见的ANSI编码和宽字符的Unicode编码,实际对应的字符类型分别是char和wchar_t,在不同平台环境下,我们可能需要不同的字符类型。 TCHAR就是UE4通过对char和wchar_t的封装,将其中的操作进行了统一,使程序具有可移植性。 使用TE 阅读全文
摘要:
初试准备 2020年,12月27日下午,初试结束,心情复杂。这差不多一年的初试准备总算是结束了,无论成绩考得如何(考得不好就当反面教材吧),我也希望分享自己的考研经历给后面的师弟师妹们,让他们少走些坑路,也多一份经验参考。 这一路以来,感慨甚多,首先尤其要感谢复习时那些支持鼓励我的人,我会铭记于心的 阅读全文
摘要:
概念 JPS(jump point search)算法实际上是对A* 寻路算法的一个改进,因此在阅读本文之前需要先了解A*算法。A* 算法在扩展节点时会把节点所有邻居都考虑进去,这样openlist中点的数量会很多,搜索效率较慢。 若不了解A*算法,可以参考博主以前写的一篇文章 A* 寻路算法 - 阅读全文
摘要:
目录浅拷贝、深拷贝左值、右值右值引用类型强转右值 std::move重新审视右值、右值引用右值引用类型和右值的关系左值、右值、纯右值、将亡值函数参数传递函数返还值传递万能引用引用折叠完美转发 std::forward<T>参考 C++11出现的右值相关语法可谓是很多C++程序员难以理解的新特性,不少 阅读全文
摘要:
在UE4中,项目中的所有资源都是存储在硬盘中,当需要用到资源时,则需要将其加载进入内存中使用。为了更好的表示(引用)资源,UE4提供了两种引用资源的方式——硬引用、软引用。 资源的硬引用 硬性引用,即对象 A 引用对象 B,并导致对象 B 在对象 A 加载时加载。通俗点说,硬引用所表示的资源在引用初 阅读全文
摘要:
蓝图 大家都知道,蓝图是UE4提供的极其容易上手的一种可视化脚本,更具体的就不说了。 纯靠蓝图搭建的UE4游戏是存在的,但是这类游戏往往优化很差(除非游戏玩法本身的性能需求不高)。更合适的流程往往需要程序员编写C++代码创建一些蓝图可用元素,而设计师再通过蓝图快速搭建游戏。 蓝图命名规范 蓝图命名: 阅读全文
摘要:
C++基础类型规范 由于PC、XBOX、PS4等各平台的C++基础类型大小可能不同(实际上绝大部分都是整型类型的大小不同),因此UE4提供了如下可移植基础类型的别名来统一规范类型大小: bool 代表布尔值(不会假定布尔尺寸) TCHAR 代表字符(不会假定TCHAR尺寸) uint8 代表无符号字 阅读全文
摘要:
引擎版本:Unreal Engine 4.22 UObject UE4的最基础类型是UObject,它提供了如下功能: GC机制(垃圾回收机制) 引用自动更新 运行时类型识别 反射机制 序列化 自动检测默认变量的变更 属性自动初始化 UE4编辑器的自动整合 网络复制 ... 这样当我们编写需要使用以 阅读全文
摘要:
2022.5.30 已更新,下一篇并行架构也在路上了,包含 Parallel For,TBB,Job System,Asycn Compute 的多线程渲染模型等话题,下下篇则是 GPU Driven 随着软件需求的日益复杂发展,远古时期的面向过程编程(POP)思想才渐渐萌生了面向对象编程思想。当人 阅读全文
摘要:
前言:C++是博大精深的语言,特性复杂得跟北京二环一样,继承乱得跟乱伦似的。 不过它仍然是必须用在游戏开发上的编程语言,这篇文章用于挑选出一些个人觉得重要的条款/经验/技巧进行记录总结。 文章最后列出一些我看过的C++书籍/博客等,方便参考。 其实以前也写过相同的笔记博文,现在用markdown”重 阅读全文
摘要:
噪声 噪声是游戏编程的常见技术,广泛应用于地形生成,图形学等多方面。 那么为什么要引入噪声这个概念呢?在程序中,我们经常使用直接使用最简单的rand()生成随机值,但它的问题在于生成的随机值太“随机”了,得到的值往往总是参差不齐,如下图使用随机值作为像素点的黑白程度: 而使用噪声,我们得到的值看起来 阅读全文
摘要:
《ATD》 游戏逻辑 先说明一下,全局游戏逻辑的全局并不是指变量的全局暴露,而是说负责游戏世界的整体逻辑。 全局游戏逻辑设计的话相对轻松一点: 首先为了更好管理个体游戏对象,引入了 对象工厂 来控制个体有对象的生命周期。 金钱管理器 负责玩家的金钱数据管理,例如击杀奖励,关卡结算奖励。 塔管理器 负 阅读全文
摘要:
《ATD》 游戏简介 游戏类型:塔防+RPG的3D游戏 游戏要素:3D 塔防 英雄 建筑树 搭配 主体玩法:游戏里将会有一波波怪物进攻基地。玩家可以建造塔来防御敌人,同时也可以控制单独的个体英雄角色来攻击敌人。 游戏模式: 第三人称视角的RPG模式 上帝视角的建造模式 控制方式:在游戏中使用Tab按 阅读全文
摘要:
前言: 在游戏程序中,利用空间数据结构加速计算往往是非常重要的优化思想,空间数据结构可以应用于场景管理、渲染、物理、游戏逻辑等方面。 因此,博主将游戏程序中常用的几个空间数据结构整理出这篇笔记,也会持续更新下去,有错误或有未及之处望指出。 四叉树/八叉树 (Quadtree/Octree) 四叉树索 阅读全文
摘要:
目录内存总览内存分页与虚拟内存机制多级页表与 TLB内存交换(Swap)zRAM移动端虚拟内存虚拟内存分配mmap & munmapmalloc & freenew & delete内存分配潜在的问题内存泄露内存碎片 & 内存扩散内存地址对齐多线程环境内存分配策略内存地址对齐特定大小多线程安全分配器 阅读全文