腾讯光子客户端开发实习岗一面面经

腾讯会议 90分钟+

前情提要:投天美技术群面挂了,光子秒捞(感谢!!)

1.简单减少下自己吧

对着简历巴拉巴拉

2.有看到你在游戏开发时使用了很多技术,可以讲讲有哪些技术吗?

脑子抽了:(

说根据需求开发功能,并使用与之对应的技术或组件;动画、碰撞检测系统、脚本逻辑算吗,对象池之类的(面试官问有没有具体的,回答完之后笑了笑)

3.刚刚你提到了很多技术,有哪些是比较熟悉的,能具体讲讲吗?

说根据需要使用,没有说哪种特别熟悉;

4.那就说说对象池吧,看你用到了对象池,具体原理和优劣?

将暂时不使用的物件(prefab)禁用并扔到对象池保存起来而不是销毁,在需要时再从对象池get出来激活并初始化,能够降低性能损耗

5.具体是如何降低性能损耗的呢?

尬住了,没有考虑过这个问题;

先说了下可能降低内存损耗吧,看面试官的神情语气应该不对,仔细想了想,觉得是在new(创建)和delete(销毁)的时候会调用类的构造和析构函数,那么CPU就要分配部分计算资源去执行这些函数,而如果采用对象池,不需要这些步骤,需要的时候从内存调过来就行,节省了CPU计算资源。

6.那具体是用什么数据结构实现的对象池?

在我最近做的这款肉鸽游戏中有用到,主要是通过字典+链表的方式,字典的key存预制件名,链表则插入一个个预制件实例,当需要生成物体时,先去字典中访问是否有,若有则直接从池子调用,若没有则new一个新的,销毁时将物体放到池子对应的链表中;(说了下缺陷)因为是比赛,时间比较赶,就没做优化,后来想想其实有问题,当某一时间段大量访问对象池时,池子没对象就会new很多个对象,而后续如果不再使用,那么对象就会留在池子了占内存

7.刚刚你说了这些缺陷,那有没有什么办法解决?

想了想,可以通过动态更新的方法,使用空间局部性原则,当一段时间池子中某一对象使用频率较少时,预估后续使用频率也较少,可适当减少池中对应链表中的元素个数(渐进式减少)

8.你有提到资源卸载,说说他的原理吧

可以用到Resources.load做资源的动态加载,不必在编译时知道需要加载什么资源,卸载的话同样用到Resources

9.那比如我有很多子弹飙血特效,我该如何对卸载这个资源特效?什么时候卸载呢?

有点说不清楚,还是举个栗子吧!

在我做的肉鸽项目里,也有很多子弹特效(粒子特效),每个粒子特效都会有生命周期,当生命周期结束时,再把粒子特效丢进对象池子里,等待下一次获取,而当场景切换时,再统一卸载对象池中的资源。(这方面感觉还需加强)

10.看了下你简历中提到的序列帧动画和碰撞检测,具体是怎么实现的?

得到允许后打开了ppt,播放了一下彼界赐福的实机演示,说碰撞检测主要通过unity中的box collider组件,通过onCollisionEnter获取到所碰撞的Boss对象,再执行对应的操作。

11.都是用的box碰撞器吗?unity还有哪些碰撞器(追问)?

还会用到capsule collider,还有像刚提到的box,sphere,line,mesh等(忘记3D物体的碰撞器了,晕)

12.刚刚看到你的这个boss,他具体的动画切换是怎么完成的?

将ppt翻到有限状态机那一页,实际上是通过Animator controller完成的,controller中有很多个动画状态,当满足状态转移条件时便会切换状态,但实际上我写的时候自己搭建了一套boss的有限状态机,当程序执行切换操作时,会给Animator对应的消息变量(bool,trigger等),使得Boss的动画能够相应的切换。

13.项目中有用到什么寻路算法吗,有了解过什么AI寻路算法吗?

这个项目中因为是横版2D嘛,怪物移动只在x轴上进行,所以不太涉及什么复杂的算法,如果是涉及二维或三维的寻路,可能要用到DFS,BFS或是A*算法;

14.能聊聊A*算法吗?

A*算法是一种寻路算法,也是求最短路径,在每次选择下一个路径节点时,不仅仅要考虑当前节点去往该节点的代价,还需要加权该节点到终点的启发式代价,通常的启发式函数会用到曼哈顿距离或者欧式距离。

15.好,那接下来问你一些有关计算机网络的知识,你知道TCP和UDP吗?区别?

T传输C可靠P协议,传输可靠协议,所以他是可靠的建立连接的面向字节流的,而U用户D数据包P协议,用户数据包协议,是不可靠非连接面向数据包的

16.那么在咱们开发游戏的时候,用哪个比较好?

TCP吧,毕竟是面向连接可靠的,谁也不想传输的时候丢一两个包导致卡顿延迟

17.那比如说当前一帧我要发送大量的数据,用TCP会有什么问题?或者说TCP相较于UDP的不足之处是什么?

当时有点不知道这是问什么,就答说TCP因为有三次握手四次挥手以及流量控制拥塞控制,可能相比UDP开销会更大一点。(可能是想说TCP有流量限制不能一次性传太多帧,所以需要多个TCP连接?)

18.进程和线程的区别在哪里?

进程是操作系统分配资源的基本单位,线程是操作系统进行资源调度的基本单位,一个程序可能有多个进程,一个进程可能有多个线程。

19.有了解过游戏开发中的多线程吗?

还真没了解过,只用过协程做过开发。

20.那你想想看,多线程的应用场景会有哪些?

真有点蒙蒙的;

比如说进行工作分工?一个线程管数据,一个线程管交互逻辑,一个线程管显示(答道MVC那边去了),场景的话A发射子弹击中B,C看见的飙血的过程之类的?(总之是真没怎么用过,mark一下回去好好学学)

面试官:多线程其实在游戏开发中非常常见,刚刚资源卸载就用到了,可能是因为引擎帮你封装好了操作,所以你不太了解)

