1.静态合批与动态合批的原理是什么?有什么限制条件?为什么?对CPU和GPU产生的影响分别是什么?

原理:Unity运行时可以将一些物体进行合并,从而用一个描绘调用来渲染他们,就是一个drawcall批次。
限制条件:
静态:不移动,相同材质
动态:较大顶点开销,仅支持小于900顶点网格物体,顶点着色器使用属性越多,顶点开销数量限制越大,
也要相同材质,不同缩放尺度不能动态合批。

原因:相同材质,纹理相同,同时渲染。同时运行着色器代码。
cpu: 减少cpu提交drawcall
gpu:让gpu一次搞定,减少等待时间。

2.一个正方体多少个顶点和三角形,为什么?如何合并顶点?

24(38),12(62)
顶点24原因:立方体上贴一张二维图形会走样,所以每个面重复贴一张,一个顶点同时是三张图片uv,所以需要三个顶点,三组UV。三顶点重合。

3.相机中如何做分层渲染?底层原理是什么

多相机控制图层渲染不同图层的内容,原理:应该跟双缓冲区有关系吧,相机渲染的区域修改颜色缓冲区,不渲染的使用黑边。

4.项目中的打包工具做了什么事情?

0.设置包签名
1.编译 dll
2.拷贝引擎dll文件
3.加密lua文件
4.设置资源ab路径,导出映射文件。
5.打包图集
6.打包ab
7.最后打包apk

5.lua的闭包是什么?闭包产生的内存泄露如何解决?

函数内使用外部变量,例如嵌套函数的父函数的变量
解决方法:函数内的局部变量都会在栈上面,函数执行后不释放引用的闭包函数,由于闭包内有引用的外部变量,闭包也不会自动释放,所以需要释放闭包函数的引用就行了。

6.、A*寻路算法的原理是什么?还知道其他寻路算法吗?

地图分块
8个方向
估价函数,估价出最适合的格子前进。两个列表,open,Close,从open中找出f(n)最小的格子,将它周边的格子加入到open中,并将自己从open中删除加入到close中,如此循环。边界判断。
Dijkstra
寻找出有向权重图中指定节点(“源节点”)到所有其他节点的最短路径。
https://chinese.freecodecamp.org/news/dijkstras-shortest-path-algorithm-visual-introduction/

7.什么是堆,堆排序又是怎么样的

完全二叉树,非终端结点的值不大于(或不小于)左,右孩子结点的值,数组结构。左孩子不一定小于右孩子,所以不是二叉查找树。

8.求一个大型排行榜的Top100用什么算法,过程是怎么样的

客户端:topk问题,原地建个100的最小堆解决。遍历一遍数据集合解决
服务器:不全局全服,分服。

9.lua的table的底层实现原理是什么?为什么这么设计?

array数组和hashtable(哈希表)两种数据的结合。 提高table的插入查找效率
部分整形key作为下标放在数组中, 其余的整形key和其他类型的key都放在hash表中。

10.lua与C#或C语言相互调用的底层实现原理是什么?

lua 底层c语言实现的。
C#与Lua交互过程:
C# Call Lua : 由C#文件调用Lua解析器底层dll库(由C语言编写),再由dll文件执行相应的Lua文件;
Lua Call C# :
1.Wrap方式 首先生成C#源文件所对应的Wrap文件,由Lua文件调用Wrap文件,再由Wrap文件调用C#文件
2. 反射方法
C#与Lua交互原理:
C#与Lua进行交互主要通过虚拟栈实现,栈的索引分为正数与负数,若果索引为正数,则1表示栈底,若果索引为负数,则-1表示栈顶。

C# Call Lua:由C#先将数据放入栈中,由lua去栈中获取数据,然后返回数据对应的值到栈顶,再由栈顶返回至C#。

Lua Call C#:先生成C#源文件所对应的Wrap文件或者编写C#源文件所对应的c模块,然后将源文件内容通过Wrap文件或者C模块注册到Lua解释器中,然后由Lua去调用这个模块的函数。
代码层面:
CSharp调用Lua过程:
C#生成Bridge文件,Bridge调dll文件(dll是用C写的库),先调用lua中dll文件,由dll文件执行lua代码
C#->Bridge->dll->Lua OR C#->dll->Lua

11.装拆箱

值类型和引用类型互相转换,泛型解决。

12.哈希表

本质数组,散列函数算出索引所在位置,去除值。键值对。

13.为什么红黑树能加快查询速度

树高度少,左右子树高度相差不大于1,二叉查找树,左<中<右

14.c和lua那个占用内存更高

lua,因为lua弱类型,每个都是引用对象,并且虚拟机加载环境需要更大的内存。

15.c和lua那个更快

c,因为lua解释型要虚拟机翻译

16.lua和c交互

当C要调用Lua数据时,Lua把值压入栈中,C再从栈中取值; 当Lua调用C数据时,C要将数据压入栈中,让Lua从栈中取值
https://www.cnblogs.com/KillerAery/p/9249145.html

17.LineRender底层实现原理

顶点数组,两点确定一条直线,DDA或者Bresenham直线算法绘制像素

17.二维碰撞算法:AABB

从反面来思考,简单迅捷。

18.cpu缓存

减少处理器访问内存时间的部件,处理器发出内存访问请求时,会先查看缓存内是否有请求数据,CPU运算速度快,内存读写跟不上。
缓存命中:请求数据在缓存中。 不在会请求内存先写入缓存在返回。

19.迭代器是什么

