↓ 跳过正文

关于我

游戏开发混子一个。

游戏偏好
#

重度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开发了。自研引擎吃枣药丸有感觉吗。

展开查看主包经历
  1. 大学生活

    加入了机器人社团担任视觉组组长,帮助开发机器人视觉相关(做各种识别)(OpenCV调库侠)。顺便跟着硬件组学了一些单片机(C51,STM32)

    在社团任期结束后加入Robocup3D小组进行3D机器人仿真的学习。

    这个小众项目说白了就是给你一个3D机器人仿真环境让双方机器人队员打足球比赛。我们的工作就是通过代码控制机器人的肢体来想办法让机器人进球。 Robocup3D 这个比赛是有实体机器人项目的,但我说不是实体机器人买不起,而是模拟更有性价比有懂的吗。

    比赛本身只规定了网络协议。我们底层是国外一个UT大学做的开源底层,提供了整套的模拟环境和客户端可视化,以及一些机器人控制代码(比如机器人倒了可以自己站起来,可以向前跑步)。

    现在回过头看看,这个项目的重心应该是控制理论。但当时啥也不懂也没人指导就硬造代码。我只记得有个同学研究出个长台进攻,一脚能给球踢特别远,就是机器人自己也会表演一个花式转圈最后躺在地上睡觉。

    业余时间沉迷于游戏引擎底层技术。学习了OpenGL并跟着LearningOpenGL手搓了渲染器。

    本来打算学学Unity/UE。但之后Games101横空出世,给我彻底拉入实时渲染的坑里滚了2年左右。在此期间学习了软渲染和Vulkan,并在B站发布了Vulkan相关视频。

    毕业设计是使用Vulkan编写的游戏引擎。

    当时用Vulkan和libODE(一款又老又小众的物理引擎,你问我为什么用这个,我只能说大学的Robocup3D项目中学过这个,而我又没学过其他3D物理引擎)。现在来看确实十分简陋。光照只有PBR,编辑器也没有反射也没有啥都没有。充其量只是个劣质渲染器。

  2. 初入社会

    在大学纯学Vulkan和OpenGL等底层了,实习也没找,结果一毕业发现根本找不到图形相关工作(我也不是很会写Shader)。

    当时国内外几乎没有Vulkan的学习资料,我本身又不是图形学专业出生(我毕业了才知道图形学居然是研究生课程)。大学时花了大量的时间从0开始啃Vulkan Specific和Vulkan的官方手册,并在外网搜罗各种Vulkan资料。结果一毕业发现根本没市场。而我本身也没有Unity/UE经验,所以根本没有游戏公司要我。

    最后病急乱投医,进了广州手游黑厂做Unity客户端,一个月8k天天9-12-6,纯黑奴有感觉吗。

    干了几个月后实在扛不住,跳到杭州一家做BIM的公司,担任算法工程师,做面体相关的布尔算法。在期间学了不少几何相关知识。

    但依旧贼心不死,业余继续研究渲染技术。同时在B站发布了Rust软渲染相关视频。
  3. 进入引擎岗

    在BIM干了一年半之后,依旧怀揣游戏引擎梦。遂跳槽进入游戏公司的游戏引擎中台,做物理引擎相关。

    在跳槽期间阅读了一些开源的C++反射库源码。随后制作了我自己的C++静态/动态反射库,并在B站发布教程。

    你问我为什么不做渲染,因为依旧没找到渲染岗。这辈子就是被渲染害了,从此封心锁爱再也不碰渲染。

    但我又没有物理经验,也只能边干边学。经过两年的洗礼终成PhysX调库侠。
  4. 引擎梦碎

    我一直有一个引擎梦,就是做一个自己的引擎。也确实在慢慢做(NickelEngine)。而引擎又分为很多部分:渲染,物理,动画,寻路和AI,工具等。我也一直在慢慢学习各个方面的底层知识。但在引擎岗工作的两年,我逐渐认识到:
    1. 最高原则: 引擎是为游戏开发服务的,纯粹做引擎没有任何意义。没有游戏的引擎只不过是空壳。必须要有游戏验证你引擎的可行性。
    2. UE就是引擎的龙头。除了渲染(这玩意小方向太多了)外其他方向几乎已成定局,很难再做大突破。虽然大家都说UE屎,但自研的引擎肯定比UE更屎。
    3. 基于上面两点,制作通用游戏引擎是一件性价比十分低的事情。不如针对特定游戏类型做特化的游戏引擎。
    4. 从技术上来说,游戏引擎很容易被忽略的一个重要方向就是引擎工具。这玩意占据了60%朝上的时间。一款好引擎必须细细打磨工具,让工具变得易用,这样引擎才不会卡游戏开发的进度(但现在大AI时代来临这又说不准了,AI生成资产也挺快)。
      但我觉得工具方向是纯堆人力的方向。技术含量较低,反正我是不会去做的。
    这就陷入一个两难局面:做通用游戏引擎你比不过UE。而如果做特化游戏引擎,对于我个人而言,还不如直接用UE等现有引擎做游戏更快。

    倒不如说,之所以要做特化引擎,是因为你有一个很偏门的游戏点子,市面上的引擎都满足不了你。而显然现在的我并没有这种点子。

    而且引擎中脏活累活太多。我最开始做引擎是为了学习引擎中的底层技术。而实际开发过程中,技术含量其实较低,更多地是修改引擎以适配GP的需求。所以从技术学习角度来说,与其做引擎,不如对引擎技术的各个方向逐个击破。

    所以我发现,做一个完整的引擎对我来说根本没有任何用处。

    而且现在引擎岗位越来越少,再弄引擎是真要流落街头了。

    所以我觉得,我的引擎梦要到此结束了。
  5. 最后一舞与转向UE

    现在我打算逐渐转向UE客户端方向,慢慢学一些UE知识(感谢Unity的作死以及Godot的不成熟,让我只有UE这一条路可选)。引擎技术也要学,但是要分方向逐个学习。

    我在B站仍旧会更新引擎底层技术相关视频(最近就更新了ECS源码分析)。但更多地不是从头造轮子,而是分析源码。因为在我这几年的职业生涯中,发现大家其实都是调库侠,要自己从头造轮子的场景非常少。所以我也不再愿意花时间造轮子。况且现在AI发展这么快,再造轮子也显得没什么意义。除非那种特别大的项目内容特别多,我们可以造一个小轮子来学习。

    但我依旧要最后一舞。我正在从0开始做一款基于SDL3的2D俯视角联机游戏。里面大部分东西都是从0造轮子。我希望用我这几年学习的引擎技术真正地做一个游戏,而不是引擎。这个项目的最高纲领就是:我是在做游戏而不是通用引擎,游戏用不到的东西我就不添加。所以我写的很克制,也尽量少用高深的技术和花里胡哨的C++语法,轮子也是尽量造的小小的。希望在26年可以将项目完工。

    随着大AI时代的到来,我将花更多的精力在理论学习上,而不是真正的编码。我必须确保我理解了原理,但真正的实现可以人机协作。

    这几年我即没有造出自己的游戏引擎,也更是没有做出自己的游戏项目。我是两头都不沾。这就是我称自己为游戏开发混子的原因。

重度C++用户。技术栈是CMake + C++。有时使用Lua作为脚本编写游戏逻辑。

喜欢研究引擎各个方向的技术。希望有朝一日能做出自己的游戏。

这里还没有任何文章可以列出。