关于我
目录
游戏开发混子一个。
游戏偏好#
重度Roguelike和Roguelite玩家。有几年沉迷于TRoguelike,玩过Nethack, DCSS, CDDA, Pathos和TOME'4。本来打算玩一玩矮人要塞,结果学习成本太高加上当时已经工作了,也没怎么玩。
后来沉迷于Roguelite,玩过《以撒的结合》,《杀戮尖塔》等知名Roguelite。
格斗游戏铁粉。打了三年的拳皇97/98。自从15出了之后又打了450+小时。之前是SNK忠实粉丝。但这几年街霸6做的太好了,加上饿狼传说狼城做的有点捞已经粉转黑了(什么时候出拳皇16什么时候黑转粉)。街霸6有400+小时。有时也玩玩《真人快打1》。你们打拳都是嘴上说说只有我是真上网打男拳(
比较喜欢横版动作/闯关/格斗游戏和各种独立游戏。不喜欢恐怖游戏和解密游戏。比较喜欢能操作的和自由度较高游戏。
UP主相关#
同时还是一个B站UP主,经常分享游戏引擎技术:单身剑法传人。
周末有时候也直播打游戏,一般是周日下午4点到晚上8、9点。很下饭,推荐饭点观看。
技术相关#
Github: VisualGMQ
游戏开发和游戏引擎开发方向的程序员。前几年在研究游戏引擎开发并成功进入引擎岗呆了几年,现在打算慢慢转向UE开发了。自研引擎吃枣药丸有感觉吗。
展开查看主包经历
大学生活
加入了机器人社团担任视觉组组长,帮助开发机器人视觉相关(做各种识别)(OpenCV调库侠)。顺便跟着硬件组学了一些单片机(C51,STM32)在社团任期结束后加入Robocup3D小组进行3D机器人仿真的学习。这个小众项目说白了就是给你一个3D机器人仿真环境让双方机器人队员打足球比赛。我们的工作就是通过代码控制机器人的肢体来想办法让机器人进球。
这个比赛是有实体机器人项目的,但我说不是实体机器人买不起,而是模拟更有性价比有懂的吗。比赛本身只规定了网络协议。我们底层是国外一个UT大学做的开源底层,提供了整套的模拟环境和客户端可视化,以及一些机器人控制代码(比如机器人倒了可以自己站起来,可以向前跑步)。现在回过头看看,这个项目的重心应该是控制理论。但当时啥也不懂也没人指导就硬造代码。我只记得有个同学研究出个长台进攻,一脚能给球踢特别远,就是机器人自己也会表演一个花式转圈最后躺在地上睡觉。业余时间沉迷于游戏引擎底层技术。学习了OpenGL并跟着LearningOpenGL手搓了渲染器。本来打算学学Unity/UE。但之后Games101横空出世,给我彻底拉入实时渲染的坑里滚了2年左右。在此期间学习了软渲染和Vulkan,并在B站发布了Vulkan相关视频。毕业设计是使用Vulkan编写的游戏引擎。当时用Vulkan和libODE(一款又老又小众的物理引擎,你问我为什么用这个,我只能说大学的Robocup3D项目中学过这个,而我又没学过其他3D物理引擎)。现在来看确实十分简陋。光照只有PBR,编辑器也没有反射也没有啥都没有。充其量只是个劣质渲染器。初入社会
在大学纯学Vulkan和OpenGL等底层了,实习也没找,结果一毕业发现根本找不到图形相关工作(我也不是很会写Shader)。当时国内外几乎没有Vulkan的学习资料,我本身又不是图形学专业出生(我毕业了才知道图形学居然是研究生课程)。大学时花了大量的时间从0开始啃Vulkan Specific和Vulkan的官方手册,并在外网搜罗各种Vulkan资料。结果一毕业发现根本没市场。而我本身也没有Unity/UE经验,所以根本没有游戏公司要我。最后病急乱投医,进了广州手游黑厂做Unity客户端,一个月8k天天9-12-6,纯黑奴有感觉吗。干了几个月后实在扛不住,跳到杭州一家做BIM的公司,担任算法工程师,做面体相关的布尔算法。在期间学了不少几何相关知识。但依旧贼心不死,业余继续研究渲染技术。同时在B站发布了Rust软渲染相关视频。进入引擎岗
在BIM干了一年半之后,依旧怀揣游戏引擎梦。遂跳槽进入游戏公司的游戏引擎中台,做物理引擎相关。在跳槽期间阅读了一些开源的C++反射库源码。随后制作了我自己的C++静态/动态反射库,并在B站发布教程。你问我为什么不做渲染,因为依旧没找到渲染岗。这辈子就是被渲染害了,从此封心锁爱再也不碰渲染。但我又没有物理经验,也只能边干边学。经过两年的洗礼终成PhysX调库侠。引擎梦碎
我一直有一个引擎梦,就是做一个自己的引擎。也确实在慢慢做(NickelEngine)。而引擎又分为很多部分:渲染,物理,动画,寻路和AI,工具等。我也一直在慢慢学习各个方面的底层知识。但在引擎岗工作的两年,我逐渐认识到:- 最高原则: 引擎是为游戏开发服务的,纯粹做引擎没有任何意义。没有游戏的引擎只不过是空壳。必须要有游戏验证你引擎的可行性。
- UE就是引擎的龙头。除了渲染(这玩意小方向太多了)外其他方向几乎已成定局,很难再做大突破。虽然大家都说UE屎,但自研的引擎肯定比UE更屎。
- 基于上面两点,制作通用游戏引擎是一件性价比十分低的事情。不如针对特定游戏类型做特化的游戏引擎。
- 从技术上来说,游戏引擎很容易被忽略的一个重要方向就是引擎工具。这玩意占据了60%朝上的时间。一款好引擎必须细细打磨工具,让工具变得易用,这样引擎才不会卡游戏开发的进度(但现在大AI时代来临这又说不准了,AI生成资产也挺快)。但我觉得工具方向是纯堆人力的方向。技术含量较低,反正我是不会去做的。
最后一舞与转向UE
现在我打算逐渐转向UE客户端方向,慢慢学一些UE知识(感谢Unity的作死以及Godot的不成熟,让我只有UE这一条路可选)。引擎技术也要学,但是要分方向逐个学习。我在B站仍旧会更新引擎底层技术相关视频(最近就更新了ECS源码分析)。但更多地不是从头造轮子,而是分析源码。因为在我这几年的职业生涯中,发现大家其实都是调库侠,要自己从头造轮子的场景非常少。所以我也不再愿意花时间造轮子。况且现在AI发展这么快,再造轮子也显得没什么意义。除非那种特别大的项目内容特别多,我们可以造一个小轮子来学习。但我依旧要最后一舞。我正在从0开始做一款基于SDL3的2D俯视角联机游戏。里面大部分东西都是从0造轮子。我希望用我这几年学习的引擎技术真正地做一个游戏,而不是引擎。这个项目的最高纲领就是:我是在做游戏而不是通用引擎,游戏用不到的东西我就不添加。所以我写的很克制,也尽量少用高深的技术和花里胡哨的C++语法,轮子也是尽量造的小小的。希望在26年可以将项目完工。随着大AI时代的到来,我将花更多的精力在理论学习上,而不是真正的编码。我必须确保我理解了原理,但真正的实现可以人机协作。这几年我即没有造出自己的游戏引擎,也更是没有做出自己的游戏项目。我是两头都不沾。这就是我称自己为游戏开发混子的原因。
重度C++用户。技术栈是CMake + C++。有时使用Lua作为脚本编写游戏逻辑。
喜欢研究引擎各个方向的技术。希望有朝一日能做出自己的游戏。
这里还没有任何文章可以列出。