10.14&18 西山居 游戏客户端 一面40分钟+二面1h

原帖在牛客,被封,不知道为什么。很无语,我只是记录过程而已,起码给个理由吧?

作者:BBBourne
链接:10.14&18 西山居 游戏客户端 一面40分钟+二面1h_笔经面经_牛客网
来源:牛客网
 

两个面试官

10.14 一面40min

面试官1:

  • C++分区
  • 优化堆内存的方法?比如内存池?有了解过吗?
  • C++11智能指针?shared_ptr的引用计数保存在哪?

(还有一堆C++八股,不多赘述了)

面试官2:

  • 先提了个小建议,简历最好为一页(因为我东西多写了两页- -)
  • -8的补码?-8的补码最少要多少位来表示?4位二进制补码表示的范围?(答得不好)
  • 数据库里事务的四大特性?
  • 事务读取幻读是什么?
  • TCP协议如何保证可靠?
  • TCP流量控制?TCP三次握手?TCP流量控制和拥塞控制?
  • 内存对齐?
  • 动态链接库和静态链接库的区别?都是有多份拷贝吗?
  • 算法题:判断正整数n是否为2的整数次幂?时间复杂度?

面试官1:

说一说实习经历里的Two Bone IK里的Alpha是怎么控制过渡的?

有一个物体A,物体B,B绕着A的轴(世界的Y轴)旋转,要怎么做?(这里答了绕Y轴旋转的矩阵数学形势,但是面试官说要用图形API要怎么做,OpenGL或者DX12的。。。)

反问

当时感觉一面凉了,问数据库的东西基本全忘了,没怎么复习数据库。

而且补码和计组那些东西有的也忘记了,打的不是很完美。

但没想到第二天HR直接通知二面了。

10.18 二面1h:基本上全是场景题

面试官1:

  • 你的意愿偏向哪块?客户端?服务端?引擎?
  • 面试官介绍了一下它们团队
  • 实习经历中IK的Alpha过渡怎么实现的?
  • 场景题:有两个点,怎么计算两个点之间的插值?给一个初始矩阵,一个时间,和一个权重?(这里描述的十分繁琐,我大概答了线性插值,,)
  • 那上面的例子,旋转怎么插值?可以理解为三个欧拉角,在不同时刻三个维度如何插值?(说了个大概,说了弧度和角度插值,但感觉不对。。)
  • 说一说你做的游戏demo,技术上的关键点?

---------然后这个时候会议断了,随后打了个电话过来,说是那边电脑没电了。。。遂开始电话面----------

  • 场景题:人物绑定摄像机,那人物在移动的时候,场景中的物体是如何映射到摄像机和屏幕上的?(这里没懂啥意思,问了问是不是渲染管线的几何变换阶段?)
  • 接上题,面试官举了个例子,说开车的时候,后视镜里面映射一个世界空间中的物体,问这个物体是如何映射到我们相机空间中并且显示在这个后视镜上的(依然没太懂,这里答了平移变换、屏幕映射以及反射)
  • 说一说你的demo中子弹是如何实现的?你有用过UE里的碰撞逻辑函数吗?
  • 场景题:如何判断子弹是否以物体相交,因为游戏画面以帧为单位,子弹每一帧都会移动一个距离,如果这个距离大于这个物体就没判定为未相交,如何解决这个问题?(答了包围盒,又答了隐式方程直接计算,后来觉得不可行,又答了可以根据每帧移动的距离来确定包围盒大小。。面试官说对,,但我觉得好像不对。)
  • 你的子弹类可以不通过类来实现吗?(我:???)用struct行不行?struct和class的区别?struct有没有默认构造函数?
  • 场景题:看你玩过只狼,勾绳飞檐走壁的效果怎么实现?那现在有个需求,需要判断物体中的突出部分?比如说寺庙塔那种屋檐的边角?(这里答了包围盒,又答了根据三角形面数的密集程度。后来面试官说可以通过一个点所在的三角形面数的多少以及法向量来判断。。)
  • 场景题:有超大规模的顶点数,比如600w个,用什么数据结构来存比较合适?(答了hash+链表,中间想了想OpenGL存索引的方式,还是有点忘记了)
  • 接着上个问题,计算机中浮点数的表示范围?因为顶点可能需要用浮点数来表示。
  • 最后可能看没啥问的了,问了本科自己带队做的科研项目,问了项目代码行数大概是多少。总之就是看着简历上的东西问的。
  • 10.19 更新:想起来一个,面试官问用没用过VisualStdio,用没用过数据断点,说多线程情况下的(没用过)
  • 10.21 更新:又想起来一个,说说sprintf

