设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1659|回复: 9
打印 上一主题 下一主题

[已经解决] 关于并行公共事件与多状态对电脑性能的影响。

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

跳转到指定楼层
1
发表于 2015-5-1 17:48:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
最近在做物品拾取后会自动刷新的事件,最开始是想着并行公共事件来逐秒计算然后给变量逐渐赋值,最终达到指定变量时就刷新开关,但后来想到如果自动刷新的物品有好几十个甚至上百个,那么公共事件这样每秒都计算一次变量赋值然后再来判断所有开关是否达标或许会十分卡?
后来我想了另一个办法:物品拾取后获得一个除了持续时间外完全空白的状态,然后再配合地图并行事件以及开关就能完成,这样不知道会不会比上一种方法在性能方面更有效率?还有就是请问下状态最多可以叠加多少个?几十个上百个附加到一个人身上没问题吗?会不会在战斗的时候变卡?

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-5-1 18:08:06 | 只看该作者
本帖最后由 taroxd 于 2015-5-1 18:11 编辑

只是每秒(而不是每帧)判断是否需要刷新,效率应该不会有太大问题。
效率还不够就每2秒,每3秒……延长判断的间隔对玩家体验的影响不大的。

上百个物品的话,每帧判断一个物品也可以。这样的话每几秒就能遍历所有物品了。

状态太多对效率的影响不大。

点评

是指构造不同频率的更新么QAQ  发表于 2015-5-2 00:08
战斗时所有公共事件都不会执行  发表于 2015-5-1 20:54
貌似在战斗中并行公共事件的计算会中断,要再战斗结束之后才重新开始,而且万一有其他事件一起会更卡  发表于 2015-5-1 20:08

评分

参与人数 1星屑 +132 收起 理由
VIPArcher + 132 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
115 小时
注册时间
2012-11-15
帖子
119
3
发表于 2015-5-1 19:19:12 | 只看该作者
多内容的并行事件对电脑性能确实有很大影响.(主要是占用内存),我的多并行加多个地图事件直接把同学的2G内存电脑击毁了(4G内存的倒是没出过问题)
上百状态等我到家测试,但是从状态的运行机制来看可能还是会对战斗流畅度产生很大影响.....

点评

@taroxd 就是不知道才要问人啊……  发表于 2015-5-1 21:14
你知道状态的运行机制吗……  发表于 2015-5-1 20:29
要考虑老配置电脑的玩家是否能玩,我家8G内存就算测试了也难以准确,说不定我一点不卡别人玩着就卡到死  发表于 2015-5-1 19:57
就是不知道状态的运行机制,没有任何内容只有持续时间的状态超过100个会不会卡是未知数,而且根本不知道100个是否存在,根本没办法查看到这么多  发表于 2015-5-1 19:53
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
115 小时
注册时间
2012-11-15
帖子
119
4
发表于 2015-5-1 20:17:17 | 只看该作者
其实想了想 楼主的要求还是并行事件的好
直接新建一个公共并行 变量A+1
条件分歧,当变量A=N时 开关A开启
测试了下并不会卡
100状态多麻烦.....

点评

哦对,忘了忘了  发表于 2015-5-1 21:02
状态会在一定移动回数之后消失,  发表于 2015-5-1 21:01
那用状态的话如何在地图刷新呢?我不记得VA有再指定时间后解除状态的设定啊.....  发表于 2015-5-1 20:39
从方便的角度来说是这样,但上百个分歧我怕会卡  发表于 2015-5-1 20:28
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
115 小时
注册时间
2012-11-15
帖子
119
5
发表于 2015-5-1 20:53:18 | 只看该作者
楼主这个问题我仔细想了想,如果即时的分歧会卡的话,楼主你觉得定时的判定一次,也就是说只做一个数时间的并行,到时间后执行判定公共事件如何?

点评

还是要考虑那百分之十的老爷机用户嘛2333 不过可以压缩到一个并行100个分歧也不是不行啊....  发表于 2015-5-1 21:35
那么我应该可以放心的做他上百个并行事件了吧?  发表于 2015-5-1 21:30
我知道啊,不过就现在电脑的普遍配置还是不是很容易卡的.....  发表于 2015-5-1 21:19
其实道不是我卡,我是听了你说的怕其他人会卡,我开了300个20帧并行的公共事件,一点也不卡  发表于 2015-5-1 21:09
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
6
发表于 2015-5-1 20:56:53 | 只看该作者
要说实话的话,我觉得这个写一个小脚本效益会高很多……
当然得看楼主你怎么定义什么时候刷新,理想效果是怎样的。

点评

