文章目录
嗨,大家好,我是新发。
我最近在看工作机会,投了阿里,游戏客户端开发岗,收到面试通知,总共三轮面试。
从约一面到最终得知结果,时间跨度23天,平常心,做一次总结,希望可以给大家一些参考。
本文背景音乐:
朴树《平凡之路》
2021年11月23日早,我在某直聘上看到阿里游戏客户端开发的招聘信息,看了下职位要求,
[职位要求]
1 本科以上学历,两年以上工作经验
2 能独立承担复杂系统开发,熟练把各种设计模式和算法运用到工作中,掌握一两门脚本语言(lua / python)的使用
3 具备一定的图形学基本知识,有U3D等常见游戏引擎的使用经验
4 有游戏性能优化经验和游戏框架搭建经验的优先考虑
5 热爱游戏,沟通能力强,抗压能力好,有团队合作精神,保持技术好奇心
挺符合自身条件的,于是投了简历,以下是我的简历格式(简约为主)

HR收到简历后打电话过来问了一些基本情况,电话中聊了项目内容、游戏经历、薪酬等,沟通过程比较轻松,初步感觉可以。
接着就是把简历递交给业务做评估,当天下午三点半左右收到了答复,通过了业务评估,
HR约了一面面试时间,发了正式邮件,面试方式是视频面试,要先安装阿里会议。
注:建议提前测试一下电脑摄像头和麦克风,特别是麦克风要确保拾音功能稳定,不然声音忽大忽小对面试过程体验不好。
面试时间:2021年11月29日 19:30
持续时间:75分钟
面试方式:视频面试
一面的面试官是客户端主程,长得跟我以前的同事有点像,沟通上也挺舒适,平易近人。
以下是面试中的部分提问(凭记忆回想)。
1、水面波浪起伏的效果是如何实现的?波光粼粼的效果又是如何实现的?
2、静态合批与动态合批的原理是什么?有什么限制条件?为什么?对CPU和GPU产生的影响分别是什么?
3、一个正方体多少个顶点和三角形,为什么?如何合并顶点?
4、什么是DrawCall,如何减少DrawCall?
5、资源生命周期如何管理?如何加载与释放资源?资源打包颗粒是怎么设计的?资源压缩格式是什么?
6、一个相机中如何做分层渲染?底层原理是什么?
7、渲染管线的流程,后处理泛光效果如何实现?
8、项目中热更新流程是怎样的?热更包颗粒如何设计?资源如何加密?协议如何加密?
9、如何实现物体被墙遮蔽后显示轮廓的效果?shader的pass是什么东西?
10、TCP连接的流程是怎样的?
11、项目中的打包工具做了什么事情?如何做自动化打包?
12、lua的闭包是什么?闭包产生的内存泄露如何解决?
13、A*寻路算法的原理是什么?还知道其他寻路算法吗?
14、求一个大型排行榜的Top100用什么算法,过程是怎么样的?
15、lua的table的底层实现原理是什么?为什么这么设计?
16、如果让你自己实现C#字典,你如何设计?
17、3D转2D碰撞检测的实现过程,使用什么算法进行检测?
18、讲讲你对URP的了解。
19、讲讲你对ECS的了解。
20、lua与C#或C语言相互调用的底层实现原理是什么?
21、代码安全具体做了什么内容?
22、性能优化做了什么内容?
1、原公司上下班时间是几点到几点?
2、加班情况怎么样?
3、为什么离开上一家公司?
整个面试环节节奏很好,基本都能答出来,面试结束后基本心里就有底了。
第二天收到面试通过的通知,发了二面的通知邮件,与一面隔一天。
面试时间:2021年12月1日 19:00
持续时间:40分钟
面试方式:视频面试
二面也是技术面,同样是视频面试,面试官也是主程,全程笑盈盈的,很放松,以下是部分面试提问(凭记忆回想)。
1、讲一下你在项目中的工作内容。
2、项目中遇到的最大的挑战是什么?
3、LineRenderer的底层实现原理是什么?
4、讲一下二维碰撞检测的算法实现,四叉树。
5、热更新的流程,如何做版本管理,如何校验热更包,如何确保下载过程,热更包的颗粒策略。
6、讲一下UGUI与NGUI有哪些不同的地方。
7、讲一下你搭建的游戏框架的内容。
8、对自研引擎的看法。
1、为何在上一家公司呆这么久?这次离职的原因是什么?
2、加班情况怎么样?这边的项目开发紧张,能否适应工作强度?
3、你的职业规划是什么?
二面提的问题比一面少一些,感觉很有把握。
第二天收到了面试通过的邮件通知,约了三面的时间,与二面间隔三天多,最后一面是HRG面。
面试时间:2021年12月6日 18:00
持续时间:40分钟
面试方式:视频面试
三面是HRG面,与发邮件安排面试的HR不是同一人。
面试官一打开摄像头我就感受到了气场,跟前面两面技术面气氛完全不同,开场惯例自我介绍,然后开始提问(凭记忆回想)。
1、说一下你的游戏经历,平时都玩什么游戏?
2、讲一下你在项目中的工作内容。
3、项目的技术难点是什么?为何项目时间跨度这么长?
4、为何在一家公司呆这么久?中间有过离职的想法吗?
5、你这么多年U3D的工作经验,我们用的是自研引擎,为何投递这个岗位?
6、你的职业规划是什么?
7、我们用的是自研引擎,做的是重度游戏,你这块缺乏经验,工作强度大,你能做好吗?
8、目前有其他公司或团队在跟你谈吗?
9、聊一下薪酬,低于期望薪酬是不是不来了?
面完我其实就有预感了。
今天是2021年12月16日,时隔10天,终于等到了结果。