我:滑轨...

21.问问数据结构和算法吧,你知道空间条件树吗?(应该是这个名字)

没有太用过和了解过,是用于碰撞检测判定的吗?将空间分割成多个子空间,然后只检测单个子空间中的碰撞物体。

22.那不能两两进行碰撞检测吗?(追问)

不行呐感觉时间复杂度有点高(看我不太了解这块就没问的太深)

23.遍历n个元素的数组和链表,哪个比较快?

秒答数组,遍历时Cache缓存命中率比较高,空间局部性原则

24.既然你提到Cache,那是什么?

高速缓存(应该是这个名吧),主要是解决内存和CPU之间读取速度不匹配的问题

25.Cache具体是怎么工作的,怎么和内存合作?

当CPU打算访问某个数据时,会先去多级Cache中尝试寻找数据是否存在,l1 l2 l3,若找不到,再从内存中找(忘记说会进行Cache块替换了,缓存一致性了)

26.既然提到了内存,你知道虚拟内存吗?

每个进程都会有独立的虚拟内存地址,对数据的读写操作都是基于该虚拟内存地址,操作系统则负责将虚拟内存地址映射到物理地址当中,本质是将部分虚拟内存放在磁盘上,进而能使用比物理内存更多的存储空间。

27.提到了磁盘,内存和磁盘是怎么合作的?若内存中没找到数据会怎么样?

若没有找到数据,会引发缺页中断阻塞当前进程,并从磁盘调页。(没有问有什么替换算法)

28.问问语言类的吧,你是主用Csharp的吧,还会什么语言?

写游戏的时候会用到Csharp,平时做实验的时候会用python和C++

29.那C++和Csharp有什么不同吗?

绝大部分情况Csharp不支持指针,而C++支持;编译速度来看C++更快;C++会将代码编译成汇编语言,再转换成机器语言,Csharp则先编译成中间语言IL,链接CLR(公共语言运行库),再编译成机器语言;C++是不仅仅是面向对象的,而Csharp是是面向对象的;UE主要用C++,Unity主要用Csharp(笑) 23. 谈到指针,指针是什么?可以用来干什么?

指针就是指向数据的地址,比如在函数中我想修改输入变量值,可以传递指针,通过指针修改。

30.那Csharp中的函数没有指针,是怎么修改输入值的?

