从零撸一个游戏服务端
文章平均质量分 95
高冷颜
本博客所写内容均为个人学习所得与心得,目的在于巩固与记录所学知识,如果能帮到大家,那真是巧了。
展开
-
从零开始搭建游戏服务器 第八节 角色创建登录流程开发
上一节我们创建了GameServer用于处理具体游戏业务逻辑。当GameServer启动时,会连接LoginServer进行注册。这一节我们基于这个模型来对GameServer进行开发,并实现角色的创建和初步登录流程。本节我们对角色创建和登录做了基础开发,要实际使用还需要增加很多的逻辑处理。比如创建角色时判断重名、角色数量。本节的内容比较多,大家可以先大概地看一下实现思路,具体代码可以不看,过段时间我将该架构整理得大概能用时,会将git地址公开出来由大家一起学习。原创 2024-04-07 13:54:30 · 1287 阅读 · 7 评论 -
从零开始搭建游戏服务器 第七节 创建GameServer
一些比较简单的、并发量较低的游戏,希望使用单体服务器,其实就在这LoginServer的基础上继续开发即可。但是一些需要能支撑高一些并发,并且希望做到能横向扩容的游戏,就需要用到分布式的思想来做。将其分成 登录服和游戏服。登录服用于提供客户端信息入口,处理账号鉴权和协议转发的功能。游戏服用于处理游戏业务的具体逻辑,可以设定不同的游戏服处理不同的功能。原创 2024-03-26 20:36:47 · 1725 阅读 · 2 评论 -
从零开始搭建游戏服务器 第六节 合理使用自定义注解+反射 简化开发流程
当我们收到不同的协议号,我们添加了不同的if判断条件来反序列化协议,再根据不同的协议号调用不同的方法。这种方法十分低效且不安全。使用自定义注解+反射的技术,可以一劳永逸地解开我们的束缚,减少垃圾代码原创 2024-03-23 10:00:00 · 1046 阅读 · 0 评论 -
从零开始搭建游戏服务器 第五节 Redis引入并实现生成账号Id
上一节我们在项目中引入了MongoDB作为持久化数据库,然后用了注册和登录两个例子分别展示了如何使用spring-data-mongo库进行数据插入与查询。持久化数据库将数据写入硬盘,存储安全性较高,并且硬盘成本便宜,可以长久存放大量数据并按需扩容。但是他有个缺点在于硬盘的io速度,较于内存底了不是一个数量级。而游戏玩家对于延迟是很敏感的,因此经常会使用缓存来进行热数据的存放,减少数据库的压力。原创 2024-03-20 16:53:57 · 916 阅读 · 2 评论 -
从零开始搭建游戏服务器 第四节 MongoDB引入并实现注册登录
游戏服务器中, 很重要的一点就是如何保存玩家的游戏数据.当一个服务端架构趋于稳定且功能全面, 开发者会发现服务端的业务开发基本就围绕着CRUD来展开,即业务数据的创建 \ 查找 \ 更新 \ 删除.本节内容我们就将MongoDB作为持久化数据库引入项目中.本节我们将MongoDB引入到项目中作为我们的持久化数据库来使用, 并通过注册登录的两个小例子, 来展示spring-data-mongo这个库的用法.原创 2024-03-20 00:06:30 · 1364 阅读 · 1 评论 -
从零开始搭建游戏服务器 第三节 Protobuf的引入并使用
Protobuf是Google公司开发的一种灵活,高效,自动化地序列化结构数据的方法,类似于XML、JSON、YAML等。但是它比上述格式更小、更快、更灵活。我们可以编写.proto文件定义数据的结构,然后用其提供的工具生成对应语言的代码。本节的讲东西比较简单, 主要是proto文件的编写与生成, 以及如何对protobuf打包与解包. 这些在后续我们多使用就能熟练.原创 2024-03-17 13:28:29 · 1131 阅读 · 2 评论 -
从零开始搭建游戏服务器 第二节 Actor模型与应用
本节主要介绍Actor模型以及如何将其应用到我们的系统中。原创 2024-03-16 22:34:21 · 1181 阅读 · 0 评论 -
从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构
从零开始用java编写一个游戏服务器。涉及分布式开发、netty、mongodb、redis。没有难点,对新人友好。原创 2023-03-23 22:37:41 · 8309 阅读 · 7 评论