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


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

    大纲

    正文:

    • 做了什么,接下来做什么?
    • 如何阅读《游戏引擎架构》
    • Roadmap & Milestone
    • 个人知识系统
    • 个人技能成长的依赖倒置
    • 最大的问题

    附:

    • 一些简短的建议

    一些简短的建议

    • Rule No.1 到点下班
    • Rule No.2 长期主义
    • DRY = Do not Repeat Yourself
    • KISS = Keep It Simple and Stupid
    • GTD = Get Things Done
    • Done is Better than Perfect

    做了什么,接下来做什么?

    工作内容其实就是普通的初级游戏业务开发

    第一年在网易做了一年服务端,今年转去腾讯做客户端

    起了一个小游戏引擎,花了3年

    下班从零开始起了起了一个小引擎项目ZeloEngine,Zelo是零的意思

    麻雀虽小,五脏俱全,我将所有学习到的知识都落地到这个干净的沙盒中,它不是一个渲染器,而是一个架构+模块的集合,渲染只是里面的一部分,它会包含服务器和编辑器

    zoloypzuo/ZeloEngine: Game Engine in C++/OpenGL/Lua

    构造了一个完整的个人知识系统,花了6年:

    • 大量阅读
    • 动手实验
    • 总结笔记
    • 输出文章

    接下来:哎算了保密。。

    Roadmap & Milestone

    miloyip/game-programmer: A Study Path for Game Programmer

    路线图已经在这里了,非常的全面,大部分人都没有milo的经历,我建议每个人应该裁剪一下这个图,走出自己的游戏程序员之路

    探索的方法很简单,从一个根节点开始进行广度优先搜索,将看过和和没看过的分开,在二分图的边界上进行探索,并果断地进行剪枝,放弃不需要的分支

    在这里插入图片描述

    我认为时间点上,里程碑大概在入行3年和5年的时候

    • 3年,所有模块都要过一遍,知道是什么,API熟悉至少一套,确定自己对哪个模块最感兴趣,最想深入发展
    • 5年,选择的兴趣模块做到比身边人不研究的人都强(要求够低了吧,这就够了),能处理魔改和研究性质需求,别人一提到这个模块就来找你,其他模块做到人手不够你也可以顶上

    如何阅读《游戏引擎架构》

    我当时购买的是第二版,已经看烂了,这本书的各种版本都很容易获取

    在这里插入图片描述

    如何阅读,其实书中序言已经讲明

    在这里插入图片描述

    书中的架构图,我基本上通过ZeloEngine过了一遍所有模块

    🟢 已实现 ⚫ 已放弃
    在这里插入图片描述

    个人知识系统

    个人知识系统:

    • 大量阅读
    • 动手实验
    • 总结笔记
    • 输出文章

    其实是一个流水线,有输入有输出,有落库记录

    这里有一个建议,一个问题:

    • 建议:有比没有好,尽早开始
    • 问题:知识的损耗率非常高

    我的建议是,有比没有好,尽早开始

    类似的复杂定制系统,从一个简陋的开始做起,慢慢迭代

    时间会淘汰掉花里胡哨没用的东西

    规模(scale)会淘汰掉有致命欠考虑点的东西


    90% ^ 5 = 50%

    这里的问题是,知识的损耗率非常高

    有机合成里,每一步产率90%的合成路线,5步之后,总产率其实只有50%了

    所以,所谓“知识没用,掉书袋,ppt大神”是确实存在的问题

    我的思路是:

    1. 大量输入,大量阅读,提升品位
    2. 尽早剔除,尽早放弃掉不感兴趣的方向

    所以努力的功夫其实在这里,大量地阅读,包括看书,看电影,玩游戏,听音乐

    个人技能成长的依赖倒置

    有的人的思维是这样的

    A 我去学渲染,我要把渲染学的牛逼
    B 好,假设你学好了渲染,然后呢?
    A 我去做游戏,做引擎
    B 然后呢?你就做出来了?

    这是单点思维,没有前因后果,没有动机和目标

    我们很擅长把一件事做好,但是我们不知道为什么要做它

    你应该反过来想

    我要做游戏

    做游戏需要哪些技能,每个技能是不是必要的,需要多少熟练度

    现在反问一句,做出游戏和渲染牛逼有多大关系?游戏牛逼和渲染牛逼有多大关系?

    我回想起当时想入行的时候,我只是想做一个游戏

    五年过去了,我学了一堆的知识,点了程序专业的技能树,写了解释器,写了小引擎,做了Demo,但是仍然没有做完一个游戏

    PS Demo无法scale到一个游戏

    知识和努力的损耗很大,我必须时刻提醒自己为什么要做这件事

    最大的问题

    最大的问题,其实不是技术,而是内心的焦虑,以及空虚

    这当然和时代有关系,我认为是,十年苦读,最终成为打工人,每天进行低级重复劳动,导致的价值认知崩坏

    读完上面这一段,你或许认为我矫情,或者是不够努力不够聪明导致“失败”

    如果是这样,我建议你看一下演讲《温和的成功哲学》

    【TED】温和的成功哲学-网易公开课

    太长不看,提炼的相关论点是这样的:

    • 对职业和地位的势利,用职业标签来判断人整体价值
    • 对物质的贪婪追求,本质是精神的空虚
    • 嫉妒,以及同龄人压力
    • 运气很重要,不幸的人 vs 失败者,不应该觉得失败者是活该

    最近一年有两件对我影响很大的事件:

    第一是,2021年12月,毛星云跳楼

    第二是,2022年4月,我被关了两个月的禁闭,肺癌晚期的外婆在解禁前去世,不能见到最后一面

    这两件事没有什么道理的,只是亲身经历之后才会深刻认识

    其实只有死亡是众生平等的,只有死亡才是最终的终点

    而 “引擎组 > 业务组”,“渲染图形学 > 其他一切”,职级比较,薪水比较,都是人为自己给自己创造了比较(非游戏程序岗位,可以适当换成其他比较项目)

    这种比较的焦虑,来自同龄人的最为严重:

    你不会在意总监比你牛逼两个数量级,但是你会在意校招一起入职的同事(同年)的职级比你高一级,薪水比你多1k

    有的人说,化压力为动力,我相信这种人是没有进行过长达五年以上的持续努力的,大抵只有三分钟热度,一件事只能维持一个月的热情

    当你投入一个新领域时,你的热情很高,经验为零,你的压力和焦虑,会被大量新学到的知识经验的成就感,获得感给平衡掉

    随着经验的提升,到了某一个槛,比方说三年,你能学到的新东西的速率就开始急剧下降了,而你的焦虑并没有下降,问题来了,你付出的努力与获得不成回报,你还很焦虑,你接下来怎么办?

    结论是显而易得的,长期的发展不能依赖于压力焦虑和成就感,必须要在低焦虑的环境下度过平台期,稳定地成长

    实际上,根据我个人的情况,我认为刻意地降低焦虑是必须的,因为大环境大家都很卷

  • 相关阅读:
    自动融合,驰骋海外丨跨境电商YescomUSA携手云扩实现一站式自动化服务
    leetcode 236.二叉树的最近公共祖先
    Excel函数VLOOKUP常用方法
    吞吐量(TPS)、QPS、并发数、响应时间(RT)概念
    cas活动与ib理念
    1108 - 正整数N转换成一个二进制数
    Spring Cloud面试题
    什么是零代码?无代码和低代码开发平台该如何抉择?
    c++ map/multimap
    Go语言六大主流web框架
  • 原文地址:https://blog.csdn.net/zolo_mario/article/details/126880243