游戏服务器开发指南(序)

从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构 从零开始用java编写一个游戏服务器。涉及分布式开发、netty、mongodb、redis。没有难点,对新人友好。 阅读详情

构思这个系列已经有一段时间了。一方面,作为一个十多年经验的游戏开发者,很希望把自己掌握的知识和经验系统化;另一方面,最近引发热议的裁员潮、35岁危机等话题也促使我思考:多年的技术沉淀和价值究竟在哪里。换句话说,如果自己能做的事情和技术上限,年轻人工作几年就能达到,那么就很难称得上有竞争力。在当前浮躁的社会背景下,技术大概率是无法做一辈子的,但是深耕一个领域,尽可能延长自己的职业生涯,增强不可替代性,无疑是有益的。

在我多年的游戏服务器开发生涯中,学习过大量网络编程和数据存储方面的知识,也看过不少游戏服务器相关的书籍。总的来说,专讲游戏服务器的书籍和文章数量还是偏少,因为这个细分领域本身小众,属于交叉领域。支撑游戏服务器开发的三驾马车是:游戏业务、服务器开发、编程语言。游戏服务器技术的进步本质上依赖于三驾马车的进步。

请添加图片描述这三驾马车的现状是:

  1. 游戏业务:近年来未有大的玩法革新,进步缓慢。
  2. 服务器开发:以互联网行业作为主要推动者,近年来有云计算、容器化等新技术出现。
  3. 编程语言:依赖特定语言版本的更新(如Java、C++)或是新语言(Go)的兴起。

这就导致了:

  1. 文章多集中在单个变化较快的领域,如专门讲编程语言,或专门讲服务器开发,结合游戏业务来讲的偏少。
  2. 即使有讲游戏服务器的,质量也参差不齐。高手不屑于讲,觉得老套;新人缺乏积累,流于浅显。讲解多是基于某种特定语言,未能提出通用的思路和解决办法。少有能结合业务实际把问题讲深讲透的。

基于以上现实,本人也是出于为行业做一点贡献的目的写作本系列。系列标题是《游戏服务器开发指南》,它也揭示了本系列的写作主题:汇集游戏服务器开发领域一些有价值的经验法则,这些经验法则来自与业务实际紧密相关的细分话题,结合本人多年经验和实践,确保分析深入浅出。写作模式会类似《Effective Java》这种Effective系列的书籍。

本系列将包括但不限于以下内容:网络通信、数据存储、常见模块设计思路、线程模型、设计模式、热更新、分布式、断线重连等。

本系列不局限于特定语言,不教读者搭建框架。

之前看过文礼兄的从零开始手敲次世代游戏引擎系列,很是佩服。这个系列从2017年更新至今,包含上百篇文章。这是需要很大毅力才能做到的事情。以此为榜样,希望自己的这个系列也能长期更新下去,敬请期待。限于笔者水平,如有错误欢迎指正。

从零开始搭建游戏服务器 第七节 创建GameServer 一些比较简单的、并发量较低的游戏,希望使用单体服务器,其实就在这LoginServer的基础上继续开发即可。但是一些需要能支撑高一些并发,并且希望做到能横向扩容的游戏,就需要用到分布式的思想来做。将其分成 登录服和游戏服。登录服用于提供客户端信息入口,处理账号鉴权和协议转发的功能。游戏服用于处理游戏业务的具体逻辑,可以设定不同的游戏服处理不同的功能。 阅读详情

相关推荐

Java游戏服务器开发如何学

反射也是我们做游戏服务器常用的,特别是事件响应和处理,我们把对应的处理和对应的事件联系起来,底层都是通过反射,根据对应的事件编号等规则找到处理的反射对象或方法,底层来处理,这样业务逻辑层只需要接入服务的处理类就可以了,底层通过反射来把对应的事件映射派送到对应的服务。日志对于游戏服务器开发来说是非常重要的,特别是上线的时候,日志是最重要的一个调试手段,线上版本代码出了bug,也只能通过日志来查,所以一个好的日志系统非常的重要,Java的日志系统也是非常成熟的,比如log4j等,很多日志系统可用。

爱编程的鱼的博客 969

【游戏开发实战】手把手教你从零跑一个Skynet,详细教程,含案例讲解(服务端 | Skynet | Ubuntu)

【游戏开发实战】手把手教你从零跑一个Skynet,详细教程,含案例讲解(服务端 | Skynet | Ubuntu)

