如上图所示,unity3d开发过程中,尤其网络游戏开发过程中,对unity3d的网络,数据,逻辑,UI,渲染的应用是比较全面的。
unity3d网络
unity3d的设计主旨在于游戏开发,确实她达到了民众对于他的期待,成为42%的游戏开发用户的第一选择。随着网游技术的加强,unity3d早期对于网络方面的缺陷渐渐得到补充,这归功于广大开发者的努力。
游戏开发中的服务器端主要处理:游戏逻辑,数据存储/处理/交换等大部分需要计算的逻辑。
游戏开发中的客户端主要处理:游戏渲染,玩家输入相应,服务器逻辑触发,数据获取等逻辑。
当前server与client需要处理的事情分的比较开,针对大公司,开发流程比较固定,网络技术比较成熟,周期也比较短。对于小公司,网络技术一般难度较大,形成产品很不稳定。
目前存在三种unity3d网络开发方式:
1 基于Http开发的方式,举例说明,如果想要开发一个网页web3d的应用程序,此时选择使用u3d的方式进行开发,具体来说,网上培训考试系统,逻辑中对于网络的要求是考生考题/答案数据的存储处理以及判定逻辑需要在服务器上进行,客户端只需要触发获得数据即可,不需要实时获取存储数据,该方式最好采用基于http的方式点获取即可。
2 基于tcp udp方式,该方式比较多的应用于手机网络游戏,是目前比较多见的方式,如游戏中人物位置实时同步,人物等级,游戏关卡等动态数据的存储更新交换所采用的方式,具体来说就是采用socket+protobuffer的方式,进行网络连接数据交换,尤其数据以及逻辑比较快速时采用。大多数时候,游戏登陆之前采用http的方式进行用户判定,公告加载,登录背景图加载等操作,此时用户与服务器采用长连接形式,游戏玩家登陆后建立客户端与服务器建立短链接,实时更新玩家数据,游戏数据。
3 基于u3d引擎绑定方式:如photon服务器,类似于云服务类型,这种方式比较麻烦,貌似有些提供商的服务器在中国还没有,需要连接韩国服务器,需要花钱买这种服务器的管理,灵活性不是很高,使用度不高。