惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
S
Security Affairs
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cyberwarzone
Cyberwarzone
Latest news
Latest news
Simon Willison's Weblog
Simon Willison's Weblog
NISL@THU
NISL@THU
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 司徒正美
博客园_首页
人人都是产品经理
人人都是产品经理
Project Zero
Project Zero
S
Schneier on Security
Recorded Future
Recorded Future
N
News and Events Feed by Topic
T
The Exploit Database - CXSecurity.com
博客园 - 【当耐特】
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Engineering at Meta
Engineering at Meta
M
MIT News - Artificial intelligence
The Last Watchdog
The Last Watchdog
B
Blog
V
Visual Studio Blog
MongoDB | Blog
MongoDB | Blog
量子位
A
Arctic Wolf
Cloudbric
Cloudbric
I
InfoQ
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Cybersecurity and Infrastructure Security Agency CISA
爱范儿
爱范儿
Recent Announcements
Recent Announcements
GbyAI
GbyAI
P
Palo Alto Networks Blog
D
DataBreaches.Net
H
Help Net Security
AI
AI
博客园 - 叶小钗

重归混沌的BLOG

给silly实现了一个ernro模块 | 重归混沌的BLOG 给silly实现了一个ernro模块 | 重归混沌的BLOG 第一次在生产环境使用 Vibe Coding | 重归混沌的BLOG 第一次在生产环境使用 Vibe Coding | 重归混沌的BLOG API 设计的艰难抉择 | 重归混沌的BLOG API 设计的艰难抉择 | 重归混沌的BLOG 十年 | 重归混沌的BLOG 十年 | 重归混沌的BLOG 在Go语言中如何使XML加载内存无限趋近于0 | 重归混沌的BLOG 在Go语言中如何使XML加载内存无限趋近于0 | 重归混沌的BLOG 对跨服玩法中的分布式一致性问题进行简单抽象 | 重归混沌的BLOG 对跨服玩法中的分布式一致性问题进行简单抽象 | 重归混沌的BLOG Go语言逃逸分析之slice和map | 重归混沌的BLOG Go语言逃逸分析之slice和map | 重归混沌的BLOG 谈谈观测 | 重归混沌的BLOG 谈谈观测 | 重归混沌的BLOG 写了个AI Agent服务端 | 重归混沌的BLOG 写了个AI Agent服务端 | 重归混沌的BLOG 谈谈代码设计中“严丝合缝” | 重归混沌的BLOG 谈谈代码设计中“严丝合缝” | 重归混沌的BLOG 一次艰难的线上游戏服务器内存排查经历 | 重归混沌的BLOG 一次艰难的线上游戏服务器内存排查经历 如何基于LanguageServerProtocol来编写lint工具 谈谈游戏服务器中RPC模块的设计 谈谈游戏服务器代码抽象 最近碰到的一个分布式一致性问题 谈谈游戏服务器的自动化测试 对Raft协议的一点理解 使用mmap来学习/proc/pid/smaps 2023(完) 再次实现了一个Lua性能分析器 终于给Silly的定时器增加了取消功能 一次虚拟内存排查经历 游戏服务器分布式数据的一种同步的思路 为silly增加了互斥锁 Go语言之闭包篇 一例误用unsafe包引起的内存问题 Go语言之内存篇 初识Go语言 重新抽象图形API 给Lua实现了一个数学库 谈谈跨平台图形API的抽象 寻路和Flocking算法的结合 行为树的一种高效实现 内测过程中Shader出现的问题 彻底解决多国语言 谈谈数据库的选型 再谈Lua热更新(终) 初窥Rust 关于游戏服务器的服务拆分 ECS的初步实现 ECS初探 屏幕空间(SreenSpace)的想象力 一些对辐射度量学的理解 深度缓冲和半透明渲染 Mysql的间隙锁 更新一些GPU相关知识 2020 地形渲染之爬过的坑 Lua5.3 GC源码阅读(5) 实现一个数据库存储队列 再学计算机图形学入门 再谈分布式服务架构 游戏上线一个月后的反思 一次并发Bug 双向链表的三种实现 谈谈随机数的使用 再谈性能优化 2019 Lua中的函数式编程 重构登录逻辑 Unity资源管理(续) 谈谈Unity的资源管理 一次关于Cache的性能分析 历史之2018 DC3算法 移动平台native代码遭遇的坑 从CPU层面谈谈优化 开卷有益(UNIX编程艺术篇) GC竞争问题 通过Mesh投影来实现贴花系统 谈谈我对数据同步的理解 又一个类型提升引起的Bug Lua5.3 GC源码阅读(4) Lua5.3 GC源码阅读(3) Lua5.3 GC源码阅读(2) Lua5.3 GC源码阅读(1) 三角形光栅化时遇到的坑 一次git事故 再见2017 又一个lua调试器 客户端缓存落地方案 Paxos算法 HTTP服务器的特点 一次性能优化经历 关于CPU分支预测 C程序中让两个不同版本的库共存 实现了一个AOI模块 一个高可伸缩的游戏服务器架构 关于网络协议封装的一些新想法
2022(完)
重归混沌 · 2023-01-01 · via 重归混沌的BLOG

