• QQ21031394

    工作时间

    周一至周五:9:30-18:30

    周末及节日:根据情况调休

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方QQ群

站长推荐
Seago 一级会员
  • 未知地域
  • 84发帖数
  • 20主题数
  • 0关注数
  • 23粉丝

[Seago教程] 【通用】浅述异步与分车

  [复制链接]
Seago 发表于 2020-11-11 17:22:17 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
提莫作坊QQ群:提莫作坊www.tbwlm.cn

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
本帖最后由 Seago 于 2020-11-11 17:28 编辑

本篇教程将简单讲述异步与分车现象之间的关系,以及如何利用异步。
首先要明确一点,异步并不等于分车。发生分车通常会与异步有关,但并不意味着异步一定会导致分车。所以不用害怕异步,相反,合理的运用异步可以带来很多便捷。

所谓异步,即不同客户端执行了不同的代码、读取了不同的数据、产生了不同的结果。最为常见的就是许多人闻风丧胆的“本地玩家”。本地玩家,顾名思义,这个本地操控者对应的玩家,不同的客户端对应的结果自然是不同的。
针对不同的异步形式,我们姑且定义两个名词:异步操作异步执行
异步操作:不同的客户端执行了不同的代码。
如:用本地玩家进行判断if(本地玩家 == 玩家1)then……endif并非所有玩家都可以满足这个条件,所以if分支内部的都是异步操作。
异步执行:不同的客户端执行了相同的函数,但涉及的数据不同,结果也可能不同。
如:给玩家发送消息,消息为本地玩家Id转换成字符串。那么虽然每个客户端都执行了同样的操作,但每个玩家看到的消息缺是不同的。

异步为什么会存在
联系我们的游戏实践其实很容易理解。玩家需要和游戏进行交互,需要进行一系列的操作,而这些操作每个玩家之间必然是不会完全相同的,所以异步就自然而然的产生了。

什么样的异步是危险的
这点并没有官方的说明,通常都是作者之间总结交流得到一些结论。以我个人经验有以下一些注意事项:
1、涉及到handle的一定要同步操作。比如创建单位、创建特效等。一定要是同步操作,这样才能保证虚拟机种的handle地址始终是对齐的。
而特效并不会实质的参与游戏影响数据,所以也可以尝试同步操作异步执行。单位会参与游戏,可能死亡等,所以一定要同步操作同步执行。
2、单纯的数值类型运算通常是安全的。
这里的数值类型包括整数、实数、布尔值。如果是局部进行计算,并且不影响其他handle的情况下,通常是安全的。
3、字符串最好保持同步。
并没有进行严格的测试去证明这一点,但鉴于对字符串的特殊处理机制,最好时刻对字符串保证同步。

异步的常见用法
1、根据本地玩家,进行异步操作
这是非常常见的。常用于发送特定消息。
2、通过本地玩家,进行异步执行
群发消息消息时可以借由本地玩家异步执行来达到循环的效果,避免不断的if判断。
也可以同步存储数据,再通过本地玩家来异步读取,达到异步展示多面板的效果。这点在此前的哈希表教程中有所讲述。
3、UI相关的大量操作
后续准备推出UI相关的系列教程,将会进行详细的讲述。

不难发现,异步用的多,或者可以带来便利的地方,或多或少都与人机交互有关。
游客,如果您要查看本帖隐藏内容请回复


参与人数 1蓝钻 +100 收起 理由
牧少皇 + 100 赞一个!

查看全部评分总评分 : 蓝钻 +100

楼主热帖
免责条款:本站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。

本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。

精彩评论120

追风丶 发表于 2020-11-11 17:24:00 | 显示全部楼层
好家伙,我直接踏马好家伙
我觉得我应该说点什么比较好,但我也不知道说点什么好,不过不说点什么也不好,想了想还是觉得不说点什么最好~
天天维度 发表于 2020-11-11 21:36:02 | 显示全部楼层
谢谢分享
红夜_ 发表于 2020-11-11 23:58:25 | 显示全部楼层
不错的经验
thk1992 发表于 2020-11-12 01:12:59 | 显示全部楼层
大佬言之有理
[发帖际遇]: thk1992 发帖时在路边捡到了老提莫的蘑菇 3 枚 绿钻,偷偷放进了口袋. 幸运榜 / 衰神榜
CNWorth 发表于 2020-11-12 09:24:04 | 显示全部楼层
终于明白是什么是异步,什么是分车了!
yishiwangxi 发表于 2020-11-13 10:31:04 | 显示全部楼层
感谢大佬分享
jack-z 发表于 2020-11-15 21:11:06 | 显示全部楼层
谢谢大佬分享
Secret放肆 发表于 2020-11-16 22:57:04 | 显示全部楼层
感谢大佬分享,学习了。
hoyure 发表于 2020-11-17 23:15:09 | 显示全部楼层

不用网易api的ui有木有

强调下版规的规定,如有恶意灌水从重处罚:
=====发表主题规则=======
1.主题内容请一定要附带预览图片,谢谢;
2.搬运来的东西请尽量不要卖钱!;
3.发帖有任何疑问请联系QQ21031394;
=====发表回复规则=======
1.禁止直接复制标题内容的;
2.禁止纯数字或者纯字母的;
3.禁止乱打一通文不对题;
4.禁止屠版和刷分行为;
第一次扣分处理,第二次扣分+警告,警告三次禁言三天,绝不手软,情况严重的直接封号,请大家珍惜自己的账号!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
天工维度唯一QQ群
786014245

欢迎进群交流,入群答案:编辑器

  • 官方在线客服

    QQ客服:小雪

    点击交谈

    QQ客服:砂糖

    点击交谈

    团队老大:荀公子

    商务合作
  • 上海市静安区共和新路4718号宏慧新汇园6号楼603室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信

    加入官方QQ群

Powered by 天天RPG&DZX3.4 ©2020-2021 Comsenz Inc.提百万设计( 沪ICP备18032615号-1 )营业执照