FreeEngine是一款开源的游戏服务端引擎,底层框架使用C++编写,核心概念少,易上手,学习成本低。整个架构基于模块机制,注重模块的可复用性,降低功能逻辑耦合。脚本、网络、数据库等支持都是通过模块提供。 该引擎并不是为某一种网游类型设计,它更注重单个服务器架构设计,通过不同的模块组合,引擎适用于所有网络游戏类型。
该引擎设计目标为:
简单、实用、易上手、方便、快捷、低耦合
通过对已有模块的重组,快速构建服务器框架和功能逻辑
提供丰富、稳定、高可复用的模块代码
特性:
跨平台,目前支持linux和windows系统
核心概念少,学习成本低,易上手
模块机制
所有其它特性可通过模块实现(网络、数据库、脚本支持等)
1.问游戏经历,玩过什么游戏 2.操作系统的虚拟内存和物理内存 3.问项目,如果把你的项目需要长时间维护,怎么去保证高吞吐和容灾 4.一条长链路的设计会有什么问题,怎么去解决 5.如果让你设计一个朋友圈,你要怎么设计那些模块(点赞,通知,拉取,推送等方面) 6.很多数中找到前1000大的数 7.算法:反转链表
八股拷打(30min) 1. tcp的重传机制有哪几种?具体描述一下 2. override、final 3. epoll的边缘触发和水平触发 4. tcp的滑动窗口 5. stl的常用容器及其底层实现数据结构 6. static的用法和作用 7. 智能指针 8. 虚函数、虚表指针 9. 内存碎片 10. 索引的优缺点 11. 索引可以用哪些数据结构实现 还有其他的一些基础八股题,后面问的跟项目有
2023/5/10 面了30分钟。。。(感觉寄) 脑子有点糊涂,只记得一部分了 先是自我介绍,然后问问之前实习情况 1、C++有什么情况会导致宕机? 2、数组越界为什么会导致宕机? 3、介绍下虚函数 4、智能指针 5、select和epoll的区别,为什么使用epoll? 6、迷宫,寻路算法(没看过之前。。。);然后迷宫有环怎么办? 7、客户端输入名字的前部分,如有玩家ABC,当客户端输入A时,会
全程35分钟! 1.自我介绍 2.选你最熟悉的项目深挖 3.tcp粘包,如何解决? 4.怎么自己设计数据库 5.自己设计过那些小工具?日志系统,简易shell 6.STL是线程安全的吗? 7.哈希冲突,红黑树 8.说一下线程安全 9.负载均衡的算法了解哪些? 10.游戏寻路算法了解吗?答了回溯 11.数学三维和二维两点之间的距离 12.实习经历,写过哪些算法? 13.为什么游戏服务器不用数据库?
时间线5.4日一面,全程30mins 1.自我介绍 2.C++多态 2.vector以及STL各种容器的迭代器失效问题 3.场景题,两个容器中如果存放了相同指针,如果其中一个释放了一个在用怎么解决? 4.gdb调试器怎么调试多线程,怎么查看堆栈 5.你曾用过哪些使用多线程的方式? 6.C++11了解哪些,具体一点 7.项目深挖 8.了解哪些负载均衡算法 还有一些忘了,一面已过,约的5.8二面~
9.30 一面 30min 自我介绍 竞赛经历 实习经历 float占几个字节 float数据类型与int类型相加是什么类型,为什么 Integer类型一般不用==进行比较,主要考虑是什么 Integer a = 1,Integer b = 1,它们是否相等 HashMap是怎么样的一个数据结构,讲一下HashMap HashMap是安全的类吗,怎么判断 怎么把HashMap变成线程安全的类,对什
一面: 1.虚函数是什么?怎么实现的?虚函数在内存中什么位置? 2.什么情况下要使用多态?为什么不直接在需要实现的类里写函数? 3.vector容器插入元素和动态扩展的原理? 4.vector的迭代器什么时候会失效? 5.map和unordered_map区别?时间复杂度是多少? 6.有没有用过boost库? 7.常见排序算法了解吗?讲讲快速排序的原理?快排时间复杂度是多少?为什么? 8.如果数组
9.10 自我介绍 项目介绍(项目我写的是黑马点评那个注重问了秒杀中超卖的定义及如何解决) 基础八股 tcp与udp区别 tcp粘包 面向对象的三大特性,着重问了多态 静态绑定与动态绑定 SQL注入是什么,如何解决 方法递归是什么,递归消耗的是堆空间还是栈空间 redis常用数据结构 redis持久化的方式有几种,区别是什么 数组与链表的区别 栈与队列的区别以及应用场景 算法题 求斐波那契数列第n