面经:2019网易游戏客户端实习生


面试时间2019.12.04,上午10:00,电话面试时长30min本文记录了自己的整个面试过程
请大家注意:面试过程中的个人回答,不一定正确,请大家上网自行查找详细正确解答

自我介绍

简单的介绍了一下自己的教育经历,询问我面试时间


计算机网络

1、讲TCP和UDP的协议的区别?

自己回答:

UDP在传输数据之前不需要先建立连接,是无连接,传输不可靠,传输速率快,所需资源少,一般用于即时通信,比如QQ语音,QQ视频

TCP提供面向连接的服务,是面向连接,开始连接3次握手,结束连接4次握手。TCP是可靠连接,因此传输效率慢,所需资源多。一般用于文件传输,比如邮箱,传输文件,远程登录

2、TCP的是如何实现可靠传输的?
自己回答:
在数据传递过程中,有重传,窗口,拥塞控制等机制实现。

3、如何实现一个UDP的可靠连接?
自己回答:
引入TCP的可靠传输机制到UDP中,如加入重传,窗口,拥塞控制等机制


算法

1、通过两个栈实现一个队列?
自己回答:
没回答出。。。。思考了几min后,跟面试官说,能否给点提示,面试官跳过了。

面完思考:
上网搜索,看到说一个做缓冲区,一个做数据存入区,大概明白了实现方法,面试时,有些紧张,没回答出,感觉这次面试会因为这道题跪了吧。。。这块不管思考还是回答给面试官印象不好

2、判断一个链表中是否有环?
自己回答:
在链表结点中加标志位,从头结点作遍历,如果遍历过程中,第一次出现设置为true,如果出现了环,则第二次访问到为true,则说明有环。
面试官说,可以实现,但方法有些复杂,还有更简单的方法,让我面试完后可以再看看。

3、讲解一下快排?
自己回答:
选取一个数,称为主元,以递增序列为例,主元的左边都小于它,右边都大于它,然后对主元分割的区域继续使用快排,直到分割区域只有一个元素。
平均复杂度O(nlogn),最坏复杂度O(n^2)
实现过程

1、选取一个主元
2、计算主元的位置(分割算法)
3、对主元分割的区域再次快排


操作系统

1、说一下进程和线程的概念?
自己回答:
进程是对运行时程序时的封装,是系统进行资源和分配的基本单位,实现了操作系统的并发
线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部并发
一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程
2、线程的调度算法?
自己回答:
自己想不起来了。
面完思考:
这个问的时候,感觉之前没怎么复习到这块,导致完全哑火了,突然没有任何印象了,这题也是回答的很差,面试完后,翻了书才想起,原来是先来先服务等等算法,这块后面要加强复习一下了。


C++

1、宏(#define)和内联函数(inline)的理解以及区别
自己回答:
内联函数,在程序运行过程中,会将内联函数的代码段插入到内联函数区域
重定义,对一个表达式用别名进行替换
面试官听完,没有说什么,开始问下一道题目,这道题目自己也答的不好,没有回答到该有的点上

1、C++智能指针用过吗?
自己回答:
平时没用过,了解过它们,分别是auto_ptr,shared_ptr,unique_ptr,weak_ptr,auto_ptr已在C++11新特性中去除,shared_ptr指向一段共享内存,智能指针是一种栈对象,其基本成员类型是指针。

这道题目自己也答的一般般吧,之前复习的时候看过,但是没有弄的很懂
,课后还是要多看了


C#

1、讲一讲C#委托?
自己回答:
对c#的委托的使用方法不是很了解,但在C++11特性中,具有委托构造函数,委托构造函数的作用是在某一构造函数执行时,委托其调用另一个构造函数,C#委托也是这样的机理,项目中加载场景进行了使用

Unity3d

1、UI如何制作的,动画如何制作的?
自己回答:
UI通过U3D的UGUI完成,利用到其中的Text,Image,sprite等组件。
动画通过Animation绘制而成


项目


五子棋项目

1、极小极大搜索算法
自己回答:
Minimax算法是基于搜索的博弈算法的基础。该算法是一种零总和算法,即一方要在可选的选项中选择将其优势最大化的选择,而另一方则选择令对手优势最小化的方法。

2、剪枝算法(Alpha-Beta)
自己回答:
举了一个例子给面试官,告诉它如何剪枝

3、获胜的贪心算法是如何实现的
自己回答:
首先存储了五子棋的基本的5种棋谱,然后对棋盘进行遍历,从第一格开始,判断每一个落子的分数,计算是否出现已存储的棋谱过程中,对已有的棋谱进行遍历,最后选择出落子分数最大的点


贪吃蛇项目

1、小蛇如何实现换肤功能和暂停功能
自己回答:
换肤,通过在预设的一个sprite数组中存储需要换肤的图片,在进行选择过程中,更改要取的sprite的下标
暂停功能,通过loadScene(1)来使游戏暂停,如何再次点击开始,将其置为0

2、小蛇如何加速功能
自己回答:
通过设置一个键,比如空格,上下左右是wasd,然后比如在按w的时候,按下空格,更改小蛇的移动速度

3、小蛇穿越边界的功能是如何实现的,会不会出现小蛇穿越边界过程中,有一个结点有一半在左,一半在右
自己回答:
布局是固定的,布局除于小蛇的每一个结点身子是可以除尽的,以布局中心为对称线,左右两边是对称的,如果发生穿越,则修改横坐标即可
由于布局和小蛇的结点设计,因此不会出现所说的情况


至此问题回答环节结束,之后再次询问我实习时间,我说实习到明年9月,现在就可以去

提问环节

1、游戏客户端开发在网易游戏的开发过程中扮演了什么样的角色,是主程吗?
面试官回答:
这要看你怎么定义主程了,我回答说我理解的主程是对于独立游戏开发来说的,是指担任游戏程序的开发工作。面试官说,在网易主程主要由项目主管担任,负责游戏的各个环节的任务分配,客户端,服务器,主程相当于是游戏项目的架构师
2、游戏客户端实习生在网易游戏的日常工作是怎样的?
面试官回答:
比如设计一个游戏中某个环节的玩法,比如做一个游戏的背包系统,开发一个可视化工具给策划…(后面的忘了)

3、评价一下我此次面试的不足之处?
面试官回答:
基础有些还不够扎实,游戏项目做的比较简单,后期自己多往这两个方面做功课


个人面试后总结

面试完后,自己写了面经,自己昨天下午4点收到通知,但自己没回答好面试时间,只说了自己可以尽快安排(有点给自己挖坑了),然后被安排到第二天的上午10:00了,晚上复习的时候还有些后悔,想跟HR说改到周五,但怕给面试官印象不好,因此就没有改,尽力了就行,不知道是凉还是过,不管怎样,面试官给的建议比较中肯,自己之后还是要多加强这些内容,准备其他的公司面试

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值