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++ 游戏服务器方向需要多少功底?的主要内容,如果未能解决你的问题,请参考以下文章