性能

From Valve Developer Community
Jump to: navigation, search
English

后文主要是一些提示,有关于性能消耗和建造自定义地图时可以考虑的优化内容。

客户端实体 (Client Side Entities)

在Source引擎中,大多数实体都是需要联网,发送其状态到服务器,以避免客户端出现不一致的现象。为了优化这些问题,“_clientside”实体类型就出现了,它可以减少网络流量,并会首先应用于美化非游戏可玩(non-gameplay)的实体。

在这方面有个不错的例子:Dota2中的所有环境生物都会用到"prop_dynamic_clientside"这个实体,他们不会把自己的状态信息发送到服务器,每个客户端会看到不同的场景,不过这并不影响游戏的进行。

如果实体状态对游戏很重要,那么应该使用prop_dynamic来代替。

树木放置 (Tree Placement)

树木放置使用的是ent_dota_tree 这个实体,创建出可破坏的树木。放置时将捕捉到64格增量,让它们和导航网格对齐。在一个64x64的方格内,放置众多树木往往会让他们对齐到同一个位置上,致使一些树木在完全相同的位置重叠。 这可不太好,为了避免这个情况,任意放置一个"ent_dota_tree"到最少64格的网格中,保证在运行时,树木不会出现在一个意想不到的位置而失效。

注意:地形编辑器会把这些带入到账户中,并且不会允许任何着色的树木发生重叠。

地形编辑器执行说明 (Tile Editor Perf Implications)

地形编辑器允许编辑者创建出非常精细的地图,这很可能在狭小的空间放置过多的对象,植物和树木,使电脑运行缓慢。所以在使用地形编辑器的时候,也应该坚持对性能进行限制。

光照性能 (Lighting Performance)

添加延迟光照到自定义地图上之后,需要清楚:光照堆叠多了就会对性能造成一定损伤。"r_deferred_simple_light 2"无疑是一个可以提升性能的好工具, 它可以在游戏中显示光照的半径,并且添加上颜色进行显示,如果一个地方的颜色已经变绿,那就意味着这个地方堆叠的光照已经够多了,需要减少这个地方重叠的光照半径,以减少对整体光照效果的透支。