ECS架构--MMO服务器开发技术点记录(三)
本篇是踏入MMO服务器开发的第一步,在设计服务器的各种状态服务之前,我想先介绍一个设计模式:ECS设计模式。ECS是游戏客户端的经典设计模式,读者可能会好奇,客户端的设计模式为什么要在服务器这里使用呢?这是为了方便实现客户端和服务端的逻辑同步,方便状态的同步。也就是我们需要在服务端也实现一套EcS系统,和客户端的ESC保持一致。 ECS架构 / Entity - Component - S...
本篇是踏入MMO服务器开发的第一步,在设计服务器的各种状态服务之前,我想先介绍一个设计模式:ECS设计模式。ECS是游戏客户端的经典设计模式,读者可能会好奇,客户端的设计模式为什么要在服务器这里使用呢?这是为了方便实现客户端和服务端的逻辑同步,方便状态的同步。也就是我们需要在服务端也实现一套EcS系统,和客户端的ESC保持一致。 ECS架构 / Entity - Component - S...
本篇文章记录MMO服务器项目开发中学习的技术点和遇到的问题。大致分成几个模块进行记录。 包管理和构建工具 采用cocan和cmake进行依赖库的管理和源代码的构建工作。 网络框架 任何联网应用离不开网络通信协议,该服务器选用TCP作为通信协议。通过IO多路复用实现多客户端的并发通信,为了减轻开发负担(服务器的网络框架和普通互联网的网络框架本质上没有太大的区别),这里采用libevent...
序列化:将数据结构转换成字符串或字节流的过程,便于存储或传输。 反序列化:将字符串或字节流转换回原始数据结构的过程。 二叉树的序列化 二叉树的序列化可以采用两种思路:DFS (深度优先搜索)和BFS(广度优先搜索)。下面给出实现: BFS class Codec { public: // Encodes a tree to a single string. stri...
前言 秋招在即,为了不慌忙准备,于此计划下秋招每日安排。 每日计划 按照三部分准备 算法 八股 / 整理面经 项目 / 实习 上午: 算法: 真题 + 剑指offer 下午: 八股: 复习常见问题(面试鸭为主) 整理面经,看别人的面经 晚上: ...
快速幂算法通过二进制分解将幂运算的时间复杂度从O(n)优化到O(log n)。核心思想是将指数按二进制位拆解,例如a^13 = a^(1101₂) = a^8 × a^4 × a^1,只计算二进制位为1对应的幂次。算法每次循环将底数平方(a = a × a),指数右移一位(b »= 1),当最低位为1时(b & 1)才将当前底数乘入结果。相比普通方法需要999次乘法计算2^1000,...
title: redis知识合集 date: 2025-07-28 20:51:07 tags: [数据库] Redis中的key值非常大会造成什么影响? 对持久化的影响(AOF、RDB): 当 AOF 写回策略配置了 Always 策略,如果写入是一个大 Key,主线程在执行 fsync() 函数的时候,阻塞的时间会比较久,因为当写入的数据量很大的时候,数据同步到硬盘这个过程是很...
mysql三大日志总结 undo log redo log bin log undo log: Innodb存储引擎生成的日志,用于实现事务中的原子性,主要用于事务回滚和MVCC redo log:Innodb存储引擎生成的日志,实现事务中的持久性,主要用于掉电等实例崩溃后的恢复 binlog:Server层生成的日志,主要用于数据备份和主从复制 undo log 回...
cin.tie(nullptr) -> sync_with_stdio(false);
建立具有联通关系的集合的数据结构;什么是连通性:A->B, B->C, 则A->C。ABC就可以划在一个具有联通关系的集合中。 基础结构是father数组 int father[MAXN]; void init(int n) { for(int i = 0; i < n; i++) { father[i] = i; } } vo...
前言 本人本科阶段的第一段实习在月初结束,最近需要准备简历去投递秋招,在这里对实习经历中的工作内容介绍、技术点介绍、困难点介绍进行总结,方便后续简历的编写。 实习内容 职务:服务器开发(go) 工作时间:2025年3月-2025年7月 负责两款游戏服务器开发,全程参与游戏需求的抽象、protobuf协议设计、游戏逻辑开发、测试验收至上线部署全过程; 部分游戏采用快照同步的模式,能...