2020腾讯游戏客户端暑期实习生面经

时间

2020.3.12网站投的简历,第二天就直接收到初面邀请邮件,然后非常快速的,一面、二面、hr面,于2020.3.24收到深圳腾讯总部打来的电话,面试成功!

面试方式

新冠疫情影响,三次均使用腾讯会议远程面试,每次大概30分钟

投递岗位

游戏客户端开发暑期实习生(但奇怪的是,面我的人问我的都是服务器网络相关问题,可能是因为我简历里核心项目是C++服务器项目,hr灵活组排?)

一面

主要针对我的C++Lua分布式帧同步游戏服务器demo进行了大量提问

  • 简述项目架构
  • 如何做到分布式?
  • 如何实现帧同步?
  • 帧同步网络延迟的原因有哪些?
  • 服务器如果出现宕机你怎么处理?网关宕机呢?
  • 协议版本更新了,但只有一台服务器上可以处理最新版本协议,网管如何转发?
    【在CmdPackage中加入version字段,网关综合考虑version和serviceType进行转发】
  • protobuf的缺点——GC消耗严重,推荐使用flatbuffer

二面

  • 帧同步为什么使用udp而不是tcp?
    【我答了tcp需要对方确认收到、具有拥塞控制,丢失重传,逻辑复杂,消耗高,但面试官说这都不是重点,希望有大佬可以评论区指点一二】
  • 帧同步udp实现可靠传输的逻辑放在网络层还是逻辑层,为什么?
    【我说我的架构里是放在逻辑层,他说没错,但我不知道原因,希望有大佬可以评论区指点一二】
  • 帧同步如何检测和防止玩家开挂?
    【每隔一段时间,客户端将关键数据发往服务器验证,另一种思路是在帧同部的同时,内嵌一种更新比较慢的状态同步,用于服务器验证】
  • 你是如何处理玩家掉线重连?
    【我说快照+服务器冗余】
  • 数据库索引知道么
    【不知道~】
  • Redis用过哪些功能?
    【用作mysql的缓存,主要使用其键值对功能】
  • Tcp协议启动的时候做了哪些操作?
  • 算法题:如何打乱一个数组
  • 现有以下代码
vector<int> a;
a.push_back(100);
vector<int> b;
memcpy(&b,&a,sizeof(a));

问:
0、a在哪里?
【在栈上】
1、100在哪里?
【在堆中】
2、前两行执行结束后,内存上发生哪些变化?
【在栈上定义了一个变量a,在堆上开辟了一块空间,里面放着一个数据100】
3、执行过后这四行代码,程序报错,可能的原因有哪些?

1、a中指针指向的堆内存重复释放;
2、b原本指向的对内存内存泄漏;
3、如果a中数据被释放,使用b的时候可能访问到垃圾数据

HR面

  • 个人未来规划
  • 大学期间履历
  • 做过的项目有哪些,说说你最得意的项目
  • 说说你的学习方法
  • 说说你遇到的难题,都是如何克服的

体会

  • 腾讯效率真高!12天,从投简历到offer call
  • 数据库是个好东西,希望我也熟悉
  • 网络编程基础一定要好
  • 分布式现在还只是皮毛,应该有更完善的宕机处理办法
  • 帧同步可以提升的地方还有很多
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值