自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 UE Editor API 整理

过一下 https://github.com/20tab/UnrealEnginePython/blob/master/docs/,熟悉一下编辑器 API,方便后续编辑器脚本开发后续的目标是所有编辑器操作应该都可以脚本化(自动化),这样把 GPT 接进 UE 里就可以 Chat UE 操作了。

2024-06-06 22:33:56 914

原创 Haxe-UnrealEngine5

结论是什么呢?目前还是没有一款 ”理想“ 的脚本语言想要借力,语言本身基建和 IDE 就要足够强大,任何一个点都是个人难以承担的维护成本。

2024-01-20 20:03:03 368

原创 用 taichi 写个软渲染器

【代码】用 taichi 写个软渲染器。

2023-12-05 21:16:48 155

原创 Unreal UnLua + Lua Protobuf

protobuf wire format:pb 编译到底层的数据协议。

2023-11-07 12:23:56 795

原创 Unreal PythonScriptPlugin

示例代码,引擎里有很多插件已经用 py 写编辑器脚本了。

2023-11-05 16:51:39 1011

原创 Unreal UMG MVVM

两个编辑器,一个添加 VM Class,一个添加 Binding,最终存储在 UMVVMBlueprintView。WidgetBlueprint.UMVVMBlueprintView,这也是通过 WBP Extension。三个 Extension,注意 MVVM 是一个插件,通过这种方式扩展 WBP。新增一个 BP Compiler, MVVM 自动生成了一部分 BP 代码。四种模式,134 都是自动创建并关联,以默认的。

2023-10-31 16:51:51 505

原创 避免在开发中失焦

游戏开发和纯代码开发还不太一样,除了泡在 IDE 里编码,还需要进行编辑器操作,而编辑器操作是失焦的重灾区。本来一鼓作气 2h 完成的大活,打断几次基本就得 6h 硬撑着才能完成了,对个人的意志力也是不必要的损耗。解决失焦问题,本质是一种流程优化,大部分没有技术难点,要的是识别出卡点,并用自动化脚本修复。UE 用了一年了,最近反思到,个人开发在开发和制作过程中一个比较严重的问题是 - 失焦。失焦就是说打断心流,失焦会导致在效率上大打折扣,有点类似 cache miss。简单来说,就是要兵贵神速,一鼓作气。

2023-10-02 14:50:01 164

原创 【游戏编程扯淡精粹】工作第三年总结

今年仍然是个人成长视角更多一些,额外新学到的重点是,借助团队力量。

2023-06-03 14:39:41 2768 2

原创 升级 UE 5.2

自己的 Playground 环境升级 UE5.2。

2023-05-25 10:28:33 480

原创 【游戏编程扯淡精粹】HUD 与 Panel 的区别

本文主要指游戏中的界面。

2023-03-15 01:06:54 314

原创 【游戏编程扯淡精粹】自研引擎切 UE

UF2022 的两篇讲座,再加上 The Machinery 引擎项目失败结合过去两年笔者使用自研引擎的体验,其实有一部分是共通的。

2023-01-01 09:17:44 580

原创 【UnLua】UnLua Latent 实现机制

跟了一下 UnLua Latent,其实就是 Unity 协程,下面也会用【协程】这个词指代协程是一个比较简单的点,主要是玩法会用到。

2022-10-24 20:33:58 958

原创 【游戏编程扯淡精粹】UE5 蓝图节点颜色和icon含义

颜色icon。

2022-10-24 10:30:11 1857

原创 【游戏编程扯淡精粹】UE5 蓝图

最近新学蓝图编程。。还没看蓝图VM代码,有些点不保证准确本文主要是从使用角度,分析你为什么需要学习蓝图,蓝图适合做什么,不适合做什么最后 Bonus,跟一下 Blueprint Pipeline,梳理一下蓝图的知识结构。

2022-10-20 23:46:27 7435

原创 【Lyra UI】UI 玩法逻辑小结

UI 这块分两个部分:功能版逻辑 + 材质效果本篇讨论逻辑,即怎么组织UI结构,代码怎么串联事件和逻辑笔者之前并没有用UE开发过游戏,也算是从零开始,所以并不保证完整性和准确性。

2022-10-14 18:00:27 1785 1

原创 【游戏编程扯淡精粹】工作两年总结

