猫史档案馆


【教程】 kitten秘籍 #云&结构化

用户:𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟查看:222 回复:8 评论:25 创建时间:2023-08-12T21:01:37


云变量 和 云列表 的内容是有限制的

只能输入 字符串 布尔值 数字

没有列表

如果尝试对云列表输入列表,你会看到NaN

 

一个云变量(无论共/私)1024字符串

一个云列表 1000项*每项128字符串

 

云变量比云列表快(原因未知)

 

把云变量串联在一块当大变量可以提升利用率

此外搭配合理的结构化的字符串可以实现无限房间

 

把云变量当做宽带,传输各种数据

写上目的人id,接收,限时,销毁,往复利用

本地变量接收,修改

你就在云模组的巅峰了

 

在源文件中

其实云变量和变量没有差别

都是一个个属性

(感兴趣见 github.com/cinast/bcm-kitten.js)

 

-----

结构化字符串是多房间云的必要途径

但是会增加卡顿,把最好把处理字符串的时间控制在100ms(0.1s)

加上10ms的间隔,游戏不会太卡

 

在分隔字符串的时候往往避免不了误分割

然后得到的列表与预期不符

这里是结构化技巧

 

总是 - 关键

这样说,你可以总是确定一个东西在什么位置

然后你可以根据这个东西确认其他

 

比如说这个列表有7项

原本有4项

['a','b,','c','d,']

字符串内容:4,/a,/b,,/c,/d,,

结果:[4,a,b,空,c,d,空]

 

我们有两个确定

第一是前面的“4”,代表原来有4项

第二是“/”,原内容到字符串的过程,每项前面加了“,”又加了“/”

区分项与项

 

那么根据“,/”,把空项合并到前面有“开头/”的项,处理后检查有没有4项

但是不包含“总是”的项

那么就处理完成了

 

这是一个方法,如果示例内容有“,/”的话,

我们还可以加个第二个“总是”,说明什么项有“,/”

因此到计数xx的时候,碰到开头“/”,不是  把前面有“,/”的 合并到这项   而是  把此项合并到后面

 

当然处理方法不止这些

 

计数的奇偶,偶代表什么,奇代表什么

开头,末尾

 

层级分隔符 - 解析:

如果你只用一个分隔符,那么那个结构化进程会相当缓慢

而且错容也多

 

比如说字符串第一层是房间列表

每项都是房间,分隔符用“,”

 

第二层是单个房间

有房间信息,密码,编号,人数限制

用分隔符“;”

还有个玩家列表

 

第三层是某个房间里的人数或者游玩情况(“'”)

玩家信息在第四层(“"”)


回复

上一页第 1 页 / 共 1 页下一页
𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

毕生所学(bushi)

点赞0


评论

毕生所研(


PXstatePXstate

变量传输是好方法,但是接收方必须从一开始就接收,因为传输后是直接销毁的

点赞0


评论


e……e……

进收藏夹里吃灰emotion_doge

点赞0


评论


hzCKhzCK

辟谣无限房间

点赞1


评论

纯玩字符串

是可以的

你做出来了吗,实践结果如何呢?还无限房间

很久以前我发过一个帖子从多个角度多个方面全面否定了所谓的无限房间在kitten里的可行性,你要是还觉得有无限房间那你可以宣称你已经发明永动机了

cloudmaster,下个月发布

嘲讽人到时候不许反悔((()

帖子康康(

放心吧,有至少五个人像你这样和我说过什么无限房间,去年也有一个说无限房间,跟我吵了一年,愣是没拿出来任何实践作品,前段时间被我彻底反驳完

所谓的无限房间根本就是个笑话

只是做一个无限房间的壳子应该不需要一个月吧

如果你能把你电脑给我一个月

😏可我为什么没有找到你反驳的说辞🤔

又不肯说,就说别人怎么怎么(

怎么说呢,CK是对的,k4不可能实现无限房间的,技术已经达到瓶颈了,除了提高云列表的长度限制,别无他法

具体看回帖

单纯在云模组里说看到不行

我老早之前就发过好几个技术论贴

但是没有讲细


新手我新手我

收录

点赞0


评论


宽刃AS宽刃AS

如果要丢包率为0的话就要搞确认接受数据协议了,延迟将会翻倍,同时这样游戏基本是不可观战的

这么久没人做这种云游戏是有原因的(

点赞0


评论

做这种游戏我只有一个想法,做云服务器联机型生存游戏ԅ(¯﹃¯ԅ)


治愈绾兮治愈绾兮

暂且把问题规模缩小一下,把无限房间改成无限人联机,然后假设目前只有2个人,他们的云变量、列表延迟均为0.2秒。

不过,由于0.2秒足够k4的一步执行执行完很多代码了,为了表述方便,下文统一假设云变量、列表延迟均为1秒。

由于最终要实现无限人联机,那么就可以假设我们创建了一个延迟1秒,长度不受限制的云变量,且所有人可访问、修改内容,下文统一称为云变量。

该云变量形如:“玩家1数据&玩家2数据&……&玩家n数据”

2个人的情况下,一方需要修改数据时,需要把云变量存入本地,然后修改自己部分的值之后再上传回云端,问题就在于:当云变量存入本地后,对方也修改云变量的值,此时我方再上传,那么就覆盖掉了对方修改的内容。

这种问题唯一的解决方法是,一个人控制云列表的一项,因此无限人喵战这种联机就无法实现,最多也就2010个人(1000*2+10)

换一种联机方式,改成无限人打牌呢,因为这样在某一秒就只存在1个用户修改云变量,这确实是可行的,不过n人的话,一轮游戏光处理时间就要n秒,而且还要算上玩家思考时间等,所以这种技术没有利用价值.

那么如果是一个房间2个人下棋呢,喵家的思考时间分配给别的房间用来传输数据,先不考虑技术难度,问题就在于,当玩家下出棋之后,系统如何知道你要修改云变量了?那势必要专门开一个云空间存储玩家下好棋了,并且这个数据是不能用本帖的方法传输的,所以这种方法也不行,综上所述可以得出最多开2010个房间。

以上不一定全面,可能还有别的方式联机,那你就说出来,我来反驳(bushi

点赞0


评论

又看了一遍,表述似乎不是很清楚()

考虑考虑低端设备啊,他们延迟不是你能想象的

看论坛最新

让一个人当云端管理员这不大现实

做到同步很麻烦


橘生淮北则为枳橘生淮北则为枳

ddd

点赞1


评论