1. 入门¶
大家好. 想知道为什么说 iFun 引擎是专门提供手游的游戏服务器框架. 吗?简单来讲,如果使用 iFun 引擎就可以简单快速的构建手机游戏服务器,很厉害吧?
在手游市场里,大家都应该听说过 Game Backend-as-a-Service (GBaaS) 吧. 比如 GameSparks
, Playfab
, Photon Realtime
, Fireline
等都与 GBaaS 有关.
GBaaS服务在游戏中扮演着重要的角色,游戏中重要状态值(例如,一些用户数据的房间或大厅,公会,朋友,缓存软件等)都可以在GBaaS云端进行管理,并且提供可以访问那些状态值的 RESTful API. 这样,不用复杂的操作也可以方便地开发游戏服务器. 虽然GBaaS可以一定程度的缩短开发时间,但是如果想要制作比较复杂的游戏,就会发现GBaaS还是有一定的局限性的. 其局限性如下:
游戏中的某些重要数据必须储存在GBaaS中,而大多数的发行人可能希望把游戏服务器放在自己管理的数据中心,或者自己云端账号下面. 但是GBaaS并不支持在其他地方储存数据的功能,这是问题一.
如果GBaaS服务器运行的地方不在大家想要提供游戏服务的区域或其附近,那么大家的游戏服务器和GBaaS服务器之间的通信就会变得缓慢. 这对一个延迟敏感的游戏来讲是一个很大的问题.
GBaaS仅仅可以提供某一些典型的游戏功能,如房间-大厅系统 或者聊天,排名等. 但如果你想要创建的游戏需要更完善的功能的时候,使用GBaaS就不方便. 这时候除了等待GBaaS提供相应的API或者可以自己创建之外,就没有别的办法.
虽然用游戏服务器中的的所有数据可以轻松的完成制作,但是由于初始时的一部分数据储存在了GBaaS中,所以直接制作时会造成非常大的困扰. * 另外,GBaaS只提供基于HTTP的RESTful API,根据游戏的不同,有的游戏可能不适合于使用HTTP的邀请-响应的交流方式,比如某些游戏必须使用类似于TCP或UDP等其他协议进行交流. * 最后一个问题是:为了弥补GBaaS中功能的不足而需要游戏服务器分开操作,这时产生的客户端-服务器端间的流量成本,以及游戏服务器费用以外的游戏服务器和GBaaS之间的流量成本,并且还有支付GBaaS使用到期的费用;对于一些游戏,这些费用总体可能会达到总销售水平的30%.
不同于GBaaS,iFun 引擎使用的是可以实现多线程的C++框架. 并且iFun 引擎的设计理念是为了简化实现游戏服务器时产生的各类问题. 它囊括了基本的客户端会话管理,包括: 网络引擎,数据库的设计和访问,层次拓展结构,与外部服务交互,服务器管理功能 等. 当然也提供在手机游戏中常用的功能. 如:认证,结算,排名,对接等功能.
在下面的章节中,我们将快捷地了解iFun引擎的安装方法以及如何利用iFun引擎创建游戏.