随着经验的提升,到了某一个槛,比方说三年,你能学到的新东西的速率就开始急剧下降了,而你的焦虑并没有下降,问题来了,你付出的努力与获得不成回报,你还很焦虑,你接下来怎么办?麻雀虽小,五脏俱全,我将所有学习到的知识都落地到这个干净的沙盒中,它不是一个渲染器,而是一个架构+模块的集合,渲染只是里面的一部分,它会包含服务器和编辑器。五年过去了,我学了一堆的知识,点了程序专业的技能树,写了解释器,写了小引擎,做了Demo,但是仍然没有做完一个游戏。所以,所谓“知识没用,掉书袋,ppt大神”是确实存在的问题。

2022-09-16 00:30:38 689

原创 【ZeloEngine】OpenGL升级Vulkan

Vulkan的资料有很多,这里以GDC2016中nvidia的slide作为讨论的基础下文中Vulkan简称vk。

2022-08-21 21:19:58 1285

原创 【ZeloEngine】反射系统填坑小结

今天是入行两周年,本想写个入行小结,想想还是踏实点把坑填完,写个DevLog本文接续之前一篇文章的原理描述,主要讲讲开发后的反思另外说明,ZHT当然是下班时间开发的,所以进度会慢很多,好在能每天坚持写一点,代码也就攒起来了。.................................

2022-07-17 23:10:41 455

原创 【ZeloEngine】本地化流程/ImGui中文化

填了中文化和icon的坑(2021/12/19开的坑)先做了一版标准流程v1,然后做一下优化v2【ZeloEngine】本地化流程/ImGui中文化_哔哩哔哩_bilibiliv1的标准流程是:所以我们可以去监听ImGui里所有会显示出来的文本参数,在ImGui实现上包一下gettext,并且输出运行时所有遇到/看到的文本,自动更新翻译模板文件.pot直接修改imgui.cpp风险还是太大了,imgui仍然在更新中好在我们有Lua的脚本绑定层,算是一层封装,且所有imgui逻辑都是在Lua写的,在这里改就好

2022-06-12 20:08:14 1494

原创 【ZeloEngine】重写反射和对象系统

【ZeloEngine】重写反射和对象系统TODO 引用结论实现了类似UHT和QtMoc的通用C++源码分析和代码生成方案功能特性本质是一个编译器应用,前后端分离,前端分析C++源码,后端代码生成,中间表示(IR)是收集的源码信息可以扩展代码生成目标后端,不需要改前端目前已有的目标:反射,Lua脚本绑定,序列化,imgui界面功能特点相比于UHT和QtMoc的区别:分离出meta.cs描述元信息,而不是在C++源文件中打标记默认类范围内全部导出,只需要描述导出哪个类即可,不需要每个成

2022-05-17 13:50:49 432

原创 【ZeloEngine】重新理解CMake

【ZeloEngine】重新理解CMake引子这两天重构了ZeloEngine的cmake脚本,正好重新思考一下,谈论cmake时,我们到底在解决什么问题本文先说结论,然后讨论cmake知识,然后讨论怎么应用在这次重构中重构结论构建时间41.547356s => 37.4614157s,稍微优化了一些Visual Studio工程目录现在:干净,少量target现在:target展开目录和文件目录一致原来:Core中每个子模块都是一个target;target里所有代码挤在一起

2022-03-18 20:55:07 647

原创 【游戏编程扯淡精粹】游戏编程设计模式

【游戏编程扯淡精粹】游戏编程设计模式文章目录【游戏编程扯淡精粹】游戏编程设计模式如何练习设计模式资源链接并发设计模式编程语言和设计模式UMLUML方案常见UML经典设计模式设计模式的目标设计模式的原则组件模式/桥接模式适配器模式命令模式/解释器模式工厂模式代理模式原型模式装饰器模式单例模式责任链模式组合模式外观模式享元模式策略模式迭代器模式游戏设计模式沙箱模式脏标记模式事件队列其他设计模式控制反转 & 依赖注入MVVMCombinator本文最初写于2018/9/4毛星云 RIP如何练习设计

2022-02-09 21:48:12 1757

原创 【游戏编程扯淡精粹】VMWare UBuntu服务搭建手册

【游戏编程扯淡精粹】VMWare UBuntu手册操作手册,踩坑问题,命令,HowTo从Windows SSH登录UBuntuConfigure SSH Login on a Linux Virtual Machinesudo apt install openssh-serverVM > SSH > Connect to SSH

2022-02-08 18:00:20 1111

原创 【游戏编程扯淡精粹】EASTL源码阅读

