游戏后端开发的关键技术与挑战

发表时间: 2024-06-21 14:04

众所周知,在所有编程语言中,C++是一门学习难度相当大,需要较长的学习周期的编程语言,很多人甚至经常听到这样一句玩笑话:“C++,从入门到放弃”。

C++ 世界中有很多著名的书籍,从初级到高级都有。这些书籍中很多都是由 C++ 之父或者至少是 C++ 标准委员会成员级别的 C++ 专家撰写的。他们是规则和标准的制定者,这样的书至少有几十本或几百本。

假设你不用每天上班,只是看这些书,大概需要至少 5 年的时间才能读懂,再加上不断的练习,才能培养出实际能力。这意味着,要成为一名比较有能力的 C++ 开发人员,至少需要 10 年的时间。

学习C++的前10年,我每天都在学习、写代码。10年后我的C++开发能力怎么样?可以处理大型项目(几万行),而且bug很少,整个程序运行基本稳定。真正的能力飞跃是在学习C++的第15年左右,那时我能感觉到自己对一些事情、一些细节的考虑远比常人周到。

你在哪里学习 C++ 的?

1.基础知识体系构建

基本的C++开发知识是必须学习的,而且新的C++标准的知识也不断涌现。学习这一切都是需要时间的,就像我刚才提到的,想要把这些大型的C++经典书籍全部看完并理解透彻,可能需要5年以上的时间。而且读者不难发现,即使是很多伟人和大师写的书,也需要反复看几遍,才能消化、理解、吸收书中的内容。从这一点可以看出,很多大师的开发能力很强,但他们还是很难写出适合阅读的书。

建立基础知识体系有没有什么捷径呢?有的,我马上就会讲到。

2.全面提升逻辑思维

对于一个程序员来说,真正的实力往往不体现在这种算法知不知道这种琐碎的问题上,而这些题目却被很多人当成了所谓的内功和基础。我不认同这种说法,因为这些题目可能需要几分钟甚至一天的时间才能掌握。逻辑思维的全面提升才是程序开发质量的真正决定因素,需要几年甚至十几年的刻苦努力才能达到一定的水平。

逻辑思维和解决问题能力的全面提升,需要经过多年的积累:①阅读高手的代码;②通过写项目练习;③思考总结;④学习再练习。这个过程不断重复,大概需要5年甚至10年的日复一日的练习,才能达到一定的水平。从这个角度来说,一个程序员最终的水平,取决于耐力和毅力。

因此,很多只有几年开发经验的程序员,代码中往往布满bug,每天都在忙着处理bug,一个项目解决bug的时间甚至是开发时间的几倍,领导着急得手忙脚乱、抓耳挠腮、束手无策的情况屡见不鲜。

C++知识体系

这里我推荐凌盛教育独家的【Linux C/C++开发】课程体系,通过原理技术+源码解析+案例分析+项目实践进行全方位解析:

涵盖手写代码实现:sdpk文件系统、dpdk用户态协议栈、异步网络库zvnet、协程、io_uring、Nginx、bpf、线程池、内存池、连接池、原子操作、ringbuffer、定时器、死锁检测、分布式锁、日志、probuf、kafka、grpc、udp可靠传输

线上项目:KV存储项目、图片托管项目、即时通讯项目等。

学习地址:

部分录制的视频(注意,百度网盘自行拾取):

提取码:6ikk

1. 改进基石专栏

1.数据结构与算法

为图片添加标题,不超过 140 个字符(可选)

2.设计模式

为图片添加标题,不超过 140 个字符(可选)

(三)C++的新特性

为图片添加标题,不超过 140 个字符(可选)

4. Linux项目管理

为图片添加标题,不超过 140 个字符(可选)

2.高性能网络设计专栏

(一)网络编程异步网络库zvnet

为图片添加标题,不超过 140 个字符(可选)

(二)网络原则

为图片添加标题,不超过 140 个字符(可选)

(三)自研框架:协程框架ntyco的实现(开源)

为图片添加标题,不超过 140 个字符(可选)

(四)自研框架:基于dpdk(开源)实现用户态协议栈

(五)高性能异步io机制io_uring

3. 基础组件设计专栏

1. 池型组件

2. 高性能组件

3. 开源组件

4.中间件开发专栏

1. Redis

MySQL

3.卡夫卡

4. GRPC

5. Nginx

5. 开源框架专栏

1. Skynet游戏服务器开发(录音问答)

2.分布式API网关

3. SPDK帮助MySQL数据存入磁盘,性能飙升(基础设施)

4. 高性能计算 CUDA(录制问答)

5. 并行计算与异步网络引擎工作流程

(六)物联网通信协议MQTT的实现框架Mosquitto

6. 云原生专栏

1. Docker

Kubernetes

7. 业绩分析专栏

1. 性能和测试工具

(二)观测技术BPF和EBPF

(三)内核源代码机制

8.分布式架构

1.分布式数据库

2. 分布式文件系统(录制问答)

3.分布式协作

9. 线上项目实际实施

1. dkvstore实现(线上项目)

2.图片共享云存储(线上项目)

(三)微服务即时通讯(上线项目)

(四)零语音教学AI助手生成(线上项目)

(五)魔兽世界后端TrinityCore(线上项目)