找回密码
 立即注册
查看: 212|回复: 5

想做游戏处事器端开发,大神能指条路线么?

[复制链接]
发表于 2023-8-16 15:19 | 显示全部楼层 |阅读模式
游戏处事器端的开发的册本都挺难找的,但愿有大神能保举入门教程
或者说说大神当年如何一步一步走来的故事
发表于 2023-8-16 15:19 | 显示全部楼层
2023年3月初,工作了10年+的cpp程序员失业了。一想到有房贷要还,积蓄也没多少还是挺焦虑。
简单介绍下 我是是从2010年开始工作,第一份工作是开发端游客户端,那时候pc端游戏还是非常盛行的,各种小厂,找工作非常容易,只要会写代码 面试流程也很简单,基本上简单的交流之后觉得大差不差就直接可以上班了。后来风口向着页游方向转换,中间陆续换了N份工作,有互联网行业,直播行业,工业软件行业,也是开发各种pc工具软件,Android也开发过一段时间,经历过大小项目N个。最后一份工作还是回到游戏开发的行业,做服务器开发,所以我的技术栈是非常杂的。
失业了在家挺迷茫的,为了防止颓废,还是保持跟上班一样的节奏,早上8点多起来,中午按时煮饭吃饭。本来就是做技术开发的,总想着做点啥?没明确的目标想着 要么自己试试做一款游戏?刷知乎看到个人开发者蛮多的,确实是一个非常大的挑战啊!
关于游戏失败案例的思考

我经历过4家游戏公司,现在想想只有一家成功了,赚钱,并且活到现在也很好,其他3家全部倒闭,现在公司估计都已经注销。
先说说这3家公司为什么会失败?我感觉都有几个共同点:

  • 全公司没一个明确的目标,对游戏缺乏一定思考,各种盲目的抄袭。
  • 公司人员流动很大 尤其是策划人员,换一波几乎要换一次系统
  • 程序技术不过关,没人能够挑大梁都是随着策划案变更修修改改,时间久了代码都烂了
再说剩下那家为什么能成功?
给我印象非常深刻的就是老板一个人思路非常明确,前期对市场和产品的定位准确,老板对技术开发人员非常重视。亲历亲为的去到处拉技术人员再加上朋友之间相互介绍,有时候连团队一次性全部挖来。技术人员开发很短时间内就上线,有了盈利就找各种渠道,业绩成长越来越好被大厂看中,最后找颗大树双赢局面啊。
好了废话少说,说点游戏服务器。
我的想法是开发一套服务器组件,至于是mmorpg 还是 棋牌休闲类服务器  暂时不去想。先开发服务器组件,目标是用最轻量的代码实现,保证windows 和 linux 都可以运行。
主要技术栈 使用cpp开发(因为我对cpp熟悉用的时间也最久,当然用其他语言也是可以的)
技术栈选取:cpp17 + qt + boost (保证跨平台,通用性)后期再加脚本和插件化
进度

下面简单介绍我的思路和进度,不管有没有用,先做了再说,反正现在也没其他事情,工作短时间内也没希望。
2023年3月1日到今天19号  接近3周的时间,差不多完成v1.0.0版本。主要分成8个服务器组件。
服务器服务器组件IP地址Port端口消息开始消息结束
中心服务器CenterServer0:0:0:0200011000019999
数据库服务DataServer0:0:0:0200022000029999
游戏服务器GameServer0:0:0:0200033000039999
网关服务器GateServer0:0:0:0200044000049999
登录服务器LoginServer0:0:0:0200055000059999
日志服务器LogServer0:0:0:0200066000069999
房间服务器RoomServer0:0:0:0200077000079999
地图服务器MapServer0:0:0:0200088000089999
性能测试

Debug模式下1000个client 发包 平均每秒发送6万左右个数据包,我的配置是i7笔记本+16G内存


CPU消耗,console 打印可能消耗不少资源


采用的是 同步发送,如果是异步发送能数据更高。目前看理论上可以1万人同时发包。服务器采用的全部异步方式。
暂时就这么多 其他继续思考和优化  测试一段时间,如果v1.0.0稳定了 再开始搞v2.0.0了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-8-16 15:19 | 显示全部楼层
专注于服务器后台开发,包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等学习地址:https://ke.qq.com/course/417774?flowToken=1013300
发表于 2023-8-16 15:19 | 显示全部楼层
游戏服务器开发其实是综合性比较强的,对开发人员的要求比较高。作为转型或从事游戏服务器开发,我们可以按照这些阶段来进行学习和准备。
  阶段1: 掌握至少一门常用的服务器开发语言与数据结构和算法。服务器不像客户端,运行的时候马上能看到效果,服务器都是后台数据在执行,
同时服务器要求稳定,跑几个月系统要非常稳健,对于开发人员的代码质量和要求很高。所以至少要掌握一门主流常用的服务器编程语言,精通数据结构与算法。
服务器编程语言选择哪些好找工作呢?C++/Java 目前是最主流的,还有Go/C#等。腾讯的和平精英服务端是C++与Lua脚本,我的世界是Java服务器。
C++和Java建议大家选一个,有机会都学。
这边有个游戏开发学习交流小组 点击直接加入 可以在里面获取学习路线
阶段2: 掌握服务器基础知识,构建知识体系。服务器的基础知识主要有网络编程(TCP, UDP),传输协议(HTTP, WebSocket),应用协议(Json, XML, ProtoBuf),
数据库(Mysql, Redis, MongoDB), 多线程, 文件IO,内存池,缓存,操作系统调度,多核优化等。

阶段3: 服务器框架设计与高并发,高性能架构,这块主要是要学会发挥多核优势,选择合适的架构,比如多进程多线程,多进程单线程,日志系统,脚本系统,
配置数据系统,ORM数据库系统,高性能网络框架, 序列化与反序列化,常用工具如MD5, SHA1等。

阶段4: 游戏逻辑服务器的核心业务,游戏服务器同步, 主要有帧同步和状态同步,了解这些同步的核心原理与实现方式,游戏用户注册,登录,奖励,任务,好友,
商城背包,核心的游戏逻辑。这些学习完后主流的游戏服务器逻辑编写就完全没有问题。

阶段5: 发布与部署,如何把游戏服务器集群部署到Linux上,如何根据同时在线人数做压测,选好对应的机器。如何来实现刚上线流量突然的猛增等。
经过这5个阶段,不是大神也胜似大神,祝你成功,生活上可以躺平,但技术上要追求躺赢。
发表于 2023-8-16 15:20 | 显示全部楼层
直接看前后端都有,而且都能运行的开源项目,包括前端,游戏服务器后端,后台管理。
我写的项目很适合你,前后端都有,都能运行,运行起来断点进去一行一行看,注释教程非常详细。
zfoo-project/zfoo






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-8-16 15:20 | 显示全部楼层
1,选一个技术方向,现在很多服务区是用的Linux下C++开发,不过我们当时用的Java
2,基本的开发框架就不用说了,自己去看书吧
3,网络游戏一般有一个框架,可以找一个框架熟悉一下,我们当年是自己做的框架,改了很久才文档
4,熟悉多线程/多进程的处理,锁的处理,不同线程/进程之间数据共享与交互的问题....因为游戏对这些的要求要远高于一般的业务系统
5,熟悉多服务器集群,熟悉大数据量的处理,因为游戏基本都需要用到复杂的多服务器集群的架构。
先趟过这些坑,再聊后面的
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-3 02:00 , Processed in 0.688197 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表