好像并没有太多做游戏的在刷题诶,分享一下刚面完的面经
个人水平不高,面试时长一个半小时
项目相关
- 讲讲最有成就的需求(讲的养成系统,实现了一整套虚拟场景加载)
- 讲讲相机的需求(这个需求模拟的原神相机,讲了如何处理相机碰到障碍物)
- 人物朝相机发射线,近裁面碰到了障碍物,但射线没有,怎么处理
当时需求紧,做的额外处理是对近裁面的两边也发射一条射线,一共三条射线检测
C++
- static的作用
- static可以在函数内定义吗?举例说明
- inline了解吗?
- 右值引用
- 移动语义
- C++编译过程
- 动态链接和静态链接的区别
- mutex
Lua
- Lua元表
cocos(草,就实习的时候用过两个月,下次一定记得删掉)
- cocos内存管理机制(引用计数)
- 创建一个node,引用计数会怎么变化(我属实不知道,我觉得构造的时候引用计数会+1,自动回收我就没扯了,再问我就要沉默了)
操作系统
- 进程和线程的区别
- 进程间通信的方式
- 进程同步的方式
- 线程间通信的方式
- 线程同步的方式
- 进程有多少种状态
- 虚拟内存和物理内存的区别
- 虚拟内存存在哪里
- lock-free
- wait-free(答的不好,属实对并发编程了解不多)
算法
https://leetcode.cn/problems/symmetric-tree/
(镜像二叉树,理解成了生成镜像二叉树,还好写一半问了一下,算是很好了,没考菜鸡hard题)
bool symmetric(TreeNode* l,TreeNode* r){
if(!l && !r) return true;
if(!l || !r) return false;
return l->val==r->val && symmetric(l->left,r->right) && symmetric(l->right,r->left);
}
bool isSymmetric(TreeNode* root) {
return root!=NULL ? true : deep(root,root);
}
计网
- TCP和UDP区别
- 哪些用到了TCP,哪些用到了UDP,举例说明
- 视频用的是TCP还是UDP
- 讲讲KCP(忘的差不多了,没说完)
unity
- 讲讲渲染管线
- 片元着色器的片元指的什么(一时间想不起来,扯了半天才扯出图元->片元)
- 像素和纹素的区别
- mipmap原理
- mipmap八张贴图,分辨率关系
- mipmap位于两个分辨率之间的像素如何处理(扯了暴力放大低分辨率+三线性过滤)
- 讲讲三线性过滤
- 讲讲其他过滤方式(扯到了各向异性过滤)
- 讲讲各向异性过滤(纹理插值是真了解不多,只讲了下和各向同性的区别)
脑力题
- 抛硬币吃苹果,1抛硬币,正则吃苹果,反则硬币给2号,2抛硬币,正则吃苹果,反则硬币给1号,一直循环,求1号吃到苹果的概率
等比求和 趋近于2/3(应该没算错)
- 圆形里随机一个点,要求等概率,只能随机0-1的浮点数
随机两次,第一次随机浮点数当做半径,第二次随机浮点数当做角度
反问
- 在研项目和运营中项目的开发节奏
- gameplay开发的发展方向
总结
问题不多,unity基本都在问渲染,图形学还有待进步;操作系统很多有点懵,这一块面试的过程中经常会停下来思考,还得补一补校招看的操作系统啊。
希望能给个二面吧,在现在这个公司,这个比班是一天也不想蒸了
(wow进二面了,希望能收获offer)