技术面多问的是底层原理,这块务必打好基础,认真复习准备,问题不大。
HR面其实问的问题都不是什么难回答的问题,注意回答的时候要言简意赅,不要慌。
平时要多锻炼表达能力,写文字是不够的,要用嘴巴去讲出来,条理清晰,有应变能力,要说到点上,不要让对方感觉没听明白,甚至产生相反的结论。
另外要不卑不亢,如果你天生自带气场最好。
好了,就先写这么多吧,这次就当做一次小小的经历,也是自我认识的一个过程,继续加油。
别急着离开,听完开头的曲子~
作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐
基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于
修改(澄清问题)我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息;但是,我遇到了一堵又一堵砖墙。据我所知,主要问题如下。我可以使用Chrome的检查元素工具手动查找我需要的html-它似乎位于iframe中。但是,当我尝试抓取该iframe时,它是空的(属性除外):如果我使用浏览器的“查看页面源代码”工具,这与我看到的输出相同。我不明白为什么我看不到iframe中的数据。答案不是它是由AJAX之后添加的。(我知道这既是因为“查看页面源代码”可以读取Ajax添加的数据,也是因为我有b/c我一直等到我可以看到数据页面之后才抓取它,但它仍然不存在)。发生这种情况是因为
我正在学习Ruby,遇到了inject。我正处于理解它的风口浪尖,但当我是那种需要真实世界的例子来学习一些东西的人时。我遇到的最常见的例子是人们使用inject来添加一个(1..10)范围的总和,我不太关心这个。这是一个任意的例子。在实际程序中我会用它做什么?我正在学习,所以我可以继续使用Rails,但我不必有一个以Web为中心的示例。我只需要一些我可以全神贯注的目标。谢谢大家。 最佳答案 inject有时可以通过它的“其他”名称reduce更好地理解。它是一个对Enumerable进行操作(迭代一次)并返回单个值的函数。它有许多有
我想在Ruby的TCPServer中获取客户端的IP地址。以及(如果可能的话)MAC地址。例如,Ruby中的时间服务器,请参阅评论。tcpserver=TCPServer.new("",80)iftcpserverputs"Listening"loopdosocket=tcpserver.acceptifsocketThread.newdoputs"Connectedfrom"+#HERE!HowcanigettheIPAddressfromtheclient?socket.write(Time.now.to_s)socket.closeendendendend非常感谢!
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion是否有适用于这些的3d游戏引擎?
我正在尝试使用RubyEventMachine访问使用SSL证书身份验证的HTTPSWeb服务,但我没有让它工作。我编写了以下简单代码块来对其进行端到端测试:require'rubygems'require'em-http'EventMachine.rundourl='https://foobar.com/'ssl_opts={:private_key_file=>'/tmp/private.key',:cert_chain_file=>'/tmp/ca.pem',:verify_peer=>false}http=EventMachine::HttpRequest.new(url).g
我正在为需要与API建立SSL连接的客户端开发应用程序。我得到了三个文件;一个信任根证书(.cer)文件、一个中间证书(.cer)文件和一个签名的响应文件。我得到的安装说明与IIS或Javakeytool程序有关;我正在用RubyonRails构建应用程序,所以这两种方法都不是一个选项(据我所知)。证书由运行API服务的组织自签名,看来我获得了客户端证书以相互验证https连接。我不确定如何使用我的应用程序中的证书连接和使用API签名响应文件的作用我读过"Usingaself-signedcertificate"和thisarticleonOpenSSLinRuby但两者似乎都不是很到
我正在努力在Ruby中创建启用SSL的服务器,以及与服务器一起使用的相应Ruby客户端。为了进行测试,我使用以下命令创建了自己的根CA证书。$:~/devel/ssl-test/ssl/CA$opensslgenrsa-outTestCA.key2048GeneratingRSAprivatekey,2048bitlongmodulus............+++...........................+++eis65537(0x10001)$:~/devel/ssl-test/ssl/CA$opensslreq-new-keyTestCA.key-outTestCA.
所以我看到unity支持c#、JS和Boo。我可以学习其中一个,但我想制作一个“编译器”或类似的东西,让我可以编写ruby代码并输出JS代码或制作一个可以被Unity编译器读取的层。这有可能吗?我愿意在这方面投入很多时间并且有相当多的经验。 最佳答案 如果您的问题实际上是“我如何将Ruby编译为JavaScript”,那么这更容易回答:Opal:RubytoJavaScriptcompiler但是,学习其中一种受支持的语言会更好。当运行的是用另一种语言解释的代码时,很难调试“您的”代码。