记一次游戏沙龙分享会

Messiah引擎回忆录

  • Sparse Voxel Octree Cone Tracing
  • C++ Hot Reload
  • 迭代/重做的选择
  • 天下引擎:

    • 插件层:PhysX/fMod/Behavior/umbra/BEAST

    • 游戏层:AI/寻路/车辆/场景管理/渲染管线/渲染引擎/光照/材质/天气

    • 框架层:主循环->Thread pool->IO /内存管理/网络通信/脚本系统

    • 系统层:Windows(跨平台抽象,主手游市场)/Direct X(跨API抽象)

  • 90%的手机都是四核以上,场景更新->渲染引擎->图形API
    • Main Thread:Tick->Render->Present
    • Game Thread:Tick->Render
    • Render Thread:Prensent->Commit to Device->Present
  • 烘焙:预计算光照,大部分3D手游选择烘焙。CloudGI:完全跑在GPU上的烘培引擎。

游戏成长之路

  • CS理论:算法/数据结构/设计模式。图形学。物理仿真。分布式计算。高性能网络。人工智能。
  • 脚本python。S/C全服秒热更。深度改造Python虚拟机。
  • C/C++:极其高效的语言,对效率有极致要求的核心模块。C++17。多线程任务系统。3D渲染器。网络底库。数学库。
  • 有限状态机FSM:以数据驱动代码,而不是代码就是数据。
  • 好的代码出来步需要写第二次(DRY原则),这就是程序员之间的差别了,这里面水太深了,技术栈的背后是深厚扎实的理论算法数据结构基础在做支撑。
  • 应该成为一个发明流水线的程序员,而不是在流水线上作业的程序员。
  • 用代码去提升生产效率,而不是成为生产效率的瓶颈。
  • 行为树(Behavior Tree):四个结点+1个规则。
  • 角色移动同步:对实时性有极致要求,tcp协议无法满载极致的低延迟需求(它的拥塞控制,完全可靠的特性),所以用udp的低延迟协议(更优的丢包重传算法,应答模型,支持半可靠包。)400ms延迟,40%丢包极限工况下依然能工作。
  • 航位推测算法(Dead Reckoning)。

一些碎碎念

人类在生活中要受到精神与物质的双重束缚,在这些束缚中就失去了理想和自由。于是人们用剩余的精神创造一个自由的世界,它就是游戏。

跟牛奶老师一样,游戏已然是一种精神上的寄托。尽管现在玩游戏的时间已经压榨到没有了,是因为想成为一个maker,而不是普通的player,所以会好好补技术栈!虽然我现在水平很菜,但是做了一个从小到大以来,为数不多的自己选择的决定(上一个是转系考软件工程,我真的非常努力去实现了)。

虽然走的很慢,但是如果是为了热爱,方向就是对的。就像我喜欢写代码,喜欢玩游戏,喜欢计算机,喜欢ACG,喜欢东方,喜欢LOL……尽管没有人可以永远陪我一起分享这些快乐,可我还是喜欢他们,因为他们给我带来了感动,这些是我精神世界中的宝藏啊,我愿意为他们付出时间、金钱、精力。

之前浪费了不少时间在无聊的事情上,导致现在技术栈太浅了,也许等我技术到了一定的水平,自然可以遇到和我讨论这些技术的大佬了呢,那种灵感碰撞出的火花真是让人向往啊!

Thanks for Support.