还有一道场景题,想不起来了。

总体感觉回答的一般,能答的都尽量答了。

而且感觉场景题实在是不好答。

-----------------------------------------------------------------------------------------------------------

说点感想吧

连续面了一周多吧,目前这算是最后一场了(游戏)。

十月中旬了,不知道后面还有没有机会了。

准备了几个月下来,感觉校招游戏这一行确实难度不小。

需要ACM的编程水平(笔试)、C++(需要项目经验以及深挖底层)、图形学(客户端的话可能要求没那么高)、游戏引擎、以及实习经历和游戏项目经验(场景题)。每一方面的知识都需要长时间的积累,都是难啃的骨头。

以及过硬的计算机基础,这几场面试都闻到了操作系统底层、以及计算机组成原理的很多知识,掌趣科技的面试直接从计算机原理开始问。网上基本上所有的八股文都不涉及这些东西,尤其是计算机组成原理这一块。可能很多读研的同学、以及大三下的同学,计组已经学完了一年,很可能都忘记了。

也可能是水涨船高,一年比一年卷。记得上两届的学长和我说当时八股文问了一遍加上简单问问项目就进大厂了,今年可不是。

上午开组会,下午面试。开完组会被导师留下谈话,最近科研没什么进展,基本上天天都是笔试测评,还有几场面试。导师多少也说让我认清现实,找个国企之类的得了,以后的事以后再说。(还问我认命吗??我当然不认命了)

也不算什么风凉话吧,毕竟导师也是为了学生着想。确实这形势太难了。我也很幸运能遇到我的导师,能坐下来像朋友一样和我聊天,给我各方面的指导,也给我这么长时间去找工作。

抛去这些客观因素,话说回来还是自己菜,如果手里有ACM的牌子,提前一年半准备,图形学的作业该好好做就好好做,unity和UE起码都了解了解,打磨一个细致点的demo,可能形式再怎么不好也能拿offer吧。

对于算法编程笔试这一块,还是想多说几句。

力扣是远远不够的,在此奉劝看到这个贴子的大一大二同学,以及研一的同学,算法提前准备,以ACM的强度去训练自己,参考今年网易雷火和互娱的笔试难度,这样起码笔试和面试算法这一块才能过关。同时感觉米哈游、吉比特、剑心、友塔等公司笔试难度也不小,基本感觉全A才能进面。(当然我米全A了也没能进面,应该是投晚了,提前批就招满了)

如今博主也是十分后悔当初大一没有跟着ACM队一直练下去。而是为了所谓的绩点刷着一遍又一遍的练习题。这一行,还是技术实力是最重要的,无论是科研还是工程,coding能力是第一。

时间不早了,睡觉了。心态还是要保持良好,无论环境形式好与坏,提升自己的能力是最关键的。晚安。

2022.10.19

