181. Unity 连接数据库
需要得到 Mono.Data.Sqlite.dll 文件与 System.Data.dll 文件
182. 如何与服务器交互
做游戏,基本上都避免不了与服务器端交互,与服务器端交互的方式也有几种,总结起来就是长连接模式(Socket)与短链接模式(Http)。
183. 如何处理网络异常下的可玩性
1)为游戏增加单机模式:比如故事模块,网络异常时可以阅读游戏的故事;丰富的技能或卡牌,网络异常时可以了解技能和卡牌;提供单机玩法,玩家可以与 AI 进行游戏等。
2)为游戏提供教程模块,网络异常时可以学习游戏技巧。
184. 怎样反外挂? 对外挂的看法
游戏外挂的原理:外挂分为多种,比如模拟键盘的,鼠标的;修改数据包的;修改本地内存的。
1)对于模拟用户的鼠标键盘输入的外挂,我们可以用网页上常用的验证码的方式来对付。模拟键盘鼠
标的外挂对游戏的影响比加速、修改封包、修改内存、脱机等要小得多,因此被一些人称为绿色外挂。2)让服务器不把在正常情况下玩家看不到的东西的数据传送给客户端。
3)把玩家操作记录发到服务器进行模拟,如果和客户端的计算结果偏差较大可以认为作弊。
185. 你对跨平台的了解。
跨平台就是在一个熟悉的平台上面开发的软件或者程序,直接可以在其他平台上正常的运行显示而不 需要对其原始文件或者原始代码进行修改。
186. 谈谈你们公司的网络编程
在我们公司基本是由服务端人员开发的,我这边只调用他们提供的客户端 SDK 和服务器端通信。服务 器端是公司用 C++自行研发的。
187. 会做数据库吗?有嵌套的数据库能做么?
会。用过关系型数据库 mysql。能做,只是这方面之前在公司没怎么负责这块,有些生疏,稍微熟悉一下就能做。(社区提供持续更新版本)
188. 了解代码管理么?在开发中使用什么代码管理工具?使用的接口多一点还是继承多一点?
了解。使用 SVN 进行代码管理。接口多一点。
189. 公司内部信息传递用的什么安全协议?
1、公司自定义的安全协议 或者 基于 SSL/TLS 协议 或者 SSH 协议
2、我们至少调用基于相关协议的 SDK
3、SSL/TLS 协议
SSL/TLS 协议(RFC2246 RFC4346)处于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。从协议内部的功能层面上来看,SSL/TLS 协议可分为两层:
- SSL/TLS 记录协议(SSL/TLS Record Protocol),它建立在可靠的传输层协议(如 TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能。2. SSL/TLS 握手协议(SSL/TLS Handshake Protocol),它建立SSL/TLS 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等初始化协商功能。SSH 是英文 Secure Shell 的简写形式。通过使用 SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止 DNS 欺骗和 IP 欺骗。使用 SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH 有很多功能,它既可以代替 Telnet,又可以为 FTP、Pop、甚至为 PPP 提供一个安全的”通道”。
190. 原公司服务器怎么实现多人在线?
使用 socket 基于 TCP 协议开发的多人在线。公司有自行开发的服务端程序
191. 项目问题,和美工想法冲突了怎么办?
找项目主管协调处理
192. 对 unity 的理解
可以做 VR、手游、工艺仿真、端游、页游跨平台的游戏引擎
193. 面试题:VR 相关问题用了哪些设备?接入了哪些 SDK?根据项目问如
何实现手势控制?
htc vive 和 oculus, htc vive 用到的是 steam vr 免费插件,Oculus 早期有 SDK,现在 Unity 原生支持
194. 开过什么平台?多线程的理解
PC、Android。
多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。使用线程可以把占据时间长的程序中的任务放到后台去处理用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度,程序的运行速度可能加快,在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下可以释放一些珍贵的资源如内存占用等等。
195. 怎样实现植物的弯曲
1、max 做骨骼动画2、修改 Tree 组件的 Growth Angle 的值
196. 用过什么游戏框架?
SimpleFramework,基于 ulua 的框架,支持 ugui 和 ngui 的热更新
197. 模型导入 Unity 后怎么与数据库产生联系?类似打通程序和数据库通 道
例如 mysql 数据库,需要导入两个文件,就可以通过 sql 语句往数据库写数据,数据可以是模型信息
198. 用过什么传输协议,用什么语言
http,tcp(socket) 都是 C# 语言编写
199. 都在什么平台上开发过游戏或软件用的什么框架
Android
200. 会写框架么
设计模式了解一些,但是没写过框架
201. 请简述在客户端开发方面 你最擅长的模块系统,以及你觉得哪些模块 会出现的问题
擅长 UI 模块的制作,我认为热更新模块会出现问题,比如资源依赖不合理,导致资源包过大
202. 如何实现背包系统、宠物系统、装备系统的实时更新?
NGUI 做界面,使用 ulua 做热更新。之前公司使用的是 SimpleFramework 这样的框架。
203. 热更新的解决方案(资源以及代码)
ulua 框架、simpleFramework 框架 、bundle manager 插件