写在前面的话

经常有学生或者初学者问我如何去阅读和学习一个开源软件的代码,也有不少朋友在工作岗位时面对前同事留下的项目,由于文档不完善、代码注释少、工程数量大,而无从下手。本文将来通过一个多人联机实时对战游戏——最后一战,来解答以上问题。

其实,我以上问题在我是一个学生时,我也同样因此而困惑,但是后来,我发现,对于文档缺失、注释缺失的项目,需要自己摸索,虽然是挑战,同时也是机遇——一个不错的学习机会。因为至少有代码,正如侯捷大师所说的的,“源码面前,了无秘密”,所以我们应该“read the fucking code”。

所以,这个系列的文章,我们分析“最后一战”这个游戏源码时,我们不会按照传统的思路:先介绍总结的程序结构,再介绍各个模块的细节,因为,当我们面对一套陌生的源码时,尤其是在文档缺失的情况下,我们根本无法开始就掌握这个项目的总体结构,我们只能从零开始一个个模块的对代码进行阅读和调试,所以我们这个系列的文章也按这个思路来分析,以真实的案例来教会新手一步步读懂一个开源项目的代码。

我们先来看下这个游戏的内容吧,下面给出游戏画面的部分截图:

这是一款类似于王者荣耀、dota之类的5v5实时RPG竞技游戏。

客户端的逻辑比较简单,主要是一些游戏特效和动画(基于Unity 3D),所以这里我们主要分析游戏的服务器端源码。

先介绍一下推荐的源码的运行和开发环境(我的配置):

Windows 7

Visual Studio 2010

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

从下一篇文章开始,我们将介绍如何学习这样的源码。整理源码不易,如果您喜欢此文,帮忙给本文点个赞。

代码下载地址

链接: https://pan.baidu.com/s/1NsjZ2X9qqPKHFJao2DLweg  密码: 8w6g

从零学习游戏服务器开发(一) 从一款多人联机实时对战游戏开始相关推荐

  1. 分享一套仿英雄联盟大型多人联机实时对战游戏源码(包含完整服务器和客户端源码)...

    源码介绍 这是一款类似英雄联盟的 5V5 实时对战游戏,服务器端使用 C/C++ 开发,同时支持 Linux 和  Windows 系统部署:客户端使用 C# + Unity3D 开发. 我们先来看下 ...

  2. 一套仿英雄联盟大型多人联机实时对战游戏源码(包含完整服务器和客户端源码)...

    源码介绍 这是一款类似英雄联盟的 5V5 实时对战游戏,同时支持 Linux 和  Windows 系统部署. 我们先来看下这个游戏的内容吧,这是在我机器上编译后运行的效果图: 登录界面 进入后台配置 ...

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

    序言 一.游戏服务器开发工作介绍 有很多朋友会问我,想从其它开发领域转到游戏服务器开发上来,需要学什么? 或许是因为游戏服务器开发工资高,或许是因为感觉做游戏服务器需要掌握的技术更高级,更具有挑战性, ...

  4. 游戏服务器开发技术小结

    转载请自觉标明原创出处 原文链接:http://gameislife.info/archives/category/游戏开发    游戏服务器开发技术小结 1 概述 本文从开发者的视角,浅析游戏服务器 ...

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

    Java游戏服务器开发之三--日志         Java游戏服务器开发之四--通讯框架netty Java游戏服务器开发之五--使用工厂模式生成netty Java游戏服务器开发之六--整合spr ...

  6. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍

    C++游戏服务器开发常用工具介绍 在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用.庄子有云,"吾生也有涯,而知也无 ...

  7. 2020最新版C/C++学习路线图--游戏服务器开发重点

    黑马程序员C/C++学习路线图大纲中第六阶段的学习是游戏服务器开发的学习:主要介绍了C/C++学习路线图的游戏服务器开发的学习目标,C/C++学习路线图的游戏服务器开发的市场价值,C/C++学习路线图 ...

  8. 学习JAVA游戏服务器开发需要了解的情况

    一,游戏服务器开发的工作介绍 近来遇到有很多人想从其它开发领域转到游戏服务器开发行业上来,他们或许觉得游戏服务器开发工资高,或许觉得做游戏服务器需要掌握的技术更高级,可以锻炼自己,或许觉得想换个环境等 ...

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

    为什么游戏服务器很多都用Java开发 Java 做游戏服务器开发的优势还是很多的,<我的世界>的服务器就是Java开发的.Java技术比较成熟,大数据,云计算,网站App后台,基本都采用J ...

最新文章

  1. 人工神经网络研究的发展及特性,以前不叫人工智能
  2. tm1650中文资料_TM1616,TM1650,TM1651 SOP16原厂直销,技术支持
  3. 怎样cp文件夹时忽略指定的文件夹和文件
  4. C++中log的底数理解
  5. springboot----热部署
  6. C++ 内存模型——虚表(vtbl)的访问
  7. 页脚保持在未满屏页面的底部
  8. 读书书签-《高等应用数学问题的MATLAB求解》第三版,薛定宇 陈阳泉著
  9. 尚观嵌入式c语言视频教程
  10. IDA Pro 权威指南学习笔记(十三) - 基本代码转换
  11. 建站百科|网站Banner风格、样式大解析
  12. clang diagnostic
  13. WIN 10 挂载分区之diskpart工具
  14. 【考前冲刺】计算机三级网络技术之综合题-IP地址计算
  15. 基于python的影评数据分析_基于Python聚焦型网络爬虫的影评获取技术
  16. 记一次钉钉群聊机器人的开发
  17. 成功的在项目中使用Squirrel
  18. R语言ggplot2可视化:使用ggpubr包的arrangeGrob函数将多个可视化结果整合为gtable对象、使用as_ggplot函数将gtable对象转化为ggplot对象
  19. 网页引用优酷视频并添加封面自动播放
  20. LLDP链路层发现协议

热门文章

  1. java递归获取树结构的指定层级、指定层级之上(向上递归(包含父集所有、爷爷集所有...)(父集单独、爷爷集单独...))、指定层级之下所有的(子集、孙子集...)和list集合转Tree树结构
  2. python把字典保存到文件_将Python字典保存到文件中,并定期更新它
  3. 前端开发环境与最佳实践
  4. markdown 文本内跳转,生成目录
  5. 毕业论文_页眉+页码
  6. 【系统设计】本地生活之附近商家 LBS 服务实现
  7. android 系统源码分析
  8. [玩转UE4/UE5动画系统>应用篇>功能模块] 之 ALS V4地面站立动作状态机详解
  9. QQ邮箱接收邮件报警
  10. C/C++编程学习 - 第16周 ① 含k个3的数