【游戏后端】游戏服务器端开发的一些建议

【游戏后端】游戏服务器端开发的一些建议

摘要: 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结。第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一些基本原则。希望能帮到大家

一 专业基础

1.1 网络

1.1.1 理解TCP/IP协议

网络传输模型

滑动窗口技术

建立连接的三次握手与断开连接的四次握手

连接建立与断开过程中的各种状态

TCP/IP协议的传输效率

思考

1)请解释DOS攻击与DRDOS攻击的基本原理

2)一个100Byte数据包,精简到50Byte, 其传输效率提高了50%

3)TIMEWAIT状态怎么解释?

1.1.2 掌握常用的网络通信模型

Select

Epoll,边缘触发与平台出发点区别与应用

Select与Epoll的区别及应用

1.2 存储

计算机系统存储体系

程序运行时的内存结构

计算机文件系统,页表结构

内存池与对象池的实现原理,应用场景与区别

关系数据库MySQL的使用

共享内存

1.3 程序

对C/C++语言有较深的理解

深刻理解接口,封装与多态,并且有实践经验

深刻理解常用的数据结构:数组,链表,二叉树,哈希表

熟悉常用的算法及相关复杂度:冒泡排序,快速排序

二 游戏开发入门

2.1防御式编程

不要相信客户端数据,一定要检验。作为服务器端你无法确定你的客户端是谁,你也不能假定它是善意的,请做好自我保护。(这是判断一个服务器端程序员是否入门的基本标准)

务必对于函数的传人参数和返回值进行合法性判断,内部子系统,功能模块之间不要太过信任,要求低耦合,高内聚

插件式的模块设计,模块功能的健壮性应该是内建的,尽量减少模块间耦合

2.2 设计模式

道法自然。不要迷信,迷恋设计模式,更不要生搬硬套

简化,简化,再简化,用最简单的办法解决问题

借大宝一句话:设计本天成,妙手偶得之

2.3 网络模型

自造轮子: Select, Epoll, Epoll一定比Select高效吗?

开源框架: Libevent, libev, ACE

2.4 数据持久化

自定义文件存储,如《梦幻西游》

关系数据库: MySQL

NO-SQL数据库: MongoDB

选择存储系统要考虑到因素:稳定性,性能ÿ

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值