【游戏编程扯淡精粹】EASTL源码阅读构建运行clion x64,-DEASTL_BUILD_TESTS:BOOL=ONx86有问题,缺windows库链接选择EASTLTest运行构建脚本set build_folder=outmkdir %build_folder%pushd %build_folder%call cmake .. -DEASTL_BUILD_TESTS:BOOL=ON -DEASTL_BUILD_BENCHMARK:BOOL=OFFcall cmake -

2022-02-01 22:39:50 2767

原创 【游戏编程扯淡精粹】TinySTL源码阅读

【游戏编程扯淡精粹】TinySTL源码阅读文章目录【游戏编程扯淡精粹】TinySTL源码阅读学习目标学习路线进度清单编译问题TinySTL\Detail\Vector.impl.h(55): error C2572: 'TinySTL::vector实际看了,会发现也并没有很难,比起阅读《C++标准库》这样的砖头API书籍,要更为容易和高效学习目标掌握一种STL实现了解C++模板编程学习路线从单元测试开始看起进度清单 pair:100% algorithm:20% vector:1

2022-02-01 16:23:33 2452

原创 【游戏编程扯淡精粹】C++对象内存布局

【ZeloEngine】C++对象内存布局引言CPU给GPU传递buffer,约定好buffer item的struct协议,基本上要求是packed struct那么packed前后有什么区别呢?知道struct字段对齐,那具体又是怎么对齐的呢?此外,虚表指针vptr是放在哪里的呢,怎么对齐呢?稍微想一想,编译器肯定知道这些信息,搜一下就有了工具/d1reportAllClassLayout/d1reportAllClassLayout – 转储对象内存布局 | Ofek 的 Visual

2022-01-26 16:16:11 580

原创 【游戏编程扯淡精粹】如何阅读技术书籍

【游戏编程扯淡精粹】如何阅读技术书籍书非借不能读也克服收藏癖读书要克服收藏癖带来的短暂愉悦案例1:B站上的《计算机程序的构造与解释》第一课弹幕数1096,最后一课弹幕数量3案例2:某宝Python学习资源,5G打包把书读薄知乎上某位答主的书架,红圈是《游戏引擎架构》我的《游戏引擎架构》,只剩下核心的渲染,物理,动画三节,其他全部扔了,真正意义上把书读薄买到手的砖头书,按章节裁剪成讲义,随身携带知行合一《游戏引擎架构》序言The best way to learn c

2022-01-22 16:39:15 1425

原创 【游戏编程扯淡精粹】使用Swig为cyclone导出Python接口

【游戏编程扯淡精粹】使用Swig为cyclone导出Python接口2020年9月23日swig还是不满足Zelo的需求,基本是个黑箱,不可控,源码也改不动,所以最后还是换Lua方案了需求当时的需求很简单,为cyclone导出python接口cyclone是一个物理引擎库,没有依赖,全部手写,所以非常适合实验C++导出脚本接口zoloypzuo/cyclone: 《游戏物理引擎开发》源码魔改文档SWIG and PythonSwig原理用.i文件为你生成c++的wrapper代码然后你

2022-01-20 13:18:16 1469

原创 【游戏编程扯淡精粹】解析器实现模式

【游戏编程扯淡精粹】解析器实现模式2020年1月7日我已经写了几个parser了,parser是有标准实现模式,以及测试方法如何解析一门语言?在开始动手之前:先简单学习这门语言然后获取语言的ANTLR语法,没有的话可以参考BNF自己翻译成ANTLR语法输入之前学习时的语言代码到ANTLR来查看AST,相当于测试语法,确保自己写的语法正确这个过程需要熟悉语法规格(syntax specification),对语义有一个初步认识Lexer做什么lexer也就是一个tokenizer,将原

2022-01-20 12:08:14 448

原创 【游戏编程扯淡精粹】如何学习编程语言

【游戏编程扯淡精粹】2022年如何学习编程语言文章目录【游戏编程扯淡精粹】2022年如何学习编程语言如果你没有学过编程如果你只是想提升工作效率如果你想学习计算机科学与技术如果你已经是熟悉了一门编程语言如果你已经工作一门编程语言有什么内嵌语言(DSL)语法以Python为例如果你没有学过编程学Python/Java资料很多,问题容易找到回答如果你只是想提升工作效率比如你已经上班了,要处理一些Excel表格但是你并不想学习编程,去成为程序员那么学习Python,把Excel处理库熟悉即可不要浪

2022-01-12 12:02:30 739

