开发者网络

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 84|回复: 1

游戏服务器需要学习哪些知识(C/C++版本)

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-12-5 09:33:55 | 显示全部楼层 |阅读模式
为什么游戏服务器很多都用c/c++开发
  C/C++ 做游戏服务器很多公司都在用,腾讯的《和平精英》的服务器就是C/C++开发的。游戏开发是很早的一个行业,软件诞生起就有游戏开发,游戏开发对性能要求又特别的高,所有游戏开发的前辈们开始开发的时候都使用开发运行效率最高的编程语言,C/C++能直接编译成机器指令,具有最好的运行效率,所以一直以来游戏行业使用C/C++开发也就成为了一个传统。C/C++开发游戏服务器也是成熟的生态,redis, c/c++开发的,mysql server c++开发的,nginx c开发的
对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习unity的零基础小白,也有一些正在从事unity开发的技术大佬,欢迎你来交流学习。
C++游戏服务器的网络通讯技术
游戏服务器和应用服务器不一样,游戏服务器是需要让多个玩家同时在线,而应用服务器是玩家和系统之间的数据交互和通讯,所以应用服务器大多以http 短连接为主,而游戏服务器需要多人同时在线,同时服务器有时候要主动通知客户端,所以游戏中以长连接为主,同时支付等功能又需要http的短连接, 所以游戏服务器网络短连接+长连


游戏服务器的数据库的技术


游戏服务器的日志技术
日志对于游戏服务器开发来说是非常重要的,特别是上线的时候,日志是最重要的一个调试手段,线上版本代码出了bug,也只能通过日志来查,所以一个好的日志系统非常的重要,日志就是输出打印信息到文件,这样一定会有文件IO,我们都知道文件IO会引起线程休眠等待,所以做文件IO的时候,我们的游戏线程都在用异步,在不阻塞游戏线程的情况下,把日志写入到我们的文件里面,或者专门搞一个日志线程来负责写日志。
脚本系统


游戏开发常用的算法
游戏服务器,很多采用状态同步,其实所有的业务逻辑就是在服务端来跑, 服务端要处理游戏常用的经典问题,碰撞检测,寻路导航, 怪物AI等。所以我们需要基于Java服务器实现常用的算法和工具,比如寻路导航,行为决策树,有限状态机, 物理引擎,碰撞检测等。对于大型的MMORPG而言,还需要做好AOI的状态管理等,这些游戏中常用的核心算法我们要准备好。
最后总结一下C/C++游戏服务器中常用的库
网络库: libuv, libevent
序列化与反序列化:  Protobuf, mjson
加密解密库: crypto
http解析库: http parser,
http库 curl

回复

使用道具 举报

1

主题

3

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 6 天前 | 显示全部楼层
锄禾日当午,发帖真辛苦。谁知坛中餐,帖帖皆辛苦!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|开发者网络

GMT+8, 2025-5-14 21:35 , Processed in 0.383857 second(s), 62 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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