必凡娱乐面试
一面
1.7层网络模型
从上到下分层依此为:应用层,会话层,表示层,传输层,网络层,数据链路层,物理层。
TCP/IP四层协议:应用层,传输层,数据链路层,物理层
常见教学的五层模型:应用层,传输层,网络层,数据链路层,物理层
2.每层的常见协议
应用层:HTTP、HTTPS、SMTP、FTP
传输层:TCP、UDP
网络层:IP、ICMP
数据链路层:以太网协议(Ethernet)
3.TCP协议的建立连接和断开连接
三次握手
- 客户端发送 SYN(请求建立连接)
- 服务端回复 SYN + ACK(同意连接)
- 客户端发送 ACK(确认)
四次挥手:
- 客户端发送 FIN(我要断开)
- 服务端回复 ACK
- 服务端发送 FIN
- 客户端回复 ACK
👉 连接彻底关闭
4.TCP和UDP的主要区别有那些
TCP 面向连接,UDP 无连接
TCP 可靠,UDP 不保证可靠
TCP 有序,UDP 无序
TCP 速度慢但稳定,UDP 快但可能丢包
5.TCP里面有哪些机制来保证他的连接是可靠的
TCP 通过以下机制保证可靠性:
- 校验和:检测数据是否损坏
- 序列号 + ACK:保证数据有序且不丢失
- 重传机制:丢包后重新发送
- 滑动窗口:实现流量控制
- 拥塞控制:避免网络拥堵
6.序列号主要是用来做什么机制的
序列号主要用于:
- 保证数据有序到达
- 去重(防止重复数据)
- 作为确认机制的基础(ACK)
- 配合滑动窗口实现流量控制
7.进程和线程的区别
- 进程是资源分配的最小单位
- 线程是 CPU 调度的最小单位
线程共享进程资源,而进程之间相互独立。
8.进程之间是如何进行通信的
常见的进程通信方式有:
- 管道
- 消息队列
- 共享内存
- 信号量
- 信号
- Socket
9.讲一下虚拟内存
核心本质:它是操作系统的内存管理机制,把磁盘的一部分空间虚拟成内存用,让程序觉得自己有超大的可用内存,不用管物理内存实际大小。
作用:能够让多个程序同时运行。能运行比物理内存还大的程序;还能进行内存隔离
虚拟内存是操作系统提供的一种内存管理机制,把磁盘空间映射为内存使用。
- 让程序感觉有更大的内存
- 支持多进程运行
- 实现内存隔离
- 支持分页和换页机制
10.二叉树的遍历方式
前序,中序,后序,层级遍历
11.C#和lua这种编程语言的最大区别在哪
C# 是强类型编译型语言,Lua 是动态解释型语言
C# 运行在 .NET/Mono 上,Lua 通常嵌入使用
Lua 更轻量,适合热更新
12.常见的设计模式
1.单例,观察者,工厂模式,状态机,享元模式
13.实习期间遇到过什么问题?怎么去解决的
我遇到过卡牌频繁创建导致 GC 抖动的问题。
解决方式是:
- 使用对象池管理卡牌对象
- 减少频繁 Instantiate/Destroy
明显降低了 GC 开销,提升了运行稳定性。
14.C#GC
15.平衡二叉树
平衡二叉树指左右子树高度差不超过 1 的二叉树,常见的是 AVL 树。
16.红黑树?红黑树是如何保证每个节点到叶子节点的黑色数量是相同的。
红黑树是一种自平衡二叉搜索树,通过以下规则保持平衡:
- 根节点是黑色
- 红节点不能连续
- 每条路径黑节点数相同
👉 为什么能保证平衡:
通过“黑高一致”保证最长路径不会超过最短路径的两倍。
17.二叉树的常用场景
搜索(BST)
数据排序
表达式解析
游戏 AI 决策树
18.什么是协程
协程是一种轻量级的异步执行方式,可以在函数执行过程中“暂停和恢复”。
- 不是线程
- 不会并发执行
- 由主线程调度
Hr面

1.为什么觉得自己根这个岗位匹配度较高
第一是技术栈匹配。我主要做的是 Unity 客户端开发,熟悉 C#,了解协程、事件、接口等核心机制,同时也掌握对象池、单例、事件管理、资源加载等常见游戏
开发框架,这些都是岗位需要的基础能力。
第二是有实际项目和实习经验。我做过 2D RPG 和休闲游戏项目,也在公司参与过纸牌游戏的版本迭代开发,接触过真实的商业项目流程。
第三是学习能力和主动性。我平时会结合 AI 工具提升开发效率,也会主动去总结和优化代码结构,所以我适应新环境和新需求的能力比较强。
2.实习经历
我在火金网络科技有限公司做过 Unity 客户端开发实习,大概 3 个月时间,主要参与的是一款移动端纸牌接龙游戏的版本迭代开发。
主要工作包括功能开发、问题修复以及性能优化,同时也参与了一些 UI 交互优化和资源加载流程的调整。
3.实习人员分配(团队人员架构,包括策划,美术等)
我负责的客户端的人员大概3人,服务端人数在2人左右,策划2人,美术/UI大概4人,测试2人/
客户端是一个主程,2个开发
4.实习的工作内容
我主要负责以下几块内容:
- 参与游戏版本迭代开发,比如优化 UI 交互逻辑和界面体验
- 协助实现卡牌相关逻辑,比如洗牌和发牌规则校验
- 做了一些性能优化,比如优化卡牌对象管理,减少 GC 开销
- 参与资源加载流程优化,提升场景切换流畅度
5.为什么客户端的工作这么少,或者是前端的这个需求的话,是谁来承接的
像我们这个项目是一个比较成熟的产品,核心框架已经搭建好了,所以我实习阶段更多参与的是:
- 功能迭代
- Bug 修复
- 性能优化
而不是从 0 到 1 的开发。
6.介绍一下具体的工作流程,比如从最开始的需求到最后完成的闭环全流程
- 需求阶段
策划输出需求文档(功能说明、规则等) - 评审阶段
客户端、服务端一起评估实现方案和工作量 - 开发阶段
- 客户端实现功能逻辑和表现
- 美术提供资源
- 服务端提供接口(如果有)
- 联调阶段
各模块对接,确保功能正常 - 测试阶段
测试人员提 Bug,开发进行修复 - 上线阶段
版本发布
7.分享一下在3个月实习期内,觉得自己做的比较好的成绩或者是亮眼的地方
8.整个公司大概有多少人呢
公司整体规模我没有特别精确的数据,但我所在的项目组规模大概在十几人左右,是一个中小型团队,沟通效率比较高。
9.评价一下整个公司和团队
整体体验还是比较好的:
- 团队氛围比较轻松,沟通成本低
- 开发流程比较规范,有明确的版本迭代节奏
- 对新人也比较友好,会有一定的指导
同时因为团队规模不大,我也有机会接触到比较完整的开发流程,对成长帮助挺大的。
