前些日子,一个著名页游服务端主称做了一次演讲,有幸在台下聆听了这位主程的演讲。已经过去一段时间了,偶尔还是会跟同事们讲起听到了什么,学会了什么,故做一次总结。
讲座持续了近两个小时,讲了做服务器构架方面的方方面面,我不能一一陈述,就讲我感受最深的两点记下来于各位分享
1: 服务器端最影响性能的一个功能就是区域广播; 就是玩家在行走或者打斗的过程中要将自己的状态广播给周围的玩家,通常这个范围是电脑屏幕大小的区域,因为各个玩家屏幕大小相异,故这个范围要略大于普通电脑屏幕。
实现这个有两种方法:
1. 遍历本地图的所有玩家,目标玩家和本玩家的距离,如果在范围内,则广播给相应的玩家。
2. 将地图划分称一个一个小格子,确保九个格子的面积大于电脑屏幕的面积,玩家在走动或者打斗是即使刷新自己的所在的区域,并将自己的状态广播给本身所在的格子内和周围的八个格子内的所有玩家。
2. 影响服务端性能的另一个主要的功能就是怪物的AI,怪物的AI是靠定时器即使刷新的,以便根据自身的情况即使改变自己的状态,比如是巡逻、攻击、追击、返回等,几乎一款游戏有很多的怪物,怪物的行为不一值,所以需要添加的定时器也很多;我们优化的方向是当怪物巡逻时,我们将定时器的间隔设置的长一些,当怪物收到攻击之后,我们将怪物AI的定时器设置的短些。
初此之外,还讲到了许多其他的东西,比如网络组包、定时器的实现等,下次再谈吧。
时间: 2024-11-30 11:41:44