灵犀互娱游戏客户端面经


一面 5.9 约40分钟

自我介绍
简述简历项目

项目(各个项目均有提问)
arpg游戏demo:
1.为什么使用c#和lua编写脚本
(c#是unity需求,lua是部分插件需要)
2.如何将lua与c#结合
(注册c#方法到lua引擎,再通过lua代码调用,大致讲了一下,没涉及细节)
3.战斗系统做了什么
(主要是战斗操作与逻辑计算,回答自己实际做的东西)
4.与敌人的战斗交互具体是怎么做的
(碰撞检测判断是否受击,受击事件触发回调函数,表现层进行动画处理,逻辑层进行状态转移与伤害公式计算)
5.主角操作的实现
(状态机,大致讲了实现思路)
6.敌人逻辑的实现
(也是状态机,讲了一下敌人状态转移的逻辑)
 
渲染引擎项目
1.使用的光照模型
(pbr光照模型,手写了渲染方程)
2.简述一下渲染方程的含义
(简单说了一下BRDF函数,从材质到角度来解释,没有深入细节)
3.渲染方程的求解
(黎曼和,蒙特卡洛积分)
4.项目中还实现了什么图形学算法
(回答了几种阴影算法)
5.场景管理是怎么做的,采用了什么方式
(ecs架构)
6.为什么要使用ecs架构
(模仿unity的实现)
7.ecs与oop的区别
(ecs避免了oop继承体系复杂性,将同类数据由统一的逻辑进行处理等,回答得比较粗糙,跟面试官交流了一下)
8.场景中怎么管理对象
(不同模型划分为不同对象,建立对象层次结构等)

八股
1.虚函数与纯虚函数
(简述虚函数相关)
2.c++如何确定一个对象的类型
(不是很明白,面试官向下展开说了一下,涉及到内存对齐、类型转换可能出现的问题等,比较深入,回答得不是很好)
3.简述快排原理
(每次选取一个key值,找到一个位置使左边元素比它小,右边元素比它大,每轮递归)
4.快排的时间与空间复杂度,什么情况下最坏
(具体细节不太记得,根据理解答了一下,空间复杂度说错了)
5.快排是稳定排序吗?举例一个稳定排序
(不是,选择排序)
6.堆的作用
(得到一组数据的最大值或最小值,堆排序)
7.堆怎么插入和删除元素,最大堆化怎么做
(根据数据结构定义简述过程)

没有手撕算法环节

闲聊
1.为什么想加入游戏行业,是早有打算吗
2.参加过什么游戏比赛,谈谈经历感受
3.最近玩了什么游戏,感觉怎么样

反问
1.最近玩什么游戏
2.感觉这次面试交流得怎么样

总体感觉偏向于项目,从项目来问一些实际的东西,问题广度比较大。因为一些个人原因有比较长时间没有准备面试了,所以一些问题答得不是很好。

已约二面。不知道这个时间是不是太晚最后没hc了。


二面 5.12 约30分钟

自我介绍
项目介绍

全程聊项目,讲了讲一些程序设计的问题(程序结构问题建议还是画一下图,口述确实讲不太清楚),无八股,涉及具体内容的问题也不多,感觉像KPI了,应该到此结束了




全部评论
过了吗
点赞 回复 分享
发布于 2023-09-27 20:53 山东
选择排序是数组不稳定,链表稳定
点赞 回复 分享
发布于 2023-06-19 23:38 浙江
楼主过了吗
点赞 回复 分享
发布于 2023-05-12 16:58 山东
我也刚面完灵犀,也是30分钟
点赞 回复 分享
发布于 2023-05-12 16:29 山东
选择也不稳定啊
点赞 回复 分享
发布于 2023-05-10 21:55 湖北
在ARPG游戏demo中,使用C#和Lua编写脚本的原因是什么?
点赞 回复 分享
发布于 2023-05-10 16:39 江苏
什么时候二面啊
点赞 回复 分享
发布于 2023-05-10 16:21 江苏
楼主是7号笔试的吗
点赞 回复 分享
发布于 2023-05-10 15:42 四川

相关推荐

1.实习学到的收获企业化的开发流程2.做的对自己有提升的点?说了调接口查询表格,实现订单的跟踪和合同入库3.做了什么比较难度的?模型微调,先是线程安全的配额检查,然后校验文件格式,然后冻结token,消息队列发送模型微调部署的消息,算法组那边拉取消息去部署,最后用定时任务检查微调任务状态并扣减token4.如果说算法那边部署出问题了怎么办?微调这个接口用什么指标来评价他的好坏?定时任务检查微调任务状态,如果部署失败重新发消息。主要是接口正常返回率和微调成功率吧。5.你说的这个jsonL文件是什么样的一问一答的格式6.那他如果很大怎么办?用的是oss上传api,分片上传,并且支持断点续传,显示上传进度7.用户把文件上传到服务器,服务器在传给对象存储,然后算法去对象存储里拉取是这样吗?是的8.那你只解决的服务器和对象存储之间的大文件传输问题,用户和服务器之间怎么办?不会,不是我做的9.你这里用到了redisson分布式锁是吧,说说咋用的用来记录用户当天调用服务的次数,并且保证其线程安全10.如果没有分布式锁会怎么样可能用户短时间内请求了很多次服务,但是当天的请求次数只加了1,这样会导致用户当天超额部署11.自己做的两个项目哪个熟一点?oj项目12.遇到了什么难点?主要是部署上线,我用云服务器安装宝塔linux部署这个项目,包括maven打jar包,放在vm上部署,最后要配置云数据库和云redis,解决前后端跨域问题。并且这个判题机用的process类执行代码的相关函数之前没有了解过。对我来说比较有挑战13.那你是用物理机部署的,了不了解容器化部署?kubernetes和docker?有没有用过实习的时候用的jenkins就是用的容器自动化部署,只要选择对应的git分支jenkins就会自动部署14.那你了解原理吗?不了解,只会用15.这个oj项目,应该有很多测试样例和输出答案吧?这个怎么做呢?这里首先用户把代码上传上来,然后后端会生成一个判题消息放在broker中持久化,然后判题机拉取消息拿到用户传来的代码,调用process函数拼接指令执行代码然后把执行结果记录到一个list中,有几个测试样例就执行几次,然后最后拿list和标准答案的list做比较,统计分数。16.数据库了解哪些索引b+树索引,主键索引,唯一索引,普通索引,聚簇非聚簇,倒排索引17.库表设计的时候,题目信息和用户传来的代码这两个string字段都比较大吧,那存的时候聚簇索引会出现什么问题?这个导致叶子节点很大,会增大插入和删除节点时维护b+树的压力。(这里答的不对,问ai是会导致每个页(通常16KB)能存储的记录数减少,数据量增长时更容易触发页分裂,页分裂会导致主键索引的维护成本增加,并且会使b+树变得更高,增大了查询成本18.jvm虚拟机垃圾回收了解多少标记整理算法,标记清除算法,复制算法,分代回收算法,CMS,g119.g1比CMS强在哪这里答的很拉,具体看小林coding吧20.我看你用到了rocketmq是吧,那消息丢失是怎么产生的,怎么解决的首先消费者到broker要用ack来确认,broker这边如果异步刷盘突然宕机会导致消息丢失,所以这里要改为同步刷盘,然后消费者这边拉了消息之后不能立刻向broker更新consumerQueue的位置,要等消费消息的逻辑完全结束才能去更新。21.平时玩啥游戏,有没有玩过国外的游戏,用啥加速器,为啥用雷电因为b站搜出来第一个就是他,而且他是按小时收费,感觉好一点22.按月收费和按小时收费你喜欢按小时收费是吧,为什么?23.反问主要做游戏的技术中台,负责游戏饰品交易,活动,游戏加速器,延迟检测等等估计凉凉
查看22道真题和解析
点赞 评论 收藏
分享
评论
7
103
分享

创作者周榜

更多
牛客网
牛客企业服务