简直是给自己挖坑,压根没想过这个问题:(

答道,平时写的时候,都是可以直接在函数中修改输入变量的值的,猜测输入的应该是该变量的引用,所以可以直接修改。

31.了解堆栈吗?C++和Csharp分别是怎么使用堆的?有什么区别?

卡主,真是好好想了想;

C++通过new创建新对象实例并调用其构造函数,Csharp也是通过new;销毁时C++会要通过手动delete释放内存,Csharp的话写游戏脚本的时候就没释放过内存,推测应该是Csharp的GC垃圾回收机制自动帮我释放了内存。

32.了解C++的虚函数吗?具体是怎么实现的?

了解,虚函数是C++实现多态的重要机制,主要是通过构造类的虚函数表实现的。

33.那构造函数和析构函数可以是虚函数吗?

构造函数应该不能为虚函数,因为虚函数本质是为了实现多态机制,而执行构造函数时会先执行父类构造再执行子类构造,此时子类尚未更新虚函数表(或是未定义),那么虚函数便不能达到预期的多态,没有意义。(感觉这里还是有点混淆,得加强)

析构函数一般是虚函数,假设现有一父类指针指向派生类对象,delete该对象,如果父类析构函数不为虚函数,则会调用父类析构而非派生类析构,导致一些错误麻烦(这里卡主了,没想出来麻烦是什么)

34.时间也不早了,考你一道编程题吧!m个技能点数,n个技能,每个技能有对应的学习点数要求以及技能伤害,问最大伤害值是多少?

走到这已经是头昏昏沉沉,又有点紧张,因为面试官说时间有点晚了,就只给10-15分钟做题时间,没想出什么特别好的办法,就想着排序贪心的思想,不出意料的没写完。

然后

面试官:你就说说自己的想法吧

我:按性价比排序,贪心策略

面试官:那你看看用例3,用你的办法做是不是有些问题

我:!还真是,寄!!

面试官:好好想想,如果不能用排序贪心,还有没其他办法

我:(灵光一闪)dp吧

面试官:哦?那你说说怎么dp

我:叽里咕噜%&#@...(没说出个所以然来),说不出来,能不能给我点时间把他写完

面试官:不必啦,解释下什么时候用dp比较好

我:当前状态能够通过状态转移,从前一状态得到,并需要记录中间值时可以用到

面试官:这道题还能用DFS和BFS,与之相比dp的优势是什么?

我:思考ing,时间复杂度都是O(n^2),空间复杂度dp只用一维数组存,会低一点吧

面试官:你要不再好好想想

我:努力思考ing,真想不到了(好吧原来是dp会少遍历一些不必要情况,时间复杂度更低,最近没复习算法题的恶果)

35.聊点轻松愉悦的吧,有玩过什么游戏吗?

直接打开电脑上的steam库,如数家珍,还提到玩过一点fps,感觉面试官眼睛亮了

36.有玩过什么fps游戏吗,具体说说?

CF,CS,OW,PUBG,APEX,瓦...,不过由于我动态视力不行,像大逃杀之类的游戏体验感很差,就没怎么玩 31. 最近有玩过瓦吗

没了,只看瓦的比赛,EDG(看样子面试官很喜欢瓦,又或者我面的这个项目组准备开发瓦手游?)

37. 玩游戏给你带来了什么?你最看重游戏的哪些点?

说了下一个是在游戏中付出是真的能有回报,游戏不会亏待每一位玩家;一个是比较看重剧情,享受每个故事带给我们的悸动;还比较喜欢玩一些独立游戏,学习借鉴一下独有创作者的逆天脑洞。

38.为什么选Unity?为什么想成为游戏开发者?怎么踏入这个行业的?

当时本科有一帮很喜欢玩游戏,有很多奇思妙想的小伙伴,一拍脑袋说做个游戏吧,又因为团队里没什么人有开发经验,自己有点编程基础,就担任了团队开发的职位;当时也是有小伙伴说Unity好上手,不怎么吃设备,就学习了这款引擎;后来也是打比赛做了第一款自己的游戏《模拟剧场》,这游戏脑洞清奇有点幽默,而每天和左边的室友兼策划Battle,实现一些奇思妙想的功能真的很有趣,后面也上线了嘛,也得到了很多正反馈,就感觉将一些天马行空的想法落地实现,并收获大家反馈的过程很有成就感和满足感,很棒,我想这也是我坚持下去的动力吧。

39. 有什么职业规划吗?

因为开发的游戏规模都比较小,很多技术(多线程,lua热更新,shader等)都理解的非常浅薄,所以想在实习期间能够多接触学习这些技术,同时也了解整个游戏产品是如何从立项、策划、开发、上线、运营的,后续的话想通过一到两年的时间做gameplay,锻炼代码技术,再往引擎或是渲染管线计算机图形学这方面发展吧

40. 我们游戏开发这边在深圳,可以接受吗?

问了下是不是深大旁边十字路口的那座双子星,说好像不是,在科兴路,离深大也近,双子星好像是toB部门什么的。就说也挺好,以前在深大呆了四年,对南山也比较熟悉。

41. 有了解过图形学,渲染关系管线之类的知识吗吗?

看过一本关于shader的书,了解整个渲染管线的流程,也刷过games的部分视频,写过shader脚本(简单),总的来说还是入门级,以后也想向这方面深造

反问

1.我目前的一些不足吧,有什么提升点吗?

建议是多了解游戏引擎的底层逻辑,无论是通过百度还是AI什么的,这会对你日后的游戏开发有很大帮助

2.游戏比赛开发的demo和商业化游戏产品的区别主要是什么?

demo更注重的是设计的框架,想法,而商业化游戏使用的技术往往会更加成熟

3.作为实习生,在实习期间最需要学习的是什么?

与策划、美术沟通,与其他程序佬协作完成项目的技巧;了解游戏开发的一些基本常识,性能更优的技术,以及了解整个开发流程。

谢谢!

总结:

总的来说鹅厂对基础真的很重视,八股覆盖的很全面,而且会根据你的回答进一步深挖问题,当然也会对你的项目狠狠进行拷打。

面试官人真的不错,在你需要思考的时候会给予你时间,在你很是纠结的时候会引导你方向,在你实在不懂的时候会为你答疑解惑,还会耐心和你一起讨论问题,大厂不愧是大厂。

经验:C++以及408一定一定要过关,要熟悉自己写过的项目(有条件的话可以用视频或ppt的形式讲解其中的技术点,会让面试官很直观的了解到你的工作);当然项目是加分项,如果会点渲染管线相关的就更好了。

11点面的试,12点半结束,两点半就收到二面邀请了,速度好快,大厂不愧是大厂。

发发面经攒攒人品吧!求求啦让我上岸吧!!

#实习面经##实习面经鹅厂##光子工作室群#

#软件开发笔面经#
全部评论
感觉你你这个面试才是对的啊 其他人的面试没一个看得懂的
5 回复 分享
发布于 03-19 11:03 福建
膜拜技术佬
点赞 回复 分享
发布于 07-11 16:15 广东
楼主的八股都是哪里看的
点赞 回复 分享
发布于 06-20 09:51 广东
编程题和我遇到的一模一样哈哈哈哈哈哈
点赞 回复 分享
发布于 03-19 21:24 上海
佬,能问问天美技术群面考什么吗
点赞 回复 分享
发布于 03-19 09:56 浙江
我今天晚上六点面的,问的问题几乎一模一样做的题目也一样刚刚给我挂了
点赞 回复 分享
发布于 03-18 22:01 湖北
恭喜恭喜
点赞 回复 分享
发布于 03-18 18:48 四川

相关推荐

07-14 17:04
已编辑
门头沟学院 C++
先说结论:目前不建议入行。除非你真的参与过工业界游戏开发管线,并且仍觉得自己非常合适,否则不建议任何人凭着对游戏的热爱和满腔热血杀进这个行业,起码现在不建议。给大家讲讲目前业界的状况:去年我自己和几位朋友加一起经历了6个项目,目前的情况是:一个上线但苟活,一个上线但缩编,一个正常在研,一个重做,两个砍掉。情况没有两三年前那么严峻(那时候5个项目砍4个),但也远远谈不上什么前途。十年前游戏行业最大的困境在于人才缺乏,五年前最大的困境在于版号稀缺,现在最大的困境在于缺少方向。以前是没有资源做,现在是不知道做什么。援引某高管的观点:过去十年,手游发展的动力,来自于将主机pc平台的佳作搬上手机,而现在这种动能已经十分微弱。(下面开始是个人观点)由于缺乏确定的方向和可预见的回报,现在业界的打法仍然十分保守,以防御为主,扩张和立项都十分谨慎,hc极其有限。另一方面,近年来得益于games系列等优秀课程的出现,以及ue5的发布,游戏界确确实实多了很多人才。尽管靠谱的ue程序依然难招,但也不至于跟以前一样会点cpp就要。以上因素综合导致了新人入行竞争加剧的现象。至于单机市场,尽管近年来国内涌现出一批以黑猴为代表的优秀作品,但国单市场盘子很小,roi很低。虽然玩家群体目前充满乐对国单市场的期望,但资方大多仍保持克制谨慎的现象,大厂项目很少,且人员要求比较高。手游尚且可以容忍粗制滥造,愿给新人一些成长的机会,单机基本立项之初就是冲着高品质去的,再加上项目组面对资方预期回报数据的巨大压力,更倾向于把有限的hc用在高熟练高产出的业内老兵身上。除开大厂,独立游戏工作室倒是愿意给新人机会,不过大多数独游工作室都不太稳定(虽说大厂也没好到哪去,但你可以活水不是),而且技术栈比较浅,人员质量参差不齐,出了问题都不知道问谁(我组有句俗语:我要去引擎组搬救兵了),从成长的角度来说不建议职业初期就去做独游。OK,以上是大环境部分,下面我们讲一讲个人部分。先声明:本人是做客户端的,如果你想了解服务器的知识,可以直接翻到最下面先说引擎吧,unity从数量上看仍然是绝对主力,但ue的反攻势不可挡,现在有点实力的厂都在纷纷开设ue项目,so如果你是大一大二的同学,建议学好cpp,以ue为主力引擎。如果你无法学会cpp,建议离开游戏行业,因为语言关只是第一关,游戏的技术栈深度太恐怖了,cpp无法学明白的话,就算换unity估计也只能在ui仔的岗位上空蹉跎几年。再说说学历,鄙人近年来没亲眼见过公司里新进过非985 211的正编,但听说过有这样的人,不过主要集中在非技术岗,so我不是很了解。实际上211都很少,985本硕是主力,海外名校有很多。不过你能掌握好cpp的话,学历估计也能到这个标准吧,so个人并不觉得学历会卡人再说说方向。客户端的方向主要分渲染,物理,动画,ai,gameplay五大方向。渲染是负责绘制游戏画面的,主要分图程和ta,图程偏向于挖掘更多性能,ta偏向于做出更好的视觉效果,技术上前者更深,后者要懂美术。不过图形学最大的问题其实在于严重的人才过剩。顶刊顶会的top2佬也捞不到渲染的工作做,只能天天写lua搓ui,一个项目组往往有一两个人图程就够了。至于其他人,猛学了两年图形学,到头来也只能证明你很聪明,仅此而已。物理主要是修bug和搞性能。学物理的没有学渲染的那么多,但用物理的项目就更少了。绝大多数游戏只要用引擎提供的基本功能就好了,不会需要用到什么复杂的软体,绳索模拟等。就算真要,一般也只会寻求视觉欺诈的解决方案,找不到就砍需求,而不是找个物理程序去给你改底层物理引擎。实际上物理程序一般不是做物理需求,而是处理因为组内同事搞不来物理引擎导致的物理bug。另一方面,游戏物理会教你怎么做高性能计算,因此物理出身的程序往往在做性能优化,场景管理,加载管理等看起来跟物理没关系的事。动画顾名思义,研究角色动画的。底层要改的很少,工作中更多的是用动画编辑器,配合美术干纯体力活。ue那动画蓝图你就连去吧,一连一个不吱声。动画的技术比较古老且少,绝大部分游戏用的还是传统状态机,少部分会用状态树,motion match(手游用不上,因为太吃性能了)等技术。算是这5个方向里水最浅的一个。ai现在分两种,一种是做传统游戏ai,一种是通过ai辅助游戏生产。前者目前比较新的实用技术是通过机器学习给ai下行动指令,多见于对抗性较强的竞技游戏(我做过,我的评价是版本管理学的灾难,pm的噩梦)。后者业内还在研究,目前处于一个各家都说自己做的ai好使,但大家看了还是更愿意发挥工匠精神,手工研制游戏的阶段gameplay是搞玩法的。以上4个方向都可以说是纯技术,但决定游戏做成啥样的还得是做gameplay的(其实是策划,gameplay只是负责伺候策划的)。这很杂,水很深。市面上主要是3c和战斗系统比较缺人。吃经验,吃在某一游戏类型上的钻研程度。网络同步也是gameplay在做当然还有做工具的,做打包构建的,做ui的等,不一一列举,但你确定你入行就是为了做这个吗关于方向的选择,我的答案是新人没有选择,全都要学,不求学得多深,只求学个皮毛,看看这个领域主要在干嘛,以及自己适不适合。全入门之后再决定自己要研究什么也不迟不过目前市场上比较缺乏的,主要是做网络的,做战斗的,做动画的,做3c的,做性能的(刚入行搞不了这个),可见都集中在gameplay方向。这是因为其他方向引擎已经把工具做的很好了,项目组只要做gameplay的把这些工具拿来拼一拼就能拼出个游戏了再说说语言,目前手游界主要是cpp/cs+lua的组合。lua总归是要学的,这语言挺简单的,语法学完再看看虚拟机原理,关键源码(lua虚拟机是用c写的,而且开源)读一读,基本都能熟练掌握。网上学习资料也有很多关于项目,其实只要不是ui点点点,走路模拟器,跑跑跳跳吃金币这种,都行。关键要有技术闪光点。打个比方,都是跑跑跳跳吃金币,有的人只会给金币加个碰撞体,做个输入绑定,播个动画就完事,这种属于培训班2天速成的。有的人能做循环地图,随机路径金币生成,角色动画没有滑步跳变,位移方式和角色姿态多样,这种就是有技术闪光点的关于面试,面试看的所谓技术,是你对引擎工具的了解程度,毕竟刚入行的做游戏就是拿工具拼好游嘛。但是能拼好游的多了去了,培训班速成的一大堆,so只能看你知不知道工具上各个螺丝钉是干啥的,或者看你能不能把工具抡得虎虎生风举个栗子:面试官问你怎么做枪械开火的命中检测。你说我不知道,下个公司见。你说射线检测,或者给子弹加个碰撞体,下等马。你说考虑到对远距离目标的弹道下坠问题,需要分段射线检测,中等马。你说对低速子弹,比如手雷,箭矢,给子弹加碰撞体,同时考虑到隧穿问题,风速问题等,上里马。你说我还知道射线/碰撞检测的原理,我还知道如何处理网络延迟,千里马。最后聊聊服务器,ue项目的服务器主要是在做非战斗的,系统侧的业务。比如什么改改勋章啊,发发成就啊,送送奖励啊这种。战斗的部分是由客户端做的(因为ds和客户端代码是一体的)。有项目(这种一般是陈年老项目,或是有大佬为了晋级想重复造轮子)不用ds的,会让服务器参与到战斗里去,这种比较少。unity项目的服务器在干什么我不懂。原本是想写点毕业一年的总结,结果临时起意突发奇想地想给没入行的朋友们写点感受。行文不成体系,多有碎碎念。错字先发后改。看到这里的同学,如果能帮到你就最好啦
程序员小白条:[赞干货,就是文章可以搞些排版和格式[赞]
点赞 评论 收藏
分享
总结:拷打问的我最不会的一集,其实是几周前了,不过因为在复习期末没整理出来0.自我介绍+介绍项目1.Unity 组件模式源码实现原理2.你刚刚说是反射?把这个过程讲给我听听3.什么叫反射?反射底层原理,你刚刚说会拷贝元数据,这个过程说一下,怎么拷贝的,拷贝的都是什么数据4.Unity生命周期和哪些只调用一次哪些会多次调用?(没什么好说的,八股文)5.Destory()会立即销毁吗?为什么要这样设计?(回答的是为了防止立即销毁一些依赖这个物体的对象访问造成空指针,可惜问到这的时候我就已经低声下气了,脑子空空也不知道对不对)6.xlua与lua区别?xlua热更底层原理,换成其他解释性语言可以吗?lua怎么调用c#的对象的(回答的使用虚拟机luaJit交互,但是细节我确实不知道,虽然知道lua这块可能问道这个,但是一直不想接触lua,被挨打了)7.计算子物体相对于世界的transform(我说子物体通过相对父物体的localTransform和父物体相对世界的transform计算,但是不懂他为什么不满意,然后也是干脆说不会,后面查AI是要做两者矩阵乘法)反问:1.有什么建议,我也知道我回答的不好(缺少实践,如果你真的做过lua热更(我确实没做过,我真的不喜欢lua,框架还要自己写,调用只会返回nil不会报错,语法不严谨)就会了解这些问题,把自己的游戏上架到steam给别人玩,做10个游戏吧而不是背一些机械的回答(我记得我看过的《游戏设计艺术》貌似有10个游戏的原话)总结:我确实对引擎的底层了解的少,动画,音乐,Timeline,物理系统底层原理,最近在补,看games104先知道有什么,再按照自己技术栈补充更细的东西
查看9道真题和解析
点赞 评论 收藏
分享
评论
35
137
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务