当前位置: 首页 > 面试经验 >

天美游戏客户端开发一面面经

优质
小牛编辑
77浏览
2023-09-02

天美游戏客户端开发一面面经

上来做题(40min)

检查如下代码有什么错误

struct XX {
	std::list<std::string> names;
};

void func() {
	XX *xx = (XX *)malloc(sizeof(XX));
	if (xx != NULL) {
		xx->names.push_back("A");
		xx->names.push_back("B");
	  
		free(xx);
	}
}

答:一般不用malloc和free对结构体和类分配内存

问:错的确实在这里,再问的细一点,为什么这里不能用malloc和free

答:(脑子糊了)这个我可能不太能解释,应该是里面的names没有初始化

问:嗯,对于一个复杂的结构体或类如果用malloc直接分配内存可能会导致对里面的成员变量操作时出现未定义行为,包括如果里面有其他复杂类型的变量也会导致没有进行初始化。那再问的细一点,如果我一定要使用malloc和free的话这段代码应该怎么修改

答:再if里面,push_back之前加上xx->names = std::list<std::string>();

问:(笑),这种方法确实是可以的,暴力确实可以,那我再问细一点,如果这个结构内部数据很复杂有很多成员变量又该怎么修改。

答:(到这里我才明白到底要考察什么,乐)可以使用*xx = XX();将free换成xx->~XX();

问:嗯,对的,一般可以在这个地方直接调用构造函数和析构函数。。。

答:(稍微打断了一下)这里也可以使用placement new的方式,在一块已分配内存的区域使用构造函数。

问:对,你是在平常的项目中运用过placement new这中方式来管理内存和对象吗?

答:最近实习的项目里有需要重载new的部分操作所以去稍微了解了一下

问:OK,这里再拓展一下,这种方法还有你说的placement new在游戏开发中是比较常用到的,一般是维护一个对象池,因为游戏里对象的创建和销毁比较频繁,如果频繁的去开辟新的空间,消耗是承担不起的,所以会使用这种方法。

数组压缩

对于一个字符串数组,对其进行压缩。Leetcode443

https://leetcode.cn/problems/string-compression/description/

稍微有一点修改,这里需要返回的同样是一个数组,要求原地修改,最后数组的大小要大于等于原数组大小

["a", "a", "b", "b", "c", "c", "c"] -> ["a", "2", "b", "2", "c", "3"]

没做过的题,稍微思考了一会,用了双指针,左指针指向重复字符的第一个,右指针一直向后找不是重复的,中间需要维护一个cur_cnt,表示当前有多少个重复的,如果大于等于9那就需要分割;将左指针+1的位置修改为cur_cnt然后l=r,最后重新遍历一遍数组删除中间的重复元素

这里面试官提到可以不用把l指针跳到r的位置,l可以每一次只加一,最后用resize方法就可以了

接雨水

本来想用双指针写的,忽然间忘记怎么搞了,直接两次遍历秒了

聊项目(15min)

面试官问了一下项目中遇到了那些难点以及如何去解决的

学校的课设什么的基本上可以和同学商量或者网上找现成的资料,所以没有什么很难的地方,主要就讲了一下最近实习工作中遇到的问题

面试官中间问了一个之前hackthon搞得项目,那个项目用的kotlin纯现学的,但是有一点点印象,说着说着把当时的问题就都想起来了

聊天(15min)

面试官:我看你的简历上好像没有游戏客户端方面的经验,为什么想来呢

我:毕竟玩游戏比较多,每个玩家多少都有参与游戏制作环节的愿望吧(其实是听舍友在深圳那边实习待遇太好了)

面试官:(可能是怕我认为没有经验会扣分)这边呢主要考察的还是C++的基础知识,我看你C++的基础知识还是不错的,当然也有一部分加分项,就是对游戏引擎的使用

我:(追问)这边一般用什么引擎呢

面试官:现在大部分都转UE了,包括王者之前用Unity,本来也是想转到UE的,但是对于一个已经投入使用的大型系统如果改引擎,成本比较大。这也是我想说的一点建议,如果你想参与游戏行业,最好去研究一下UE,毕竟现在不光腾讯,很多游戏公司都会使用UE

我:天美工作室群的哪个项目组

面试官:成都L2,我看你意向城市是深圳

我:嗯,我这边没关系的,愿意调配

我:那具体负责什么项目呢

面试官:这边L1做的是王者,L2的话基本上就是王者旗下ip的衍生作品,比如大世界,我这边在做的是fps

我:平常的工作强度如何,比如几点下班

面试官:一般是早上9点,晚上89点的样子,这个一般看工作室和进度,我这边是从王者那边转过来的,感觉压力和强度不算太大,包括公司规定周四没有加班,周末的话一般某些特殊的时间点会加一下班

我:如果有后续的话还有几轮面试

面试官:应该还有两轮,不包括HR面,你这边对实习的地点和时间没什么问题吧

我:我投的不是秋招正式岗吗

面试官:这边好像入职都会有一段实习期,具体我不太清楚,不过应该是有一段实习期的

我:有后续的话什么时候会通知呢

面试官:最近初试比较多,最早也到下周了(周五晚上面的)

面试的整体体验不错,但是有种之前面试字节飞书技术中台的感觉,聊的都挺好的,没问什么八股文,题也做的还可以,但是最后挂了

今天早上起来从初试变复试了,等下周面试邀请

#我的实习求职记录#
 类似资料: