游戏服务器
文章平均质量分 86
erlang_hell
这个作者很懒,什么都没留下…
展开
-
2021-11-05-golang内存分配
这里写自定义目录标题简介大事件基础数据结构、概念STW(Stop The Word)流程golang源码注释mgc说明mstats说明内存分配分配大概流程内存块三色标记和写屏障控制器 gcControoler测试数据如何阅读heap信息概要统计信息堆统计信息简介信息细则栈信息细则非堆栈内存信息细则引用简介最近被golang的内存问题困扰,这里做一下功课,将通过收集资料,记录笔记的方式将golang的内存分配相关知识搞清楚。资料来自于阅读《go语言学习笔记》,源码,网上的资料。大事件2014/06原创 2021-11-07 21:38:39 · 907 阅读 · 0 评论 -
go-etcd阅读笔记
简介etcd是CoreOS团队于2013年6月发起的开源项目,是一个分布式、可靠 key-value 存储的分布式系统。当然,它不仅仅用于存储,还提供共享配置及服务发现。向etcd 注册 该服务(其实就是 存一个值)然后向etcd 发送心跳,当etcd 没有检测到心跳就会 把这个键值对 删了(这整个动作是etcd里的租约模式),网关那边 就只需要 watch 这个 key ,就能够知道 所有服务的所有动态了etcd现在用于制作服务发现是比较常见的。用一篇文章记录一下如何安装、配置、使用。以及介绍一些e原创 2021-09-27 10:09:13 · 276 阅读 · 0 评论 -
gperftools使用
简介使用gperftools统计相关准备安装性能监控工具gperftools-2.9.1,发布时间是2021-03-03。tar xvf gperftools-2.9.1.tar.gzcd gperftools-2.9.1./configuremake -j8sudo make install64bit需要这个库的支持libunwind-1.5.0.tar.gz,发布时间2020-11-11。tar xvf libunwind-1.5.0.tar.gzcd libunwind原创 2021-09-02 17:48:33 · 1303 阅读 · 0 评论 -
REUSEPORT-REUSEADDR-学习
简介记录一下stackoverflow关于 SO_REUSEPORT SO_REUSEADDR 两个选项的解释。理论SO_REUSEADDR如果在绑定套接字之前在套接字上启用了SO_REUSEADDR,则可以成功绑定该套接字,除非与绑定到完全相同的源地址和端口组合的另一个套接字发生冲突。现在你可能想知道这和以前有什么不同?关键词是“完全正确”。因此,REUSEADDR主要改变了在搜索冲突时处理通配符地址(“任何IP地址”)的方式。测试结果:SO_REUSEADDRsocketAso转载 2021-09-01 14:11:23 · 372 阅读 · 0 评论 -
Behavior3Editor批量导出改造
项目里面需要将行为树project批量的导出子树。开始部署环境安装环境将node.js 设置成 10.x win32版本,再去匹配 gulp 的版本。通过命令行安装gulp工具。npm install gulp-cli -gnpm install gulp -Dnpx -p touch nodetouch gulpfile.jsgulp --help设置梯子npm config set registry http://registry.npm.taobao.org其实就是 .npm原创 2021-03-18 21:53:28 · 517 阅读 · 0 评论 -
帧同步和状态同步笔记
前言网络同步模式的演化史参考前言在制作网络游戏的时候,经常会讨论同步方式。同步这个话题就是让不同客户端的游戏表现同步。王者荣耀是使用的帧同步(Lockstep),有成功案例,后续才会有很多人想着跟进。帧同步:服务器按照帧转换客户端的操作,其他客户端依赖这些信息在本地模拟表现。状态同步:客户端操作的时候,只能将状态数据提交给服务器,服务器得到了通过运算将最终结果广播给全部客户端。成功案例清单:帧同步状态同步FPSdoomCSGO、守望先锋、逆战、绝地求生M.转载 2021-02-26 08:43:31 · 828 阅读 · 0 评论 -
recastnavigation
recastnavigation 在做3d游戏的时候,用于做导航的。当前使用 unreal 4.251.recastnavigation工程RecastNavigation 是一个的导航寻路工具集,它包括了几个子集:Recast:负责根据提供的模型生成导航网格。Detour:利用导航网格做寻路操作。这里的导航网格可以是 Recast 生成的,也可以是其他工具生成的。DetourCrowd:提供了群体寻路行为的功能。Recast Demo:一个很完善的 Demo,基本上将 Recast 、 Det原创 2021-02-02 09:57:58 · 3888 阅读 · 4 评论 -
golang-pprof性能分析工具
记录一下pprof查询golang性能相关;1.在代码里面添加性能监控的代码import ( "net/http" _ "net/http/pprof")go func() { http.ListenAndServe(":10003", nil)}()2.需要安装环境go get -u github.com/google/pprof2.1.开篇编写好了golang服务之后,接着要开始关注服务的CPU,内存使用情况。golang提供了性能剖析工具,记录一些自己搜集到的信原创 2020-12-30 13:53:36 · 574 阅读 · 3 评论 -
3d数学
这里写自定义目录标题1.坐标系2.三角学2.1.直角三角形三角函数概念2.2.角度弧度参考在游戏开发中,需要使用到向量,三角函数之类的知识。1.坐标系2d坐标系:x,y3d坐标系:x,y,z2.三角学2.1.直角三角形三角函数概念a:对边b:邻边c:斜边∠A为θ∠A 为\theta∠A为θsin(θ)=a/csin(\theta) = a/csin(θ)=a/c正弦:对边比斜边。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bOrB7aoI-160原创 2020-12-30 13:48:19 · 961 阅读 · 0 评论 -
FSM-Golang
这里写自定义目录标题概念游戏中常用的状态机阅读 looplab/fsm 实现参考使用FSM(Finite State Machine)来制作怪物的AI,比较轻量级;概念状态机分为两大类:名称说明Moore machine输出只和状态有关而与输入无关Mealy machine输出不仅和状态有关而且和输入有关系(使用这种状态机通常可以减少状态的数量。)状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果关系的考虑。“现态”和“条件原创 2020-11-19 17:36:08 · 758 阅读 · 0 评论 -
游戏中编号的分配
文章目录概述方案1方案2方案3方案4参考概述游戏中的编号包含玩家编号,英雄编号,物品编号等等。也是制作游戏的基础。编写这篇文章,来分析一下游戏中这些编号是如何生成的。方案1在启动服务器之后将时间戳记录下来,再加上一点点随机数参杂在其中。每次获取的时候使用一个极大的质数做乘法,取低位;方案2为每个区服分配一个固定区间的编号,并且保存当前的使用情况;这样是严格按照id不重复来制作;方案3...原创 2020-02-16 09:59:06 · 1743 阅读 · 1 评论