linxinfa的专栏 2万+

游戏服务器开发(基本需求)

1,团队沟通 基本上不管做什么开发,都是一个团队来完成的,游戏也是如此,游戏团队一般由老板,总经理,CTO(技术主管),主策划(领导一些人,包括数值策划,系统策划,特效策划),主美(领导一些人,包括原画,UI设计,特效动作设计),客户端主程(领导一些人,客户端程序员,客户端程序员...),服务器主程(领导一些人,包括服务器程序员,服务器程序员),外加运维。而游戏的大部分逻辑实现与逻辑数据验证都会放在服务器端,所以服务端程序需要明确了解策划的需求,要了解就需要沟通,沟通方式的正确与否,直接关系到功能的实现是

天涯路的专栏 3724

谈谈一只菜鸟转行Erlang游戏服务端的经历(希望大佬指导,也希望我的经历能给一些还未毕业的同学或者正在迷茫自己工作内容的同学一些感触)

第一次发文章,主要想谈谈自己近半年来的心路历程吧,希望各位大佬多多指教,也希望给看到这篇文章还未入行或者打算入行但是不知道选择什么方向的同学一点我自己的亲身体验。

GEM_boy的博客 2577

Java游戏服务器成长之路——2016随笔总结

写在开头Java游戏服务器成长之路的系列,已经很长时间没写了,不是不想写,而是这一年,基本都是在忙别的了,今天特地挤出时间,对我的2016年,做一个不留遗憾的总结。2016的事件不知不觉,又到了春节抢票的时候了,这两天除了盼着年终能发点奖金以外,就是盼着能买一张合适的火车票,今年是离家最久的一年,幸运的是,我成都的小房子要结房了,必须要我本人到场,这就能给我一个理由多请一周的假提前回去几天,很久没看

何小成的成长记录 1万+

揭秘游戏服务器,不看后悔!!!

目录 前言 1、常见游戏模块 2、开发语言与项目构建发布 3、JAVA游戏服务器,需要掌握的技术 4、总结 前言 《摩尔庄园》前段时间上线, 持续超出市场预期,相信也有不错的收益。游戏好玩,所有玩家看到了前端,但是做一款游戏,离不开后台游戏服务器的支持,服务器都要做什么,服务器的架构是什么,需要哪些技术,一系列的问题有没有思考过?下面讲下作为做服务器开发中需要做的事。 1、常见游戏模块 游戏玩法 游戏开发中常见的玩法模块,一般的游戏都会包含这些玩法 新手引导、任务系统...

我是香菜 3万+

游戏服务器开发都要学什么

一,游戏服务器开发工作介绍 近来遇到有很多人想从其它开发领域转到游戏服务器开发行业上来,他们或许觉得游戏服务器开发工资高,或许觉得做游戏服务器需要掌握的技术更高级,可以锻炼自己,或许觉得想换个环境等等。不管出于什么原因吧,做为一名几年的游戏服务器开发者,当然是持欢迎态度的,那么我就先介绍一下游戏服务器开发的工作吧,游戏服务器开发具体要做哪些工作呢? 1,团队沟通 基本上不管做什么开发,都是一...

王广帅--游戏开发-服务器开发 3万+

闲话目前游戏服务器的开发

我是从12年开始进入页游行业,接触到的第一个游戏项目就是淘米网的《摩尔庄园》,公司那个时候也刚在美纽交所上市,被Benson,魏震和Rock腾讯三巨头的感染下,做着喜欢的游戏...

yolo模型训练找我,AI游戏合作找我 4454

2020,游戏服务器开发需要掌握哪些,你都具备了吗

