腾讯-天美-后台开发-一面面经

哥们就做了一个月的游戏还是从零学,天美爷拷打我游戏?汗流浃背局…… 投的后台开发,但实习是游戏公司经历,所以被逮着问游戏,服啦。

  • 熟悉 Go/C++ 吗?——不熟,跳过
  • 对 Lua 的熟悉程度——公司自研引擎用 Lua 所以基础会用,底层不了解(元表元空间学过但没准备就不挖坑了)
    • 有了解自研引擎 Lua 怎么和 C/C++交互吗?——不了解,跳过
  • 讲讲实习做了什么——Lua 写帧同步游戏 + Unity 写业务
  • 帧同步怎么实现的——不是我实现的,有现成框架直接写业务逻辑
  • 使用了 UDP 帧同步,那怎么实现的可靠 UDP?——冗余包+类似 TCP 的序列号
    • 这两个就可以实现?那服务器给你下发推帧的时候,比如说帧序号 1 3 5 到了,那这个时候客户端是怎么去做?把这个包收齐,然后并做对应的逻辑帧的处理呢?怎么知道这一帧有多少个包?怎么确认包收齐?——不知道,后面舍友说可以发完包的末尾加一个结束符意思的标识来判断这一帧发了多少包;指令数量;指令长度;指令分隔符
  • 假如服务器断网丢包,很长时间没有发包,这个时候渲染帧是如何预表现的?

怎么判断逻辑帧有多少包,确认包收齐

断网条件下怎么做画面表现

帧同步的业务逻辑,哪些作为命令同步,哪些作为本地表现

攻击扣血这些需要同步吗

不同架构怎么保证本地计算结果一致

浮点数转定点数的运算

逻辑帧和渲染帧的分离

哪些 action 上报

怎么防止作弊

对象池的使用和原理

黑马点评项目:

点赞处理

判断秒杀资格,即一人一单,以及 Redis 库存充足情况下,消息队列处理下单处理数据库

240919 没整理完,活动要截止了先发问题,后续补充~

牛油们觉得有用的话,收藏同时顺便点点赞呗~还可以订阅一下专栏有帮到的话送个花花催更谢谢

#软件开发笔面经#
Kiro面经 文章被收录于专栏

Java后端,自己的面经整理总结

全部评论
受用
1 回复 分享
发布于 2024-12-06 23:34 上海
没有算法环节吗
点赞 回复 分享
发布于 2024-12-13 19:14 四川
佬,可以问问你怎么学用lua写的游戏项目吗?有什么推荐的课啊
点赞 回复 分享
发布于 2024-12-08 19:10 福建

相关推荐

05-24 12:03
湖南大学 Java
1、项目什么时候会触发失败,人为介入;2、sql如何分页展示    在sql中,可以使用limit和offset子句或者row_number()窗口参数来实现分页展示数据; limit number_of_rows表示每页展示的行数,offset offset_value表示跳过前面的行数。例如,对于第一页,offset是0,以此类推;3、http包含了哪些内容    请求方式(get、post、delete、put)、状态码(1XX表示请求已被服务器接收,继续处理、2XX表示请求已成功被服务器接收、理解、并接受、3XX表示需要客户端采取进一步的操作才能完成请求、4XX表示客户端请求有语法错误或无法完成请求、5XX表示服务器在处理请求的过程中发生了错误)4、TCP的状态    三次握手、四次挥手5、如果在建立连接的时候,ack后,开始发送数据,但是ack数据包丢失,这个情况下服务器如何处理这个数据包    首先关于服务器状态的改变,在正常情况下,服务器收到客户端的ACK报文之后,连接就进入了ESTABLISHED(已建立)状态,但是ACK数据包丢失,服务器在发送SYN-ACK报文之后,会等待客户端ACK的确认,此时服务器的状态会一直保持在SYN-RCVD(同步已接受)状态。    服务器的重传机制,在一定时间内,没有收到客户端的ACK报文,服务器会重新发送SYN-ACK报文。    在等待ACK的过程中,服务器会为这个半连接分配一定资源。6、操作系统的进程调度方式,win使用哪些进程调度方式,linux是使用哪些进程调度方式操作系统的进程调度方式主要有以下几种:先来先服务调度算法(FCFS)原理 :按照进程进入就绪队列的先后顺序进行调度,先到达的进程先得到处理。特点 :简单易懂,但可能导致后到达的短进程等待过长。短进程优先调度算法(SJF)原理 :优先调度估计运行时间短的进程。特点 :能有效减少进程的平均等待时间,但难以准确预估进程的运行时间。时间片轮转调度算法(RR)原理 :将 CPU 时间划分为一个个时间片,按就绪队列顺序分配时间片给进程运行,若时间片用完而进程未完成,则进入队列等待下一轮调度。特点 :适合多用户分时系统,保证了每个进程都能获得一定的 CPU 时间,但时间片大小的选择较关键。优先级调度算法原理 :为每个进程设置优先级,优先级高的进程先调度,优先级相同则按先来先服务调度。特点 :灵活但易导致低优先级进程饥饿。多级反馈队列调度算法原理 :设置多个就绪队列,每个队列对应一个优先级和时间片大小,进程根据运行时间和抢占情况在不同队列间移动,优先级高的队列中的进程先调度,同一队列中的进程采用时间片轮转调度。特点 :兼顾多个方面,是较复杂的调度算法,能有效处理各种类型的进程。Windows 的进程调度方式:多优先级反馈调度算法 :Windows 将进程分为多个优先级,优先级高的进程优先调度。系统会根据进程的行为动态调整优先级,如交互式进程的优先级会提高,CPU 密集型进程的优先级会降低。实时进程调度 :对于实时进程,Windows 使用先来先服务和轮转算法,确保实时任务及时得到处理。Linux 的进程调度方式:完全公平调度器(CFS) :基于红黑树数据结构管理进程,通过计算进程的虚拟运行时间来确定调度顺序,优先调度虚拟运行时间少的进程,兼顾进程的公平性和吞吐量。实时进程调度 :包括先来先服务(SCHED_FIFO)和轮转(SCHED_RR)两种策略,确保实时进程及时得到 CPU 资源。过时的 O(1)调度算法 :早期 Linux 使用,基于就绪队列和过期队列,优先调度优先级高的进程。pv操作PV 操作是操作系统中进程同步与互斥的一种重要机制,主要用于处理进程之间的资源竞争和同步问题。PV 操作通过信号量(semaphore)来实现,它包含两种操作:P 操作和 V 操作。PV 操作的定义P 操作(wait 操作) :用于测试信号量的值。若信号量的值大于等于 1,则信号量减 1,进程继续执行;若信号量的值小于 0,则进程进入等待队列等待。P 操作的格式如下:V 操作(signal 操作) :用于将信号量的值加 1。若信号量的值大于等于 0,则直接加 1;若信号量的值小于 0,表示有进程在等待该信号量,此时唤醒一个等待的进程,并将信号量的值加 1。V 操作的格式如下:
查看7道真题和解析
点赞 评论 收藏
分享
评论
9
40
分享

创作者周榜

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