上一页 1 2 3 4 5 6 7 8 ··· 37 下一页

2024年4月28日

摘要: Intro UE的大部分content资产都放在了.PAK文件中,为了避免资产被破解,最好对文件进行加密。由于pak文件在运行时需要解密,所以运行时必然需要知道明文密码。或许是出于效率考虑,Unreal使用的是AES这种对称加密,也就是加密和解密使用的是相同的key。 如果把密码以明文的形式存储在文 阅读全文
posted @ 2024-04-28 17:20 tsecer 阅读(1620) 评论(0) 推荐(0)

2024年4月26日

摘要: 观察 为了让庞大代码库看起来更简洁一些,UE使用了不少C/C++黑魔法:宏。把一些重复或者繁琐的实现细节隐藏在了宏里面(例如最为常见且繁琐的GENERATED_BODY宏),尽管代码看起来更简洁,但也隐藏了一些(重要的)细节。 在看UE插件实现时,意外的看到IMPLEMENT_MODULE宏定义中, 阅读全文
posted @ 2024-04-26 12:19 tsecer 阅读(223) 评论(0) 推荐(0)

2024年4月24日

摘要: 问题 尽管VS Code提供了在windows下通过ssh访问linux机器的各种便利,但是使用vim在linux环境下开发可以方便的使用从Unix系统中继承的强大工具集(例如grep命令),并且构建、部署也更加方便。加上vim丝滑的操作流,使得linux环境下vim开发依然有着很大的吸引力。 但是 阅读全文
posted @ 2024-04-24 20:23 tsecer 阅读(85) 评论(0) 推荐(0)

2024年4月10日

摘要: closure lexical scope 这篇文章虽然不长,但是厘清了一些基本的概念: 闭包的直观效果就是可以捕捉所在环境中的变量。 Closures are special functions that can capture the environment, i.e. variables wi 阅读全文
posted @ 2024-04-10 14:31 tsecer 阅读(113) 评论(0) 推荐(0)

2024年4月2日

摘要: 问题 在UE的代码中,经常可以看到对于父类类型的引用,因为很多情况下都要先调用父类的同名函数。例如随便看下UE的部分代码,在实现自己序列化函数的时候先调用基类的序列化函数。 但是,尽管Super是一个非常顺数的功能(在行为树库behaviac数中也有super定义),但是C++并没有实现这种功能。这 阅读全文
posted @ 2024-04-02 21:51 tsecer 阅读(91) 评论(0) 推荐(0)

2024年3月4日

摘要: 问题 C++的异常处理看起来是一个比较神奇的功能,能够在运行时穿越堆栈,从异常发生位置直达异常处理位置。通过gcc的代码可以看到,这个堆栈回溯的一个关键步骤是这个宏,其中又使用了gcc的内置指令__builtin_eh_return。网上关于__builtin_eh_return这个内置函数的资料较 阅读全文
posted @ 2024-03-04 20:19 tsecer 阅读(89) 评论(0) 推荐(0)

2024年2月4日

摘要: future/promise future提供了一个基于数据(future模板类型)的异步概念:对于一个类型T,可以在以后通过get接口获得这个类型T的变量。或者打个不太恰当的比方,当你获得一个future对象时,就获得了一个消费券(consumer):拿着这张券可以兑换(get)一个T类型的结果( 阅读全文
posted @ 2024-02-04 19:33 tsecer 阅读(668) 评论(0) 推荐(1)

2024年2月1日

摘要: 寄存器 在软件开发过程中,Ctrl-C和Ctrl-V是程序员的核心技能,这就不可避免的涉及到复制,粘贴,删除。在windows环境下,大家习惯了只有一个系统剪切板,复制之后直接粘贴还是比较方便。在vim环境下,有更多的寄存器可以选择:26个字母(大小写分别对应不同用途),还有0——9共10个数字对应 阅读全文
posted @ 2024-02-01 17:49 tsecer 阅读(89) 评论(0) 推荐(0)

2024年1月6日

摘要: 文档 对于一个(大型)软件来说,文档始终是一个重要功能。例如,vim内置的在线文档就十分轻便基于文本格式,使用普通编辑器查看也不影响阅读),这样让vim的使用非常丝滑。 UE作为一款游戏软件,同样内置了控制台命令,通过这些命令可以交互式执行控制台命令,查看/控制进程状态。更妙的是在输入的时候,控制台 阅读全文
posted @ 2024-01-06 17:49 tsecer 阅读(703) 评论(0) 推荐(0)

2023年12月23日

摘要: zero-page 操作系统给用户新分配的内容(通过mmap或者brk)都是清零过的,但是这些虚拟地址通常都是按需分配物理页面。这里的“按需”的需求可能是读取,也可能是写入。如果只是读取,只要保证读取内容是零即可,在MMU的基础上,可以让“所有”虚拟地址都映射到内容为0的物理页面中。 这样如果申请的 阅读全文
posted @ 2023-12-23 17:59 tsecer 阅读(295) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 ··· 37 下一页

导航