游戏开发封面

游戏开发

基于多级时间轮的定时器机制

基于多级时间轮的定时器机制

星期二, 1月 14, 2025

4.1 原来的定时器调度机制 * 简单的轮询遍历式定时器: * 在线程循环中,每隔一定的时间间隔,调用一次OnTimer * 在OnTimer中按照管理器、对象、对象的成员等逐层遍历所有OnTimer void ThreadProcess() { while (true): { // do some

MoonFlame
5分钟阅读
基于共享内存的 LOG 异步化

基于共享内存的 LOG 异步化

星期三, 1月 10, 2024

原有日志接口的问题 * 写日志耗时高 * 实时写入文件单行 LOG,耗时约 0.25ms(1KB 以内的 LOG 长度并不会显著的影响写入文件的耗时,固态硬盘和机械硬盘也没有显著的差异) * * 异常时日志丢失 * 缓存型日志,单文件 4K 缓存,可以极大的减少写入文件的开销,但是宕机时,可能导致文

MoonFlame
2分钟阅读
C++代码审查终极指南

C++代码审查终极指南

星期二, 5月 2, 2023

英文原文:https://www.incredibuild.com/blog/the-ultimate-guide-to-cpp-code-review-part-2 在第一部分中,我们花了一些时间讨论代码审查的广泛方面。本部分将专注于 C++,提供一个代码审查清单并提供一些最佳实践。你可以按任意顺

MoonFlame
12分钟阅读
游戏服务端死循环检测方案

游戏服务端死循环检测方案

星期日, 4月 2, 2023

传统死循环问题检测排查的困境 游戏服务端开发维护过程中,经常会碰到死循环或者游服性能问题,此类问题一般存在本机或者QA内部环境极难重现,难以定位和排查的问题。一般能采用的方式,只有: 1. 静态代码审查 2. 在可能出问题或者可能耗时较多的代码部分添加LOG,然后经过测试后上线观察,再加LOG,再观

MoonFlame
4分钟阅读
账号服务器开发总结

账号服务器开发总结

星期日, 4月 2, 2023

从六月份开始开发账号服务器到今天,账号服务器的大体功能也算完善了,账号服务器的开发暂时告一段落,预计下周又回去开发游戏服务端了。 一直想写一篇文章总结一下账号服务器开发过程的经验和教训,迟迟没有时间动笔,今天正好借这个机会写一下。虽然不是什么高大上的东西,但是我们的项目还在运营,另外也有商业秘密的原

MoonFlame
6分钟阅读
Lua语言学习笔记

Lua语言学习笔记

星期日, 4月 2, 2023

自学过Lua好多次,每次都因为长时间没用然后忘记了。这次决定做一下笔记,一方面加深印象,另一方面为了下次忘记能够快速“捡回来”做准备。 参考教程:菜鸟教程之Lua教程 参考手册:Lua5.3参考手册 斜体部分为我个人的理解,可能不一定正确,只是帮助记忆。 [TOC] 注释 单行注释 --是单行注释:

MoonFlame
32分钟阅读
RakNet参考手册索引

RakNet参考手册索引

星期日, 4月 2, 2023

RakNet开源免费了,接下来准备学习一下,计划把RakNet的文档做个翻译。就从手册开始吧。原文链接。 介绍 手册最后更新时间 2012-11-19。 查看readme.txt文件获取当前版本号。 RakNet是为游戏或者其他高性能网络应用设计的一套高性能的网络API。 RakNet致力于提供现代

MoonFlame
6分钟阅读
导航网格学习笔记

导航网格学习笔记

星期日, 4月 2, 2023

相关资料 1. 导航网格开源库:RecastNavgation 2. 一个基于C#的AI库,包含UNITY 3D插件:CAINav 3. 开源服务端框架:kbengine 4. WOW服务端模拟器:TrinityCore RecastNavgation是业界比较知名的导航网格生成和寻路的开源库了,大

MoonFlame
6分钟阅读
一种回合制战斗过程的记录方式

一种回合制战斗过程的记录方式

星期日, 4月 2, 2023

回合制战斗的页游,需要将战斗过程在服务端全部计算完成后再下发给客户端,并且还需要将战斗过程保存起来,让第三方直接查看。 将战斗的过程以动作为单位分解成多种消息,之后将多种战斗消息封装在一个消息打包器中下发给客户端。客户端从打包消息中按字节流的方式还原 出战斗消息,再解析消息进行表现。保存战斗过程只需

MoonFlame
2分钟阅读
一种可以守护多个程序的守护进程的实现方案

一种可以守护多个程序的守护进程的实现方案

星期日, 4月 2, 2023

* 账服需要守护程序,原来的守护程序使用的一对一的方式,技术部希望我们能提供一对多的守护程序,这样他们可以不用区分哪个程序守护哪个账服,多开时比较方便。 * 原来的守护进程的做法是先启动守护进程,然后守护进程通过CreateProcess启动账服程序,然后调用WaitForSingleObject挂

MoonFlame
1分钟阅读
3DMMO游戏服务器架构

3DMMO游戏服务器架构

星期日, 4月 2, 2023

服务器框架 备选资源 1. NavMesh 2. 3D碰撞检测 3. 网络通信 * 连接协议 * RakNet * ENet * libuv * 消息协议: * ProtoBuf * MsgPack * BitStream:RakNet集成 网络通信协议的选择 * 结论:由于客户端最后选择了UNIT

MoonFlame
3分钟阅读
3D地图和场景管理

3D地图和场景管理

星期日, 4月 2, 2023

其他项目的做法 * 方案 1. 将场景用八叉树划分,最多三层 2. 物体根据坐标直接加入八叉树的叶节点(忽略了体积和包围盒) 3. 移动采用完全相信客户端的做法 4. 通过MoveState来记录移动过程,客户端上传开始位置、结束位置、持续时间信息,服务器根据开始位置和结束位置、以及时间计算出速度。

MoonFlame
3分钟阅读
下一页

© 2020 - 2026 苍月小筑

🌱 Powered by Hugo with theme Dream.
本站使用 OPPO Sans 4.0 字体 · 字体许可