序言 一、游戏服务器开发工作介绍 有很多朋友会问我,想从其它开发领域转到游戏服务器开发上来,需要学什么? 或许是因为游戏服务器开发工资高,或许是因为感觉做游戏服务器需要掌握的技术更高级,更具有挑战性,或许觉得想换个行当试试等等。 不管出于什么原因吧,做为一名从事游戏服务器开发和教学很多年的人,我当然是持欢迎态度的,那么我就先介绍一下游戏服务器开发的工作吧,游戏服务器开发具体要做哪些工作呢? 1.团队沟通 基本上不管做什么开发,都是一个团队来完成的,游戏也是如此,游戏团队一般由老板、总经理、CTO(技术

weixin_49669470的博客 2010

游戏服务器架设教程

游戏服务器架设教程

游戏服务器开发的基本体系与服务器端开发的一些建议

近年来,我身边的朋友有很多都从web转向了游戏开发。他们以前都没有做过游戏服务器开发,更谈不上什么经验,而从网上找的例子或游戏方面的知识,又是那么的少,那么的零散。当他们进入游戏公司时,显得一脸茫然。如果是大公司还好点,起码有人带带,能学点经验,但是有些人是直接进入了小公司,甚至这些小公司只有他一个后台。他们一肩扛起了公司的游戏后端的研发,也扛起了公司的成败。他们也非常尽力,他们也想把游戏的后端做好。可是就是因为没什么经验,刚开始时以为做游戏服务器和做web差不多,但是经过一段时间之后,才发现代码太多,太乱了,一看代码都想重构,都是踩着坑往前走。这里我把一些游戏开发方面的东西整理一下,希望能对

Python实现游戏服务器开发

而对于更大规模的应用,则可以考虑MySQL或PostgreSQL这样的关系型数据库,或者是MongoDB这类非关系型数据库,以满足不同的需求。例如,每当玩家完成特定任务时,就会获得相应积分或徽章,这些奖励会在个人资料页面展示出来,激发其他玩家的竞争欲望。你可以把这里当作自己的家,无论是工作之余的小憩,还是寻找灵感的驿站,我都希望你能在这里找到属于你的那份快乐和满足。记住,无论何时何地,只要心中有热爱,脚下就有力量!

master_chenchen的博客 1475

量子城域网建设设备系列(三):网络管理系统(NMS)

本文对量子网络中的网络管理系统进行了初步的介绍。

量子领域相关话题 2013

Java游戏服务器开发之二--导航帖

        Java游戏服务器开发之三--日志         Java游戏服务器开发之四--通讯框架netty           Java游戏服务器开发之五--使用工厂模式生成netty                   Java游戏服务器开发之六--整合spring                         Java游戏服务器开发之七--使用IServer控制服务的启动...

cmqwan的博客 1万+

手把手教你用VS Code + Codex在WSL中高效编程(避坑指南)

本文提供了一份详细的避坑指南,教你如何在WSL环境中高效配置和使用VS Code与OpenAI Codex。文章核心在于解决WSL内Codex扩展的OAuth登录失败问题,推荐将扩展安装在Windows本地,并通过UNC路径直接访问WSL文件系统,从而实现AI辅助编程与Linux开发环境的无缝结合,提升编码效率。

weixin_28677451的博客 1064

WPS JS宏实战:批量调整200个Word表格格式的避坑指南(附完整代码)

本文提供了一份详尽的WPS JS宏实战指南,针对批量调整大量Word表格格式的需求。文章深入解析了如何利用JS宏自动化设置字体、行距和边框,并重点解决了常见的“首行访问报错”等核心难题,附有可直接使用的完整代码,帮助用户显著提升文档处理效率。

weixin_29280219的博客 430

5分钟快速掌握:Java游戏服务器开发终极指南

想要在最短时间内构建高性能的Java游戏服务器吗?iogame框架为您提供了一套完整的解决方案。作为专为现代游戏开发设计的服务器框架,它通过创新的设计理念和简洁的API,让游戏后端开发变得前所未有的高效。本文将带您从零开始,全面掌握这个革命性框架的核心用法。 ## 🚀 3大核心优势:为什么选择iogame? iogame框架经过精心设计,具备以下突出优势: **极简开发体验**:通过注解驱

gitblog_00841的博客 974

手把手教你用EGM96模型校正DEM数据(含在线工具推荐)

本文详细介绍了如何使用EGM96地球重力场模型校正DEM数据中的高程偏差。通过对比WGS84椭球面与大地水准面的差异,解释了校正原理,并提供了从在线工具快速验证到Python脚本批量处理的全流程实战指南,帮助GIS开发者和数据分析师确保高程数据基准一致,提升空间分析精度。

ttt77的博客 1007

Python Web 在游戏服务器开发中的应用与优化

此外,结合 Redis 作为游戏状态的存储和共享工具,可以在多实例的服务器间实现状态的快速访问和同步。实时游戏需要在毫秒级别内处理大量玩家的输入和状态更新,而回合制游戏则可以在每个回合之间有更多的时间进行计算和状态更新。在实时游戏中,玩家的输入需要即时反馈,服务器端则需要在收到消息后迅速更新游戏状态并将其广播给所有连接的玩家。在具体实现时,可以利用 asyncio 的协程特性定义异步任务,这样就能在等待 I/O 操作时,继续执行其他任务,从而实现更高效的并发处理。

switch616的博客 1452

GD32F303实战:用定时器4触发ADC2+DMA,实现10ms精准采样1024点的完整流程

本文详细介绍了在GD32F303微控制器上使用Timer4触发ADC2配合DMA传输,实现10ms精准采样1024点的完整方案。从硬件架构设计、时钟树配置到定时器参数计算,提供了完整的工程实现流程和常见问题排查方法,适用于工业传感器监测等高实时性场景。

weixin_29194693的博客 433

RV1106G3的fastboot调试

本文详细描述了在幸狐的Luckfox Pico Ultra硬件平台上,使用官方SDK进行系统优化和YOLOv5s模型部署的过程。首先,硬件板卡使用幸狐的SDK进行EMMC非Fastboot配置时功能正常,但Fastboot配置编译失败,通过修改设备树中的ramdisk大小解决了编译问题,但运行时仍报错。幸狐提供的Fastboot烧录文件可正常运行,表明硬件支持Fastboot。随后,使用官方SDK版本rv1106_rv1103_240813进行编译和调试,发现EMMC Fastboot启动失败,通过修改U-

fzktongyong的博客 2359

如何学习java游戏服务器开发?

为什么游戏服务器很多都用Java开发 Java 做游戏服务器开发的优势还是很多的,《我的世界》的服务器就是Java开发的。Java技术比较成熟,大数据,云计算,网站App后台,基本都采用Java开发,同时跨平台,游戏服务器这个领域,使用Java的公司月越来越多,一是技术成熟,简单,有很多框架可以使用,二来是招人也比较方便。 这里 游戏服务器和应用服务器不一样,游戏服务器是需要让多个玩家同时在线,而应用服务器是玩家和系统之间的数据交互和通讯,所以应用服务器大多以http 短连接为主,而游戏服务器需要多人

Java_909的博客 2584

⭐️白嫖的阿里云认证⭐️ 【真题&参考答案】:大模型Clouder认证:利用大模型提升内容生产能力

【摘要】真题「大模型Clouder认证:利用大模型提升内容生产能力」

davidkorhenn的博客 1925

游戏服务器是干什么的(大话、浅析)

在做游戏服务器开发之前之前一直有疑问,服务器是干什么的?问了几位前辈,得到的答案大概都是:服务器就是一台电脑,你可以访问,然后做一些事情(我现在觉得这个答案是很精辟的)。这个答案对于之前的我来说,由于根本没接触过服务器,不能理解其中的含义。百度得到的答案也不是我想要的。 现在做游戏服务器开发两个月了,分享一下自己对游戏服务器的理解,希望能以另外的角度给想做游戏服务器开...

班门弄斧 9803

在 SAP 资产模块跨 2024 和 2025 两个年度操作后,运行 AFAB 测试无数据,大概率是折旧已完全过账、跨期配置异常或资产数据异常等原因

SAP资产模块跨年度操作AFAB测试无数据的排查方案:首先检查折旧是否已完全计提,确认资产主数据价值;其次验证跨年度配置是否合规,包括全局配置、折旧范围和账期状态;然后重新执行AFAR折旧计算刷新数据;排查资产主数据异常或业务操作冲突;最后核对AFAB运行参数是否正确设置,包括会计年度、期间范围和运行模式等。

金牌架构师 866

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

深度解析ioGame:Java游戏服务器开发的终极实战指南

ioGame是一款专为Java开发者打造的高性能游戏服务器框架,它提供了完整的游戏服务器解决方案,帮助开发者快速构建稳定、高效的游戏服务。无论是小型休闲游戏还是大型多人在线角色扮演游戏,ioGame都能满足你的需求,让你专注于游戏逻辑开发,而非底层架构搭建。 ## 为什么选择ioGame? 在游戏开发领域,服务器性能和稳定性至关重要。ioGame基于Java语言开发,充分利用了Java的跨平台

gitblog_00668的博客 951

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: 手把手教你写一个极简版Jedis
下一篇: 游戏服务器开发指南(一):设置合适的Socket选项
长三月
博客等级 码龄9年 228粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值