谢谢你的帮忙,但我感觉应该不需要,因为我自己的电脑怎么折腾都是不卡的,想要知道别人能忍受到什么地步,毕竟做游戏是给别人玩的嘛  发表于 2015-5-1 21:17
主要是事件真卡起来后你想处理会花更多的时间,你可以先说明一下你想要的效果。如果实现起来并不困难,我可以帮下忙。  发表于 2015-5-1 21:06
你这话怎么好像我也说过......  发表于 2015-5-1 21:06
不会写,只要有其他方法能做到的事情,哪怕再麻烦我都不会考虑脚本,因为脚本已经用了很多了,随便出现点冲突都不是我能解决的了的。  发表于 2015-5-1 21:03
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
115 小时
注册时间
2012-11-15
帖子
119
7
发表于 2015-5-1 20:59:09 | 只看该作者
三途亚梦 发表于 2015-5-1 20:56
要说实话的话,我觉得这个写一个小脚本效益会高很多……
当然得看楼主你怎么定义什么时候刷新,理 ...

我也这么觉得,但是不会写2333

点评

_(:з」∠)_ 原来如此,那么加油把坑填平吧~  发表于 2015-5-1 21:16
我大学了...因为突然想起自己还有个游戏坑(虽然没人知道),所以又上6R了233  发表于 2015-5-1 21:14
呀,少年好久不见,看来是中学党吗?上次见你应该是我刚来6R的时候呢。  发表于 2015-5-1 21:07
回复 支持 反对

使用道具 举报

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
8
发表于 2015-5-2 00:55:05 | 只看该作者
本帖最后由 三途亚梦 于 2015-5-2 00:59 编辑

既然这样的话,你可以粗略的这么理解。
并行事件是每2帧执行一次,也就是一秒会执行30次。
每次执行中如果内容只有计算(即变量加减,开关操作等等)整个计算会在一瞬间被完成,你可以认为只要计算内容不太长不会计算到下一帧才会完成。
这个过程就像是你得到一份带有封面的假期作业,你需要打开封面,然后把题做完,再合上作业本,最后把作业交上去。
无论这个作业是一道题还是很多题,你都需要经过 打开封面-计算-合上作业本-上交。
这个意思就是,如果有两个并行事件,则电脑在解释的过程中也需要“打开两次封面”,当然对于电脑而言,“打开封面”是一件很麻烦的事情。
那么数量一多,可能就使得把全部的作业做完需要花费超过1帧或2帧的时间,但是没有立刻完成的基础上,又接到了新的作业。
电脑可没聪明到你不告诉它“这套作业你做过了,所以不用做了”它就会自己想“这套作业我做过了,跳过,做下一道。”
所以即使是完全一样的内容电脑都一定会再计算一遍,积累一多,处理不过来,这就形成顿卡了。
这么说大概就能理解到并行事件的个数越少越好的意思了吧。
※ 并行事件在地图外是不运行的。

那么就像TD触说的,如果你只是“每秒”而不是“每帧”进行计算是不会产生多大的负担的。
另外,如果你是单纯想做资源刷新的话,个人是建议采用牧场物语的形式,也就是“定时间点统一刷新”。

点评

宝箱和所谓的资源有什么区别么,纯事件做当然是可以的,比较麻烦就是了。事件独立开关是可以跨事件跨地图操作的。  发表于 2015-5-8 14:39
想问下定时定点统一刷新,可以用事件完成吗? 还有宝箱也可以实现刷新效果吗?  发表于 2015-5-8 10:24

评分

参与人数 1星屑 +132 收起 理由
VIPArcher + 132 写了这么多,辛苦费

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

9
 楼主| 发表于 2015-5-2 11:19:52 | 只看该作者
三途亚梦 发表于 2015-5-2 00:55
既然这样的话,你可以粗略的这么理解。
并行事件是每2帧执行一次,也就是一秒会执行30次。
每次执 ...

啊我明白了,也就是劲量并行一个事件,而里面塞多少都行把,反正刷新资源的也就是等待帧、判断分歧、赋予变量、打开开关,只要这些是一瞬间完成那么放多少个都没问题了。我只要把等待帧做成300帧判断一次,那么计算压力也不会有多大了

点评

请问通过变量刷新开关是如何做到的,新人求教  发表于 2015-5-8 10:40
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
10
发表于 2015-5-3 21:50:52 | 只看该作者
不知道这样行不行:
在一张地图中,有事件1、事件2、事件3……事件x,其中,事件1到事件10是你需要的拾取刷新的事件,我们把这类事件设定成事件独立开关A打开时代表可拾取,关闭时代表不可拾取
然后呢,事件x作为并行事件,事件内容就是,一定时间过后,打开事件1到事件10的独立开关A,这样,1张地图就1个并行事件,应该不影响了吧

点评

打完后某开关打开 然后探测到该开关打开的情况下重置副本  发表于 2015-5-13 12:26
如果想做一个类似副本的东西,打完之后宝箱和BOSS都重置,有思路可以提供吗?因为这个用固定时间来刷新就不太合适了 有的副本大 可能用时会很长  发表于 2015-5-13 11:47
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 00:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表