腾讯实习提前批-光子-游戏客户端一面(已凉)
用时七十分钟,基础问题答错很多,我主写C#,C++还是太薄弱了,凉了,发发面经攒人品。
自我介绍,介绍自己除了Unity还做了个ue的小demo,但是做的不深。
一、项目
介绍一下我是如何用SO做物品数据管理的(实际上就是当配表工具用)。
对象池是怎么设计的。
高斯模糊和溶解的shader怎么做的。
资源加载和演出系统怎么做的(Resource + YarnSpinner)。
A*怎么实现的,损失函数如何计算?
对ECS有什么理解?
System之间如何处理依赖顺序?
UI框架是怎么设计的。
UI怎么做的通讯(事件中心)。
二、手搓
1.手搓个事件中心(还没写完脑子一懵说我写好了,面试官:你再想想?写到最后写对了,面试官问我参数不一样怎么处理,我以为我写错了沉默了,实际上参数不能不一样)
2.struct{
float a;
unsigned int b : 1;
unsigned char c : 1;
int * d;
char e;
double f;
}
64位系统,问每个变量的地址空间(纠结了半天内存对齐,结果写错了哈哈哈)
3.有序链表合并
这里new了个dump忘记delete了,总结为写C#写的
三、UE
UE的gameplay框架怎么理解?
Controller只在本地,那服务器怎么通知?
GameMode在服务端吗?(脑子一抽说了个服务端客户端都有)
网络同步做过吗(用的UE原生的)
玩家A发射子弹击中B,B要扣血播特效,C要看到过程,怎么做(A发个RPC给服务端,服务端射线检测,检测完了再RPC同步数据)
那我要发一个子弹实体怎么办(服务端生成子弹实体,给一个初速度和方向)
子弹不同步怎么办,有网络延迟怎么保证同步(不懂啊)
提示:属性同步(没听说过)
Rpc有几种类型
Rpc怎么实现的(我不到啊)
那什么情况才可以发Rpc(Charactor这种服务器客户端都有的才可以发)
骨骼动画原理是什么(通过骨骼的位置进行mesh蒙皮,没手动实现过)
常见的同步方式有哪些(状态同步和帧同步)
区别是啥(帧同步同步数据帧,状态同步只同步状态,但是我自己没实现过所以不是很了解)
TCP和UDP有什么区别(TCP可靠,UDP快)
为什么(TCP有可靠传输机制,建立连接要三次握手四次挥手,所以比较慢,但是比较可靠)
为什么可靠(TCP有ATK确认和超时重传,但是因为我没手动实现过,所以只知道皮毛)
四、C++
平时用啥编程语言(C#,C++只有UE写过,也基本当C# 写)
C++的构造函数有哪些类型(无参有参、复制、移动)
分别写一下(复制构造忘记加const了,移动构造忘记加noexpect了)
构造函数可不可以是虚函数,析构函数呢
虚表在哪,虚指针呢
delete没指明内存大小为什么能释放(因为指向虚表来释放吧,这个不太清楚)
那我delete数组为什么也能释放(不知道)
左值右值区别是什么(左值可以取地址,右值没法取地址)
右值有哪些类型(函数传出的临时变量、还有硬编码的字符串)
const有哪些作用(标注哪些变量是常量,放在函数里保证这个参数不被改变)
还有呢(不知道了)
放在成员函数后面呢(应该表示不修改这个对象内的值,不太确定)
那要是我想修改怎么办(不太了解)
share_ptr a 指向一个对象
share_ptr b 指向一个对象
a=b 会发生什么(这个时候脑子已经不正常了,答道,b先释放一个引用计数,然后a引用计数++)
你确定吗(确定)
你再想想?
a=b是让b指向a吗(才明白过来,连声答道对不起)
引用计数放在哪(它分为一个资源指针和一个控制指针,引用计数放在控制指针)
总结:C++、内存、网络的功底太薄弱了,只是看过一遍八股,没有真正做过项目尝试,鹅的UE项目多,且重视基础,应该多复习C++这些基础。
#软件开发笔面经#
自我介绍,介绍自己除了Unity还做了个ue的小demo,但是做的不深。
一、项目
介绍一下我是如何用SO做物品数据管理的(实际上就是当配表工具用)。
对象池是怎么设计的。
高斯模糊和溶解的shader怎么做的。
资源加载和演出系统怎么做的(Resource + YarnSpinner)。
A*怎么实现的,损失函数如何计算?
对ECS有什么理解?
System之间如何处理依赖顺序?
UI框架是怎么设计的。
UI怎么做的通讯(事件中心)。
二、手搓
1.手搓个事件中心(还没写完脑子一懵说我写好了,面试官:你再想想?写到最后写对了,面试官问我参数不一样怎么处理,我以为我写错了沉默了,实际上参数不能不一样)
2.struct{
float a;
unsigned int b : 1;
unsigned char c : 1;
int * d;
char e;
double f;
}
64位系统,问每个变量的地址空间(纠结了半天内存对齐,结果写错了哈哈哈)
3.有序链表合并
这里new了个dump忘记delete了,总结为写C#写的
三、UE
UE的gameplay框架怎么理解?
Controller只在本地,那服务器怎么通知?
GameMode在服务端吗?(脑子一抽说了个服务端客户端都有)
网络同步做过吗(用的UE原生的)
玩家A发射子弹击中B,B要扣血播特效,C要看到过程,怎么做(A发个RPC给服务端,服务端射线检测,检测完了再RPC同步数据)
那我要发一个子弹实体怎么办(服务端生成子弹实体,给一个初速度和方向)
子弹不同步怎么办,有网络延迟怎么保证同步(不懂啊)
提示:属性同步(没听说过)
Rpc有几种类型
Rpc怎么实现的(我不到啊)
那什么情况才可以发Rpc(Charactor这种服务器客户端都有的才可以发)
骨骼动画原理是什么(通过骨骼的位置进行mesh蒙皮,没手动实现过)
常见的同步方式有哪些(状态同步和帧同步)
区别是啥(帧同步同步数据帧,状态同步只同步状态,但是我自己没实现过所以不是很了解)
TCP和UDP有什么区别(TCP可靠,UDP快)
为什么(TCP有可靠传输机制,建立连接要三次握手四次挥手,所以比较慢,但是比较可靠)
为什么可靠(TCP有ATK确认和超时重传,但是因为我没手动实现过,所以只知道皮毛)
四、C++
平时用啥编程语言(C#,C++只有UE写过,也基本当C# 写)
C++的构造函数有哪些类型(无参有参、复制、移动)
分别写一下(复制构造忘记加const了,移动构造忘记加noexpect了)
构造函数可不可以是虚函数,析构函数呢
虚表在哪,虚指针呢
delete没指明内存大小为什么能释放(因为指向虚表来释放吧,这个不太清楚)
那我delete数组为什么也能释放(不知道)
左值右值区别是什么(左值可以取地址,右值没法取地址)
右值有哪些类型(函数传出的临时变量、还有硬编码的字符串)
const有哪些作用(标注哪些变量是常量,放在函数里保证这个参数不被改变)
还有呢(不知道了)
放在成员函数后面呢(应该表示不修改这个对象内的值,不太确定)
那要是我想修改怎么办(不太了解)
share_ptr a 指向一个对象
share_ptr b 指向一个对象
a=b 会发生什么(这个时候脑子已经不正常了,答道,b先释放一个引用计数,然后a引用计数++)
你确定吗(确定)
你再想想?
a=b是让b指向a吗(才明白过来,连声答道对不起)
引用计数放在哪(它分为一个资源指针和一个控制指针,引用计数放在控制指针)
总结:C++、内存、网络的功底太薄弱了,只是看过一遍八股,没有真正做过项目尝试,鹅的UE项目多,且重视基础,应该多复习C++这些基础。
#软件开发笔面经#
全部评论
经历惊人的相似,感觉要凉了,问你的我好多都不会(UE只是接触了...)
哥们你面的好全面,是光子吗?

扣一送offer
早上面了光子,也是猛猛问UE
相关推荐