本站每日公布最新传世私服,新开传奇世界私服,传世散人服,如果您觉的本站不错请告诉你身边的传世游戏玩家!

您当前的位置:

首页 > 找传世私服 > 正文

近期很多GM反馈引擎卡顿的问题统一回复
2023-02-12 14:22:11    阅读: 532 次
内容摘要:近期很多GM反馈引擎卡顿的问题统一回复
反馈情况:
在使用彩虹引擎时,开启引擎后在某些脚本处会一直卡顿,而且会吃服务器极大的资源。
这是我们在写脚本的时候太过GOTO导致。
GOTO 这个命令是我们写脚本的时候经常需要用到的跳转处理。
这个命令没有时间延迟,比如
#IF
#ACT
GOTO @1

[@1]
#IF
#ACT
GOTO @2


[@2]
#IF
#ACT
GOTO @3


一般正常情况下,出现5个GOTO重复使用的时候基本100%会卡。
那么解决的问题是什么?

这里需要用到延迟GOTO的写法
我们只需要将GOTO改为DelayCall 10 @1 1 MS即可。

经常听到这样说:
1)我和别人是一样的版本,为什么我的游戏卡,他的游戏不卡,是不是引擎问题?
2)这个版本我开了很久,以前都没问题,怎么现在突然变卡了?
3)之前开好好的,为什么换服务器后变卡了?
答:
1、当前服务器硬件性能可以满足任何生产环境,在服务器内存够用情况下,合理的计划开区数量,不要超过实际的物理内存,服务器导致卡是不存在的。
2、现在的机房网络质量大多数都非常稳定,不排除上游运营商(电信、联通、移动)网络不稳定,被攻击、玩家自身网络问题等因素导致的卡。
3、最后引擎程序导致的几率非常低。目前引擎多数都已经发布很久了,且大家用的都是一样的,别人使用都没有问题。
    结论:版本是导致的游戏卡的重要原因。

下面就聊下如何对版本进行优化,仅供大家参考。


【关于引擎的相关设置】
1、引擎 选项---性能设置---怪物处理控制---刷怪间隔、处理间隔。

刷怪间隔:
数字越大,刷怪速度越慢,CPU占用越低。
数字越小,刷怪速度越快,CPU占用越高。

处理间隔:
数字越大,怪物行动越迟钝,CPU占用越低。
数字越小,怪物行动越灵活,CPU占用越高。
这里的CPU的高低,大家都明白,是决定游戏是不是卡的缘故之一。


2、引擎 选项---怪物设置---怪物处理---优化怪物反应速度
怪物灵敏度调整:
数字越大,怪物灵敏度越高,CPU占用越高。
数字越小,怪物灵敏度越低,CPU占用越低。

3、很多游戏爆出装备的时候。事无巨细,甚至某种版本一瓶太阳水掉落在地上,也要全服公告。这样的文字提示,肯定也会给引擎增加负担,建议取消这些无意义的物品掉落提示。包括一些无用的SENDMSG类提示信息,多余无用的,统统全部删除掉。


【关于怪物的刷新】
1、MonGen.txt服务器刷怪配置。
;[地图   X坐标         Y坐标   怪物名称   范围   数量   刷怪间隔  集中座标刷怪几率   是否死后过了间隔才刷(0,1)   怪物新名字  宠物等级]
表面上看按照这个格式对号入座即可了,其实不然。
很多人写版本图省事,所有的怪物一律统一刷新时间,BOSS全部30分钟一刷新,小怪全部10分钟刷新一次。如果你全部设置了10分钟一刷新,那么引擎每10分钟就要全局的检测一次,目前所有游戏里存在的10分钟刷新的怪物数量与MONGEN中设置的是否相符。如果不相符会补齐,要在一个时间内同时做出这么多的检测,引擎的负担可想而知,建议将这些怪物的刷新时间分散开,比如11分钟,12分钟。这样引擎在一个时间内执行的检测与补充就会少一些,运算负担就会减少一些。

2、有些人写版本把一个地图内所有的怪物刷新坐标点全部设置在同一个坐标点,范围直接设置整个地图。这样的话,引擎的分析处理能力势必会被拖累。建议刷新坐标点都分开,一个坐标不要刷新太多的怪物,范围不要设置太大,同一个地图多设置几个刷怪坐标。这样引擎负担就小了,处理速度也快很多。

3、还有一些版本只有10~50个人玩,但是刷怪设置了3~6万只怪,那么平均折合一个人要消灭掉1000只怪,这现实吗。肯定不可能的。没事儿的时候大家可以对比一下,游戏在刷新1万只怪所产生的CPU占用大小与刷新3万只怪所战胜的CPU占用大小,那绝对是3倍的数值。


4、还有关于游戏自助刷怪升级的脚本,这个脚本千万尽量不要存在在游戏里,这个是一个坑爹的功能。尤其刷怪练级的脚本。当几个刷怪NPC在哪里不停的刷的时候,引擎负担极大,游戏不可能不卡。


【关于机器人脚本】
D:MirserverMir200EnvirRobot_def目录下为机器人脚本。
AutoRunRobot.txt为触发命令脚本
RobotManage.txt为执行命令脚本
当触发命令脚本中一秒一执行的命令出现的情况下、游戏就会变卡,并且游戏里玩家越多,将会余越卡,建议大家取消掉1-3秒一执行的机器人脚本,如果有必要存在的话,那么修改为5秒,甚至10秒以上的等待时间。


【关于个人定时器】
很多版本中的个人定时器使用的很不科学、上线就开始触发个人定时器,搞一个安全区在线泡点,并且一秒一执行,当人多的时候一起执行当然会非常卡。尤其玩家在带着个人定时器等计时命令的时候,在进行PK或者打怪等动作的时候,就需要通过游戏网关向引擎不停的传送数据,引擎在不停的分析数据反馈给游戏网关上的玩家,这样一来,引擎的负担大了,游戏自然就变卡了。
建议取消:安全区泡点,将泡点最好划分开不同地图,尽量一个泡点地图里不要存在太多的人。这样游戏就不会那么卡了。
另外:很多人的个人定时器都是1秒一循环。然后给100万经验。建议大家转换个思路,修改为5秒一循环,给500万经验。这样循环的次数少了,引擎的负担就减轻了。


【关于GOTO的使用】
GOTO越多,游戏的循环会越多。有些版本表面看着很简洁。使用了很多GOTO,其实这样一来循环就会很多。大家都知道当计算出现死循环的时候,系统是直接**,那么游戏出现死循环的时候,会直接引擎死掉。能用DELAYGOTO替代的尽量用这个替代,不能用这个替代的尽量用其他思路取代。
能在当前脚本完成的功能尽量不要#CALL到别处完成。减少GOTO使用率对于版本优化是一个很重要的一步。
尽量优化版本,而不是通过修改引擎(!Setup.txt) ScriptGotoCountLimit参数,让GOTO一直执行,太多GOTO会使引擎直接死掉,造成引擎直接重启。


【关于版本中的NPC】
有的GM总说自己的游戏加载的时候好慢,或者关闭的时候好慢。这些人的游戏里NPC刷新达到600~700个。这些NPC有多少是没有用的?有多少NPC是玩家一辈子都点击不到的?加载这些东西,然后在保存这些NPC产生的数据,会不浪费时间吗?如果这些NPC里留下一个小小的后门,你找出来是不是也浪费你的脑细胞啊?


【关于引擎等其他程序的参数】
引擎上不知道作用的,不建议擅自修改,尽量采用默认即可。