2022年终于过完了,细细数来,有用时间真的比往年都短。

我翻了翻Blog, 几乎没有什么转折性的收获。

因为服务器一直找不到突破方向,打算在客户端方向努努力。

年初的打算是,先打磨出一个可用的,基于Lua的客户端框架,以便能更深刻理解客户端的全部开发流程(虽然我改过客户端框架,写过还算可用的热更新框架,也写了一些Shader。 但是对于从0实现一个客户端框架,我确实没有经验)。

框架由具体需求驱动。因为我不是专业搞客户端的,所以边抄一个游戏,边实现框架是目前来讲最好的方式。

刚好这时我在网上找到了类似《王者荣耀》的全套资源,那就先抄个王者荣耀试试吧。

UI方面,我接入了FairyGUI

在接入时,我灵光一现,设计了一套多国语言机制。即使一年后今天,我重新审视这套机制,也并不能发现任何缺点。

这套机制几乎可以实现在任何语言和任何表结构下。

王者荣耀,地图中会有很多小兵参与战斗。

因此在做完登录流程之后,小兵的AI就是下一步要做的事。

游戏AI,行为树几乎是必不可少的标配。它对策划同学太友好了,实现起来复杂度又不高。

在看完《Behavior Trees in Robotics and AI》书中描述的行为树后。

我观察到一个现象,行为树表达出的逻辑,其实是状态机的一个子集。

在经过不复杂的“编译”过程后。我们可以做到在运行时以状态机的开销,来达成行为树描述的逻辑。

这样可以大大提升行为树的运行效率(对于策划而言,使用上还是行为树,只是在运行前才会将整棵树编译成一张跳转表)。

在研究行为树的过程中,发现了一本叫《Artificial Intelligence for Games, Second Edition》的书。

这本书中提到了一种叫做Flocking的算法,以前就对此类算法很有兴趣,就趁机研究了一下

后面两个月,其实就只干了一件事,抢菜。

复工之后,由于公开课《现代游戏引擎:从入门到实践》的出现,我暂停了实现客户端框架的计划。

相比实现一个客户端框架,从0实现一个客户端引擎,更能引起我的兴趣。

虽然此时的我,还没有写过一行Vulkan代码,没有看过如UE之类的开源引擎代码。

但依然想试着,根据课程内容和Unity的使用经验,来实现一个玩具引擎

在能基本渲染出一个场景后,我就迫不及待想要使用键盘来控制相机的移动。

在实现相关逻辑时,我重新思考了如何使用Lua,高效地编写3D数学相关代码

由于之前基于Vulkan抽象出来的RHI不够好(使用起来很别扭),再加上了解到了Bindless这一黑魔法。

打算将引擎直接重构成基于Bindless的RHI抽象。

比较惨的是,刚抽象完,公司就倒闭了,被迫中止客户端相关知识的学习。

根据市场需要,从零开始学习Go语言。

Go语言的优劣,我不想评判。但是他有很多不错的闪光点。

比如:这个这个还有这个

然后这个年就过完了。

再简单总结一下。

2022年技术上一共就干了三件事,结果还都没有一个完成的。

  1. 客户端框架,只做完UI相关部分
  2. 客户端引擎,只做到基于Bindless RHI的抽象,shader接口,资源格式等都还没有设计
  3. Go语言,只熟悉了,工作用最常用的底层机制,对调度及编译优化等相关的知识并不深入

2023年学习的时间不可能像以前那么多了,那么就少安排任务吧:

  1. 继续熟悉Go语言
  2. 熟悉K8S, etcd, kafka,ELK等这些在Go圈常用的基础设施
  3. 放弃之前基于静态容量的分布式架构设计,基于K8S来重新设计一套可以动态伸缩的服务器架构
  4. 研究ECS在服务端的应用