祝所有游戏新人早日拿offer,秉持着热爱继续坚持下去

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 米哈游是一家以游戏开发为主要业务的公司,Java后端笔试可能会涉及以下方面的内容: 1. Java基础知识:笔试中可能会涉及Java的基本语法、面向对象编程、集合框架等内容,考察应聘者对Java语言的熟悉程度。 2. 数据库:Java后端开发常常需要与数据库进行交互,因此笔试中可能会考察SQL语句的编写、数据库设计与优化等方面的知识。 3. Web开发:Java后端开发通常需要熟悉一些Web开发技术,如Servlet、JSP、Spring框架等。笔试中可能会出现相关的题目,考察应聘者对Web开发的了解程度。 4. 网络通信:Java后端开发常常需要进行网络通信,可能会使用TCP/IP协议、HTTP协议等。笔试中可能会出现与网络通信相关的题目,考察应聘者对网络通信知识的掌握。 5. 算法与数据结构:Java后端开发中,对算法与数据结构的理解与运用也非常重要。笔试中可能会出现一些与算法与数据结构相关的题目,考察应聘者的编程能力与解决问题的能力。 米哈游作为一家游戏开发公司,对Java后端开发人员的要求较高。参加该公司笔试需要对Java开发、数据库、Web开发、网络通信等方面的基础知识有一定的了解与掌握。同时,还需要有较强的编程能力和解决问题的能力。只有掌握了这些知识和能力,才能在米哈游的Java后端笔试中有所斩获。 ### 回答2: 米哈游java后端笔试是米哈游公司的一项面试程序,用于选拔适合担任java后端开发职位的候选人。此笔试主要考察候选人在java后端开发方面的知识和技能。 在笔试中,候选人可能会遇到一些关于java编程语言和相关技术的问题。这些问题可能涉及到java的基本语法、面向对象编程、异常处理、多线程、IO操作等方面的内容。候选人需要能够熟练运用这些知识解决问题,并编写高质量的java后端代码。 此外,笔试可能还包括一些与数据库相关的问题,例如SQL查询语句的编写、数据库连接和事务处理等。候选人需要熟悉关系型数据库的基本概念和操作,以及常见的数据库管理系统如MySQL或Oracle等。 另外,米哈游java后端笔试也可能要求候选人解决一些算法和数据结构方面的问题。这些问题可能涉及到数组、链表、树、图等数据结构的使用以及常见的算法如搜索、排序和动态规划等。 总之,米哈游java后端笔试是一项通过考察候选人的java后端开发技能,来评估其适应米哈游公司java后端开发职位的能力和潜力的评估工具。候选人需要在笔试中展示他们在java编程语言、数据库和算法方面的扎实知识和解决问题的能力。 ### 回答3: 米哈游java后端笔试是米哈游公司针对java后端开发岗位的面试笔试。笔试内容主要考察应聘者在java开发方面的能力和经验。 笔试可能包括以下几个方面的内容: 1. Java基础知识:包括Java语法、面向对象编程、集合框架等基础知识。应聘者需要熟悉Java的常用类库和API,能够编写简单的Java程序。 2. 数据库和SQL:应聘者需要熟悉数据库的基本概念和常用操作,熟练使用SQL语言进行数据的查询和操作。可能需要编写一些简单的SQL语句。 3. Web开发:应聘者需要了解常用的Web开发技术,如Servlet、JSP、Spring、MyBatis等。可能需要编写一些简单的Web应用程序,实现基本的增删改查功能。 4. 多线程编程:应聘者需要理解多线程编程的基本概念和原理,能够使用Java提供的多线程相关API进行并发编程。 5. 性能优化和调优:应聘者需要了解如何进行性能优化和调优,能够使用一些常用的工具对程序进行性能分析和调试。 6. 设计模式:应聘者需要了解常用的设计模式,能够根据实际需求进行合理的设计和开发。 针对这些内容,应聘者可以提前进行充分准备,复习相关知识。同时,应该注重实践,多做一些相关的项目和练习题,提高自己的实际动手能力。 对于笔试中遇到的问题或难点,应聘者可以积极思考和分析,尽量给出自己的解决方案。如果不确定的地方可以标明,并在之后的面试环节中与面试官进行深入讨论。 最后,应聘者在笔试过程中要保持冷静和自信,展示出自己的优势和能力。希望以上回答能对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值