游戏面试历:压力面试与技术挑战.pdfVIP

  • 0
  • 0
  • 约2.77千字
  • 约 4页
  • 2026-01-27 发布于北京
  • 举报

第三个面试官,跟前两个不一样,属于面,一直在问问题从来不给提示或者

反馈。

先自我介绍,讲实项目

HR对项目提了一些问题,不知为什么他特别纠结于回包是怎么回的,我直到面

试快结束的时候才知道他是想了解这个协议的包结构怎么确定,当时是通

过一种DSL的方式在client和server两边各生成结构体进行解析。然后注意到了

我的某个win32项目用了postgreSQL,就让我当场写一个表达JOIN的SQL查询

语句,N久没写过SQL语句,实习以来接触的完全是cache,都是NoSQL的,这

直接无力了。

面试官直接开始后面的提问。让我写一个包结构体,包的head和body都要包括

进去,我就写了一个带union的struct,然后他问到怎么样根据body的类型算出

后面多少字节的,我这时也算是明白过来直接纠结于回包问题,就多附

加的讲了下,说client和server两边生成的meta文件这些关系。

后来开始问c++问题,问了下面代码的输出:

classA

{

public:intm;

voidprint()

{

coutAendl;

}

};

A*pa=0;pa-print();

这点很明显是c++的一些底层实现原理,可以理解为这样的C代码:

voidprint(A*this)

{

coutAendl;

}

A*pa=0;

print_A(pa);

这样显然是不会发生段错误的,所以我就说了下c++的mangle以及以上提及的

几个编译器转换。

然后又在这题的基础上改动了几下问了一些关于虚表的问题,比较基础。构造函

数调虚函数的问题,也很基础,从语义上和语法上分别阐述就可以了。后来让我

写一个头文件,内容包括对一个数组的定义,同时保证该头文件能被无限多次

include,程序不会出现问题。这涉及到过程的强弱符号问题。一个对

数组的具体定义是一个强符号,而一个符号只能有一个强符号,可以有多个弱符

号。

这样的话,只要在头文件中让数组的定义只出现一次,而其他情况只要extern即可,

具体的就不写了,利用#ifndef来保证只有第一次#include的时候才会定义强符号,

其他情况弱符号就ok。这样一面就结束了。

二面

三对一。目测应该分别是一个手游组的主程,一个端游组的主程,一个主管或总

监级别人物。

首先还是自我介绍,讲实习,讲项目,讲pomelo。

问了实习的一些问题,问了对pomelo的一些看法,我直说pomelo是前几天才

看,之前完全不懂nodejs,感觉对nodejs感触很大,模型,以及一些语法糖

对程序员非常友好等等,并表示了pomelo的我重点关注的几个模块都采用的是

最基础的算法做的实现blabla。然后问了对云风的blog怎么看待,包括对c的看

法和c++的看法,猜测一下应该是看我上写经常看大牛blog有没有产生一些

自己的思考有没有盲从之类的。而且很明显,云风对c++一直持消极态度,非常

偏向于c和lua,但是很明显,做游戏server的完全抛弃c++并不太现实,而且从

之前面试的情况看,网易游戏应该是c++为主的,所以这里我就表达了c++还是

很有优势的观点,表达了自己还是比较偏向于c++的观点。

端游主程的面试官问了几个问题,关于STL的iterator都有哪些,树的性质,

这时中间boss又接过来问树这种实现的意义何在,我就讲到是一种工程中

用来简化AVL的trade-off,blabla。然后之前的面试官就连珠的问了几个问题,

关于我上写的protobuf和zmq,问了各种底层实现,我也直说pb的底层代

码一直没看,但是了解到底层的编码协议库是pb高效的重要,并且说了句

pb有的光环加身所以显得牛一些。。zmq只是说自己简单用过一些,说

了请求响应模型和发布订阅模型并模拟了几种在mmo中可以应用的场景。

被问到zmq可能应用在哪些方面的时候,消息队列这玩意已经到嘴边了但是因

为没把握就是没说出来有点后悔,消息队列可以说是分布式系统中的一个最基础

的设施。又问了下对MMO的server如何理解,有哪些主要关注点,我就表达了

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档