主要是一些基础的常识,比如资源消耗,数据库读写等!
资源消耗主要有以下三个部分:服务器消耗,客户端消耗和工作量的消耗。
1)服务器方面的消耗:
1.数据库的消耗:cpu的运行是以us为单位的速度运行的,而数据据的运行速度是以us的1000倍的ms为单位运行的。所以频繁的数据库查询将带来巨大的数据库消耗,影响游戏服务质量。这也是服务器消耗中最大的一块消耗。
2.Cpu消耗
3.网络消息消耗:主要是体现在人多动作杂的玩家聚集地,会出现卡的现象。所以在策划案设计时要对人群进行适当的分流。
2)客户端方面的消耗:
1.图片加载:游戏画面需要大量的图形表现,所以图片数据的加载对客户端来说是很重要的一部分消耗。如果采用多重背景,并且有大型的必须整个加载的图片动画,对于客户端来说消耗量是很大的,必须由策划权衡后决定是否采用。
2.Cpu消耗:这部分也主要是和图片的加载相关的,和cpu消耗相关在2d游戏中主要是图片的层数和图片象素问题,3d游戏则是多边形(主要是三角形)的数量问题。所以在这方面策划也要做相关的权衡。在游戏画面质量与游戏消耗之间做一个适当的取舍。
3.内存量:目前公司的游戏是基本于市场最低配置来设置,所以内存也是必须考虑的一个问题。
3)工作量方面:
程序员也可能会由于工作量方面的原因拒绝策划的策划案,因为有部分功能可能对于游戏的总体来说并不是非常重要,但是程序员进行实现的话需要花费大量的时间。所以策划在向程序员提交相关的策划案时,必须明确此次的策划案在游戏中的重要性,如果不是非常重要的案子,却需要比较多的程序工作量的话,可以建议对策划案进行修改,缩减,甚至是放弃。
数据库的读写原理
1.游戏时启动的数据库数写。游戏启动时,会读取部分玩家必须用到的信息,比如地图,物品类型,怪物等。需要加载大量的数据,以便玩家进入游戏后调用。但是游戏启动时也不是无限制作的进行数据的加载的,其加载的数据量不能大于内存的大小。
2.登录时的数据读写。玩家登录时将从数据库读取玩家相关的资料,如玩家属性,玩家身上装备,玩家宠物,玩家好友,玩家社会关系等相关数据。
3.即时加载。主要包括动态动图与玩家仓库。由于这部分资料玩家并不是每次都会使用到的,所以采用即时加载的方式,只有玩家用到相关的东西时候才进行加载。动态动图一般包括玩家家庭,帮派地图,这些都是玩家在游戏中创作的东西。仓库则主要是玩家仓库中的物品查询。(×相关建议:可以把提取金钱与提取仓库物品分开操作,减少即时加载的使用频率。)如果单个玩家对数据库操作过多,时间过长,会影响其他玩家的服务效率,造成卡机现象。
4.数据库同步。部分系统或者是功能需要进行与数据库的同步,才能避免造成相关的错误。如堂主的任命,只有即时的读取相关的信息才能正确的处理相关的问题。
消息同步的原理
1.客户端主动。客户端主动是指客户端先执行玩家操作命令,服务器稍后进行相关的验证。它的特点是响应速度快,但是如果客户端先执行的是非法操作的话,则服务器会进行纠正。它主要运用于走路,跑步等方面。
2.服务器主动。服务器主动是指服务器对客户端发送相关的指令后,客户端才进行相关的响应。它的特点是消息准确,但是响应速度较慢。通常是通过在客户端制造假象来弥补延时造成的等待。它主要运用于pk等。
3.数据的推送和查询。数据的推送主要是服务器已经下达了消息,客户端只是做相关的显示。像以前的幻灵,人物的信息都是服务器那边下达的信息,只要用鼠标点到,就可以显示玩家的属性,这时即使不使用鼠标点到,这些信息也都已经传达下来。推送的特点是显示信息量大,但是网络消息多,cpu消耗大。查询指的是客户端发送查询请求交由服务器处理,服务器反馈相关的信息给客户端的过程。比如征服的帮派查询,点击按钮,对数据库进行查询。查询的特点是可以减少消息量的广播,但是会有少量的延时。
广播机制
1.全地图广播。也就是说不管此时玩家做移屏,缩屏,还是小地图中,都可以了解所有的信息,包括玩家的信息,怪物信息,地图信息等。幻灵就是采取这样的方式,它的特点是消息量大,详细,但是也是由于消息量较大,所以切屏时加载的信息量大,造成延时。另外一方面也就决定了这样的区域广播不太适应于大地图的广播。
2.区域广播。不加对全地图的进行消息广播,只对部分区域的进行消息广播,这样能大大减少了消息量。但是它的缺点就是消息量不够详细,不够多。(×相关建议:可以把二种模式结合起来,区分玩家信息与地图怪物信息,区域广播部分加入全地图的其他信息。)