原创 【ZeloEngine】沙箱机制

【ZeloEngine】沙箱机制沙箱,沙盒,Sandbox沙盒游戏是指开放世界游戏,比如MineCraft,玩家可以在里面自由地游玩程序的Sandbox,是指引擎提供一个干净的环境,供程序员自由地写业务逻辑动机引擎的最终目的是做游戏,这个过程中会产出很多Demo通过Sandbox,将Demo和引擎分割开,不断的开发新Demo,并把Demo中通用的部分向引擎迁移,形成一个开发循环结论干净的切换Demo,每个Demo是独立的引擎实例独立的思路早期我想直接用插件机制去做Sandbox,

2022-01-10 16:12:34 576

原创 【游戏编程扯淡精粹】程序员的Windows技巧

【游戏编程扯淡精粹】程序员的Windows技巧本文主要起索引作用,具体操作或者介绍,请自行搜索PowerToys几个实用工具合集,对Windows是很好的补充AHK AutoHotKey快捷脚本,有学习成本目前主要用作ZeloEngine快捷入口汇总,节约了自己开发launcher gui的成本罗技鼠标宏额外的鼠标按键可以绑定快捷键比如绑定运行程序Ctr+F5如何删掉windows下3D对象,音乐,视频等文件夹?你知道的,这几个是特殊文件夹,但是其实又不是。很烦,想删掉注册表/

2021-12-29 13:52:13 3120

原创 【游戏编程扯淡精粹】调试方法论

【ZeloEngine】调试方法论调试本质是一种实验https://en.wikipedia.org/wiki/Experiment实验的基本方法论,初中某本课本上就有:假设=》验证的循环另一种角度是,调试是解决问题,而解决问题的本质是搜索所以调试的快慢,和方法,习惯,经验很有关系习惯和经验,影响执行实验的正确性,熟练度,速度经验,还有启发和缓存的作用,加速搜索,直达结果总的来讲,调试应该有严谨的方法论,按步骤进行,而不是无脑猜想和实验,那样只会浪费时间好的方法论的差别,主要体现在解决复杂

2021-12-24 00:59:39 542

原创 【游戏编程扯淡精粹】Python虚拟机源码

【游戏编程扯淡精粹】Python虚拟机源码BufferedInputStream还是个RAII,自动关闭流spdlog用cmake安装还是做不来,简单拷贝lib编译了cmake版本设高一点,3.4以上,否则有warning,很烦BufferedInputStream打不开文件,要用异常我想不到比较合适的做法,assert-false把这里其实有用户交互的,但是想不通fileio,每次操作检查ferror,出错就退出clion没法build,x64选择clion是因为创建文件,cl

2021-12-21 17:55:40 2498

原创 【ZeloEngine】Lua源码汇总

【ZeloEngine】Lua源码汇总userdata和light userdata目前是不用light userdata的userdata的流程:C++ class Foo注册给lualua脚本new Foo,lua分配内存,管理gclight userdata则是C++分配内存和构造,一般是对应裸指针,Zelo不用这种用法检测参数是否是字符串字面量拼了一个空串,这样编译就会报错了#define lua_pushliteral(L, s) \ lua_pushlstring(L,

2021-12-21 16:54:51 866

原创 【ZeloEngine】ImGui汇总

【ZeloEngine】ImGui汇总ImGui如何开发/编程指南 ImGui基本原理 ImGui框架概念 ImGui接口 脚本绑定接口 脚本薄封装框架 参考项目痛点原理学完只是第一步,我们要铺量去写UI,那工具链要是完善的目前抄了几个界面后的痛点是:对接口不熟悉,查接口要跳很多文档理想的状态是:Model数据结构=》设计粗略View展示Model=》转换成代码=》迭代交互和样式接口文档https://blog.csdn.net/zolo_mario/article/deta

2021-12-19 20:30:19 4042

原创 【ZeloEngine】Lua调试器

【ZeloEngine】Lua调试器(Lua debugger)Lua没有非常强势的IDE和调试器方案,基本上都是专用方案造的轮子尝试了几个方案(按时间顺序)DecodaLuaPerfectEmmyLua(Clion)ZeroBraneLuaPanda调试器核心的实现都是一样的Remote Debug,被调试代码是一个客户端,调试器IDE是一个服务端,两端用socket连接基本上都会选择luasocket+mobdebug作为调试器核心有几个可以考量的地方:调试器接入,有没有遇到

2021-12-04 20:04:31 1634

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除