C++ 游戏服务器方向需要多少功底?

Posted analogous_love

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 游戏服务器方向需要多少功底?相关的知识,希望对你有一定的参考价值。

这篇文章是回答一位知友的提问:

现在大二了马上升大三,就读于一个很垫底的211,专业是计算机相关的,但是对本专业内容不感兴趣,希望能从事c++后端的工作,对游戏比较有兴趣,但又不知道需要哪方面的知识,希望各位能给出一个客观的评价或者批评,帮忙指点,感激不尽。 看了一些书,unp扫了一遍,apue认真的读了一大半,但是觉得只读书不够,就一边看游双的linux高性能服务器编程,一边自己上手实现一个简陋的web服务器。上网看见什么东西就一点一点往里面塞,什么定时器,线程池,智能指针,raii锁之类的。之后准备大致搭起来服务器的架子就读一下muduo,优化一下自己写的渣渣。 不知道这样的学习进度合不合适,如果想进大厂c++后端或者找一个待遇不差的工作还需要哪些努力?如果想特化游戏服务器的编程能力,有没有合适的书或者路线推荐,请各位大佬指点一下小弟

正文

我真的不推荐你去阅读 UNP 这样大部头的书,不是说这个书不好,而是对于你目前这个阶段,去读这样大部头的书,会事倍功半,相信你自己应该也能感受的到。

作为一个过来人的老学长,我的建议是:

1. 先学好 C/C++。

这类书很多。不建议看《C++ Primer》这样的大部头,掌握 C++ 常用语法就可以了。当然 C++ 原理性的东西还是需要了解一下,推荐看下《深度探索C++对象模型》(文末有 pdf 获取方式)。

2. 学好网络编程,做到熟练使用常见操作系统的 Socket API。

根据你的水平高低来选择,依次从低到高的书有:

尹圣雨的《TCP/IP网络编程》(文末有 pdf 获取方式)

游双的 《Linux 高性能服务器编程》(文末有 pdf 获取方式)

陈硕的《Linux 多线程服务端编程 使用 muduo C++ 网络库》。

看了后两本书,你还能学到一些 C++ 服务器程序框架、结构等一些套路。

3. 学一些游戏开发的知识

如果你需要实战的话,我这里有一套完整的可以编译、调试和部署的 MOBA 游戏的源码。

这是一款类似英雄联盟的 5V5 实时对战游戏,服务器端使用 C/C++ 开发,同时支持 Linux 和 Windows 系统部署;客户端使用 C# + Unity3D 开发。

我们先来看下这个游戏的内容吧,这是在我机器上编译后运行的效果图:

登录界面

进入后台配置的对战服务器:

设置自己的昵称:

支持新手教学、人机对战和联网对战:

部署在我的云主机上后,和女朋友一起对战的效果图:

ps~被我女朋友虐的体无完肤。。。。。。

服务器端有非常多的模块,代码质量非常高,这里先截一张主要模块的项目图示:

上述游戏完整的服务器和客户端完整代码及安装部署教程:

链接: https://pan.baidu.com/s/1IQuNx1UFaNH02mezo3GN_A 提取码: 0nbf

建议先学习这套代码的服务端,先学习主框架,再学习细节。

服务器架构简图如下:

连线说明:

  • 实线:表示客户端登录流程,①②③④⑤表示登录流程,详细解释见下文。

  • 虚线:表示服务器间的连接,虚线箭头指向监听方。

架构说明:

上文提到的书单在这里:

计算机必看经典书籍(含下载方式)

原创不易,有帮助的话,记得点个赞和关注。

以上是关于C++ 游戏服务器方向需要多少功底?的主要内容,如果未能解决你的问题,请参考以下文章

C++ 游戏服务器方向需要多少功底?

机器学习对数学功底的要求到底有多高

C++方向想从事服务器开发,面试前要看这些

我适合做游戏开发的哪个方面?

游戏方向盘

UML类图中的六种线条与六种关系