看c++源码,迭代器内部就是一个指针指向个内存,不停移动。

《面试》游戏开发常用面试问题以及答案相关推荐

  1. 游戏分类&&游戏开发常用术语

    1. 游戏分类 游戏类型分类 ACT(Action Game) :动作游戏 纯粹的娱乐休闲,包括格斗游戏和射击游戏.具有关卡设计的横版过关游戏可以称其为动作游戏.目前的动作游戏均指传统的过关式动作游戏 ...

  2. 游戏开发校招面试全记录(大三篇)

    上课听着职业老师在说,你们要写求职信哦呵呵..现在工作很难找哦呵呵..用上世纪90年代讲现在的招聘是肯定不行的,我就分享一下自己写过的两个面经吧,也算是我的春招和面经吧.写的不对的地方你们也就呵呵一下 ...

  3. 飞鱼科技游戏开发岗面试经验

    面试公司:飞鱼科技国际有限公司 面试岗位:游戏开发 面试时间:2018年6月8日上午 面试地点:成都市天府软件园 面试过程: 第一轮面试_热身 第一位面试官是较为年轻,问了我为什么选择来成都发展,来多 ...

  4. 游戏开发校招面试全记录(大四篇)

    至于大四,更多的是工作以及之后对于自己一些职业认真的思考,可以说用来找工作的时间并不多,也没有说想一定要去大厂 (当然刚毕业就能进大厂做开发还是很好的,留下了羡慕的泪水...) 最后是我自己把一个舒舒 ...

  5. 2015春季实习生招聘 多益网络科技有限公司笔试+面试 游戏开发工程师

    很早就在官网上投了简历,简历投递之后就是在线测评,主要是智力测试题,很多图形逻辑题,不是我擅长的,个人感觉难度偏大. 之后就是接到一笔通知,周六下午在大学生活动中心,大概两三百人的样子,估计在线测评, ...

  6. 三七互娱 Java游戏开发工程师 面试(两轮技术+HR面)

    (2020春招补招,已拿到offer) 抱着投着试试看的心态去的 自己还是不太了解游戏开发 框架啊这些都没怎么问 比较重视基础知识,面的也基本都是基础知识 所以面完才发现自己太基础的知识反而一问三不知 ...

  7. python游戏开发工程师证书_【网易游戏游戏开发工程师面试】网易python开发 游戏公共支持-看准网...

    10.21终面已参加,希望能顺利通过终面拿到offer-❤一共三轮,电话面试+笔试+视频面试,视频面试3V110月19日投的新媒体运营的简历,HR说因为是周末,等工作日再联系我,在周一下午三点我接到了 ...

  8. 开发人员 面试_开发人员面试指南

    开发人员 面试 by Dave Smith 戴夫·史密斯(Dave Smith) 开发人员面试指南 (A developer's guide to interviewing) 备用标题:如何面试公司 ...

  9. 游戏开发常用工具总结

    游戏引擎常用工具总结一下下. 游戏开发会用到很多编辑器 我归总了一下 大约十个 地图编辑器 数据编辑器 策略编辑器 任务编辑器 技能编辑器 UI编辑器 打包软件 模型编辑器 特效编辑器 控制台 地图编 ...

  10. 游戏开发常用引擎工具介绍对比区别(UE4,Unity,Cocos,LayaAir,[egret白鹭])

    UE4(即虚幻4) 是一套为开发实时技术而存在的引擎工具.目前广泛应用于3D建模渲染.游戏开发中.它完善的工具套件以及简易的工作流程能够使开发者快速修改或查看成果,对于代码的依赖性很低.而完整公开的源 ...

最新文章

  1. Android BLE 低功耗蓝牙技术使用解析
  2. Java并发编程,无锁CAS与Unsafe类及其并发包Atomic
  3. 卫星导航技术的源起很有戏剧性
  4. php 使用redis锁限制并发访问类
  5. pyramid新建项目
  6. 安卓 dex 通用脱壳技术研究(四)
  7. go语言linux下开发工具,LiteIDE 开发工具指南 (Go语言开发工具)
  8. [Android]Notification汇总
  9. Android Broadcast 和 BroadcastReceiver的权限限制
  10. Sql Server的艺术(二) SQL复杂条件搜索
  11. 机器学习算法——神经网络4(RBF神经网络)
  12. GPS模块运用: GPS模块数据提取、常规参数配置(脉冲频率、输出指定命令、定位模式等)
  13. 移动端网页、公众号兼容性问题记录
  14. MAC快捷键---8
  15. 阅读笔记《量产必备的毫米波雷达》
  16. Ken Thompson 的经典 C 程序
  17. JQuery学习之路Part8:家族树操作(查找祖先、后代、兄弟同胞、绝对查找)【完结】
  18. 浪潮之颠二_读书笔记
  19. idea第一次上传代码到gitlab
  20. [zz][ZOJ Monthly]October 2008解题报告

热门文章

  1. 趣头条自媒体审核不过怎么办,趣头条伪原创工具教程
  2. python3 爬虫 HTTP Error 403:Forbidden
  3. MATLAB图像检索系统GUI设计
  4. 浩辰云建筑2021功能详细介绍
  5. 以太坊(ethereum)开发DApp应用的入门区块链技术教程
  6. 宝塔环境下MinDoc的安装教程
  7. 指数分布的极大似然估计
  8. Ruff自主研发的NB-IoT智能网关获得联通实验室测试通过
  9. 高频面试题:秒杀系统设计
  10. STM32——电容触摸按键