舰船世界有没有改成dnf单机版90版本的版本,就过过各种高级舰船打电脑的瘾,不对战

工艺战舰:重聚
Android:9.5
注: 三星及以上评分视为正面评价,三星以下评分视为负面评价
请先后,再进行操作
非常有意思的一款游戏。战列舰,巡洋舰,驱逐舰,航空母舰,以及未来可能的潜水艇,甚至是邮船货轮都可以做出来,游戏的自由度非常高。截止目前,这个游戏仍有些不足之处。1、可用零件相比BSC内核的旧版本零件还是少了点,希望可以使梯形船体、1/2薄板像基础修行块一样可以在一定范围内自定义大小。2、希望匹配系统可以改成按照吨位、主武器口径及数量等参数进行分房。不过考虑到目前匹配没什么玩家,这个还是正式公测以后再推出吧。3、日系三年式127mm联装炮是不是有点太小了,可以稍微放大一下。4、日常催一波鸭华炮和巴尔的摩炮。
我是KSP老玩家,本身对这类游戏特别感兴趣。今天试玩了一下,感觉有很多问题,跟我想象的可能有一点距离。1.手机上面太难转移视角,轻轻一动手指就移得很远,而且还莫名其妙把零件添上了,操作感极差,现在表示以后不会再用手机玩这款游戏了。2.试了试PC,感觉好很多,但建造过程对新手太不友好了,不知道如何下手,至今还没建成一艘。另外经常添加零件时没有加在船上而是悬浮在空中,零件移动过程让我很难受,一个零件要想安在准确位置太难,往往需要先调整一个正确的视角,这跟KSP的辅助完成安装(靠得很近时直接贴上去)很不一样。此外缺少快捷键,添加键位和删除键位离得太远。还有若干不够人性化的建造问题,可以在这方面借鉴一下KSP。3.最大问题:如果说游戏在测试阶段可以理解,那个高级账户又是什么玩意儿。KSP打折后也只有50啊。另外这些功能不应该是免费的吗?辅助建造算是整个游戏最为称道的功能了,可以省大量时间,难道不免费?镜像本身不同步就算了,这也要高级用户,我也真是醉了。没这些功能还能玩什么?你可以说小游戏公司开发新游需要钱,但高级账户的有无绝不是对游戏体验感起决定性作用的,如果连基础都把握不好,又何谈吸引别人玩你这个沙盒建造类新游,而丢了steam上面这么多同类的一次买断的优质游戏?在我看来这款游戏应该适合以电脑为主,手游为辅的方针来发展,因为船只建造的时间长,手机适合碎片化游戏,手游不会有市场的。可以变成一次买断游戏,否则如果不是战舰的死忠粉绝不会给你每月30的。我玩的时间很短,可能有些地方说得不恰当或过于激进了,但我还是希望这款游戏能发展起来,因为我对沙盒类游戏的热爱。另外腾讯也在搞这类新游,要想有竞争市场就要先把握好特色,游戏品质对得起玩家,让玩家对你的游戏愿意买单才是立足之本。
关于这个游戏,我有一些独到的看法,来和官方分享,交谈交谈,希望官方给个面子,耐心的看完此文:这个游戏可以打造自己的原创战舰吗?造个歼星舰什么的,形状奇特一点的&&还有,为什么不实装一些历史上真实存在的奇葩玩意啊?比如说:航空战列舰(日向);航空巡洋舰(哥特兰);重炮潜艇(絮库夫);潜水母舰(大鲸);重雷装轻型巡洋舰(大井);潜水重炮舰(诺夫哥罗德);水上机母舰(千代田);维修舰(女灶神);人操回天母舰(北上);补给舰(奥丁);扬陆舰(秋津丸);工作舰(明石);战列巡洋舰(斯佩伯爵海军上将);潜水空母(伊-400);练习巡洋舰(鹿岛);装甲空母(大凤);高速战列舰(金刚);导弹驱逐舰(基辅);海防舰(占守)&&以上&&好像有点举太多了&&算了,不是要还原海战吗?先不说:空天母舰(梅肯)那个极端没用的东西了&&那么,官方你怎么看?关于导弹平衡问题,如下设计就好了:使用导弹时,会像航母操控飞机那样展开大地图,在地图上的导弹攻击射程内选定一小范围海域做一个标记,敌人不可视,之后导弹发射,先升空,再下落,对标记海域内随机一个目标进行打击,可以优先选择打击目标,区域内的船可以驶离标记海域,导弹不会攻击标记海域外的目标,导弹可以被侦测到,就像侦测船只或飞机那样,实装个雷达系统,当导弹进入雷达范围时,导弹下落的目标海域就会被标明出来,在地图上可视,海域上也会显示并出现导弹接近警告和导弹落地时间的倒计时,以及导弹与目标点的距离,同时导弹也会被定位并锁定,如果有反导导弹的话,可以进行导弹拦截,拦截不需要瞄准之类的,当拦截范围内有导弹时,点击发射会自动拦截,当有多个导弹时,可以选定一枚导弹进行拦截,导弹起飞需要时间,拦截也需要时间,所以就会发射有可能会拦截失败,比如说拦截导弹发射晚了,还没等击中目标时,导弹就已经到达目标点了,轰!另外,导弹到达到最高点时才会下落,拦截导弹只是单程起飞,下落到目标点的过程也需要时间,导弹只能攻击标记点内的一个目标,导弹不能连续发射,一局能使用的导弹有限,只有特定的舰船才能使用导弹,导弹装载的时间很长,伤害高,但是不能一击击毁敌舰,导弹的攻击范围与该船的雷达范围有关,拦截导弹也会被拦截,拦截导弹比导弹飞得快一点点,拦截导弹不能用来轰炸,导弹不能用来拦截,拦截范围比导弹发射范围要大的多,导弹发射时,该舰船不能进行任何操作,比如说甩鱼雷,开炮,起飞飞机,转向和移动,船在行驶时不能发射导弹,必须停下来才能发射导弹,导弹锁定目标海域内目标时,必须保证该目标能一直被侦测到,不然导弹就会失去目标,转变为标记海域内随机打击,随机打击造成的伤害没有锁定打击造成的伤害高,导弹能标记的目标海域的范围非常的小,只有一个方格,所以使用导弹需要预判。怎么样,这个关于导弹的设计够详细了吧?很抱歉,在下文笔不好,不能把我想的全部表达出来,另外,我是个脑补能力非常的强悍的玩家,导弹这个东西其实弄好了的话并不影响平衡,而且按照我说的弄的话,操作导弹攻击目标会特别考验技术,导弹这个东西在我的脑海里已经有了蓝图,希望可以传达给官方。我的话已经说完了,如果官方感兴趣的话请给我留言回话,小弟不胜感激。那么,在下先行告退了,住贵公司开发顺利,造福玩家,一举顶下《战舰猎手》、《战舰联盟》等。(Tips:这篇帖子以后还会更新更多奇葩舰种的实装设计,敬请期待吧!)
说说你游几个不科学的设计:只要你按住方向舵区域在屏幕任何地方点击都可以调方向(苦笑)放大放大放大放大放大&&wc开镜了?鱼雷和高爆穿甲合并在一个栏里,导致不能快(ji)速(dong)切换[驱逐舰地位-999]调速度的区域没有卡点导致不能停船还不能倒船入库(jian笑)方向舵不是一整个舵结果操作不顺畅但是有卡点可以十几个方向旋转倒是挺好(@舰L)双指触屏时的N种误触&&你甚至可以用重复输一遍同样的**码调出荧光色(@美术组)截图时设计时设计开阴影时试航时的玄学色差(再次@色弱美术组)好了完了(尴尬5秒)顺便问一下公测的时候会不会有bgm?( ̄▽ ̄)
今天刚玩这游戏,怎么说呢,个人认为有几个方面还不够完善吧。一,运行方面,偶有点追求画质,但是又想运行流畅,显然这不怎么可能。二,画质方面,感觉游戏里的地形不怎么好看,或许说真实,偶尔打出去的炮弹看上去有点斜。三,建造方面,这也是我喜欢这游戏的重要原因,就我个人而言,不怎么懂某一些船的部件的作用,还有,模块太多,这个我也不知道是优点还是缺点,只能是gm考虑比较全面,但是对于新手来说,就有点看不过来了,而且模块有点小。视角问题,在船头或者船尾摆放东西或者调整位置,很难从某一视角拉近距离,看着比较难受,希望能够双指调视角(这个比较难描述)。偶玩的时间不怎么长,以上只是个人观点,不喜勿喷。
本身非常不错了,很适合喜欢自己动手设计的玩家(mc玩家表示这点不是难题)。武器以及装饰方面都已经有了,还挺齐全的,很容易找。不过优化还是得加强,不想低画质高了又卡,手机问题还是游戏问题我不清楚,不过这不会太影响。比较重要一点是设计过程,舰首旗杆没法放正中央,然后突然有一个标志红点结果就没法移动视角,不知道是不是bug。然后就是感觉设计的时候感觉很奇怪,如果在添加方块界面放大缩小拖动都会顺便放置方块,觉得可以让视角操作优先于放置,拖动的时候不要增加放置操作。还有不能左右移动视角挺难受,想设计一个战列舰,200m长这头望不到那头。。。希望增加个左右移动。最后一点就是,辅助设计之后,甲板不分你我的,希望设计的时候把一个个格子都标记出来,不然很难判断怎么放可以放在正中。目前就到这里,设计3分钟就要退出保存再进,加载时间又挺长的,所以进度很慢。。(想造个厌战怎么这么难QAQ)&&&&&&对了对了,还有一个问题,舰首舰尾弯曲地方栅栏似乎没法过渡?其实感觉不如视角增加一个像在飞空中的人的视角一样的(不太会描述2333),不需要放大缩小那样,对于精细一点的地方也好操作一点
开着自己diy的船很有意思非常有想法,从我的世界再到简单飞机再到像素车再到喵星大作战等这类型游戏我都很感兴趣。不过控制手感和界面人性化问题真的有不少,开镜最好有单独按键,会大大减少误触问题。再者diy时有些生硬这方面不足可以参考简单飞机。另外讲下物理机制,打造船体的时候发现舵效跟吨位基本无关,6000t的驱逐跟30000t的战列舵效完全一样导致只能往结实厚实上堆数据,小船的特性与大船的优势没有展现。另外还是驱逐问题,图太大造的驱逐刚要接近对面bb游戏就结束了,鱼雷的速度真的很慢,没有鱼雷应有的威慑力,dd用41节的速度追鱼雷不算太难。这游戏真的超吃配置,玩家对战画面全开8895掉针很严重,建议玩家们组船时可以全开,对战时画面调到中等会减少掉针情况。最后就是游戏玩家太少了,多拉点人来玩,希望游戏越办越好!
挺不错的一款游戏,只是玩的时候匹配的人数太少,emm&&画质来说海星
游戏是个好游戏,之前玩了一下,4星,一星掉在造船操作困难??
换手机后 安卓8.0 夏普s2 启动黑屏 版本2.180701。。。
很早以前玩过battleship craft这个游戏,从最开始的一艘小船,然后慢慢升级到一艘有105炮的&战舰&,然后依靠刷&夜战(同时打3个船晚上)&那个图赚钱,然后慢慢改装自己的战舰。后来觉得刷着太无聊了,就照着网上的修改攻略把第一关小船得的钱改为999999,然后一夜暴富(那个时候该不会内购破解就没有钻石买宙斯盾,零式这种),就开始慢慢造出自己想象中的那艘船。一旦改装完就去狂揍大和,直到能和大和硬刚为止。后来接触到了汉化版工艺战舰,也在贴吧上学到了很多列如水槽这种以前不知道的技术,还知道了其实不是炮多,排水量大就可以制霸,不是发动机多,螺旋桨多就跑得快这种道理。后来用蒸汽轮机加轻型装甲和mk炮造了一艘跑的巨快的&快艇&,居然可以吊打大和。那个时候确实好玩。后来换了手机之后,曾想要继玩这个游戏,但再也找不到当初造船的感觉了。Ps:(还记得那年曾经因为在船上放了一堆炮,我说能吊打王座级,结果发出来被贴吧某个小吧喷了一顿,然后我和他对喷被禁言,后来就没再上过贴吧玩这游戏了)
我身份证被人注册了?!?!我天,我现在慌的一匹
还是操控的问题,安卓版操控还是太繁琐了,经常组建放不到位,前后移动视图的时候又经常变成放大缩小,而且一放大就很难缩回去,因为手上拿着组件,一不小心就放上去了,或者不停的点到别的组件。有时候组件很难对齐,也不知道是不是故意的。给的几个模板都太复杂了,根本不知道怎么修改,一改船体组件就沉也没看到游戏里有什么如何使船只拥有动力和火力的教程。建议加几个有动力的船体的模板,各个船种都要有,巡洋舰,驱逐舰啥的,剩下的给玩家自己发挥。实话说,这游戏做得有点太认真了,我不认为会有很多人花时间的还原历史战舰,现在休闲党还是主流,所以还是把游戏搞简单一点好,不然战斗没人打,有人也是几艘一样的船。这游戏特色就在创造,我觉得还是要鼓励大家去创造大家自己独有的战舰比较好。总之,我觉得要做好这款游戏,赢得很多玩家的喜爱,还是要做到便于操控和玩法简单易懂。期待更好的工艺战舰。
windows7 pc.版本不兼容?
我就想知道大概什么时候上架这款游戏
在那里下裁???
现在是凌晨十二点七分,连着我们家1200兆光纤,看着百度云盘70kb/s的我陷入了沉思。游戏还没玩,我其实是很讨厌用百度迅雷这种下载器下东西的,原因无他,就像那些氪金游戏不充钱永远打不过,这些就是不充钱别想下完。没法,在浏览器上一直都是下载不成功...算了,先下完玩两把吧
为什么我的船一直在计算造价,花了一早造了条船建不了。是造价数据太昂贵了么。游戏还不错,虽然还没有参加实战,唯一的一条船还在计算造价中。总体就是手机上设计有点累,模块太小,转化视角等等,操作有点难受。其他都挺好的,玩法很新颖。希望官方加油↖(^&^)↗好了,我去看看我的船造价算好了没?
之前在苹果机上玩过类似的游戏,感觉很不错。后来在TapTap上看到了这个游戏,我就下来玩了。感觉有些东西没有做好。1,像是测距仪之类的小东西就只是一个装饰,根本不与主炮联动。2,还是装饰问题,雷达为什么不动?3,飞机!飞机!飞机!重要的事情说三遍!没有航妈就是一条咸鱼,而且BB也要水上飞机来侦查的啊!4,瞄准的问题,因为我还下了个PC端,所以,电脑上瞄准实在是太难了!拖来拖去的。而且放大缩小的操作弄得我很难受。用不惯这种操作模式,我的提议是:直接把观测点固定在测距仪上,环视与瞄准分开,用按键切换避免误触。5,动力系统的设定问题,这个问题弄得我每次设计战舰都要搞一堆烟囱,在阻力系数只有0.4-0.5舰艇吨位1w出头时,要达到30节要起码3-5根烟囱,那还玩的了吗?全部吨位都用来放烟囱了。希望能赶快实装动力系统。我要鸭滑主机!6,有些模块的实际大小与放置时计算的大小不一致,导致如栏杆一类的小装饰物很难放置。7,像舷台这种本应能放置物品的类装饰物上面根本放不了东西,或是放上去了就浮空在上面了,求这个问题能早日解决。此外有些东西的穿模太严重了(让我这个强迫症患者十分难受),还有武器装备太少啦,辅助设计模块没有设计完全啦(像KSP中的定心),舰桥模块也有很多东西没做出来(如廊道)。当然,这个游戏还是有很多值得称道的地方的,像自定义模块(虽然还待优化),舰体的辅助设计和多人对战(这个的设计一定要小心,因为有前车之鉴),然后祝愿这个游戏能够开花结果,越来越火。
下个版本你游能让船轴像基本船体那样自由拉伸吗。
一天一款全球精品游戏推荐,活跃的玩家交流社区
只收录官方包,不联运,支持安卓正版游戏购买
倡导真实评分评价,排行榜单来自玩家真实反馈
发现好游戏
二维码下载
请先后,再进行操作
便捷下载及更新游戏发现更多精彩游戏更丰富的社区动态高效找到感兴趣的游戏
更安全可靠的官方正版下载
活跃的玩家交流社区
发现更多精彩游戏
该标签不适合此游戏
广告或垃圾信息
工艺战舰:重聚
下载TapTap立即预约
第一时间下载玩游戏
工艺战舰:重聚
【游戏简介】
《工艺战舰-重聚》是茕海开发组使用Unity
将下方的代码复制并粘贴到你的网站来展示上述 Widget
微信&扫一扫&,点击
扫一扫手机浏览&figure&&img src=&https://pic4.zhimg.com/v2-5b1d422dec17bb7f1dd20dd6f35206b9_b.jpg& data-rawwidth=&1198& data-rawheight=&623& class=&origin_image zh-lightbox-thumb& width=&1198& data-original=&https://pic4.zhimg.com/v2-5b1d422dec17bb7f1dd20dd6f35206b9_r.jpg&&&/figure&&p&2017年10月,AlphaGo Zero横空出世,完全从零开始,仅通过自我对弈就能天下无敌,瞬间刷爆朋友圈,各路大神分分出来解读,惊叹于其思想的简单、效果的神奇。很快就有大神放出了开源版的AlphaGo Zero,但是只有代码,没有训练出来的模型,因为据大神推算,在普通消费级的电脑上想训练出AlphaGo Zero的模型需要&b&1700年!&/b&然而DeepMind在AlphaGo Zero的论文里只强调运行的时候需要4个TPU,而完全没有提及训练过程的最大计算需求在于生成self-play数据,还引起了一点小争议。还好,过了不到两个月,在12月初,DeepMind就在Arxiv上低调放出了更加通用的AlphaZero的论文。AlphaZero几个小时就征服围棋、国际象棋和日本将棋的壮举再次惊叹世人,但同时DeepMind大方公开的self-play阶段使用的5000个TPU也让大家纷纷感叹,原来是&b&“贫穷限制了我们的想象力”!&/b&&/p&&p&扯得有点远了,让我们回到这篇文章的正题:&b&AlphaZero实战&/b&,通过自己动手从零训练一个AI,去体会AlphaZero自我对弈学习成功背后的关键思想和一些重要技术细节。这边选择了五子棋作为实践对象,因为五子棋相对比较简单,大家也都比较熟悉,这样我们能更专注于AlphaZero的训练过程,同时也能通过亲自对阵,来感受自己训练出来的AI慢慢变强的过程。经过实践发现,对于在6*6的棋盘上下4子棋这种情况,大约通过500~1000局的self-play训练(2小时),就能训练出比较靠谱的AI;对于在8*8的棋盘上下5子棋这种情况,通过大约局自我对弈训练(2天),也能得到比较靠谱的AI。所以虽然贫穷,但我们还是可以去亲身感受最前沿成果的魅力!完整代码以及4个训练好的模型已经上传到了github:&a href=&https://link.zhihu.com/?target=https%3A//github.com/junxiaosong/AlphaZero_Gomoku& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&github.com/junxiaosong/&/span&&span class=&invisible&&AlphaZero_Gomoku&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&我们先来看两局训练好的AI模型(3000局self-play训练得到)对弈的情况,简单感受一下:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-54ecff5acf2c_b.jpg& data-size=&normal& data-rawwidth=&480& data-rawheight=&480& data-thumbnail=&https://pic4.zhimg.com/v2-54ecff5acf2c_b.jpg& class=&origin_image zh-lightbox-thumb& width=&480& data-original=&https://pic4.zhimg.com/v2-54ecff5acf2c_r.jpg&&&figcaption&每一步棋执行400次MCTS模拟&/figcaption&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-a814c8dccdf01b05c482d1b04db09c5a_b.jpg& data-size=&normal& data-rawwidth=&480& data-rawheight=&480& data-thumbnail=&https://pic4.zhimg.com/v2-a814c8dccdf01b05c482d1b04db09c5a_b.jpg& class=&origin_image zh-lightbox-thumb& width=&480& data-original=&https://pic4.zhimg.com/v2-a814c8dccdf01b05c482d1b04db09c5a_r.jpg&&&figcaption&每一步棋执行800次MCTS模拟&/figcaption&&/figure&&p&从上面的对局样例可以看到,AI已经学会了怎么下五子棋,知道什么时候要去堵,怎么样才能赢,按我自己对阵AI的感受来说,要赢AI已经不容易了,经常会打平,有时候稍不留神就会输掉。这里有一点需要说明,上面展示的两局AI对弈中,AI执行每一步棋的时候分别只执行了400次和800次MCTS模拟,进一步增大模拟次数能够显著增强AI的实力,参见AlphaZero论文中的Figure 2(注:AlphaZero在训练的时候每一步只执行800次MCTS simulations,但在评估性能的时候每一步棋都会执行几十万甚至上百万次MCTS模拟)。&/p&&p&下面,我结合AlphaZero算法本身,以及github上的具体实现,从自我对局和策略价值网络训练两个方面来展开介绍一下整个训练过程,以及自己实验过程中的一些观察和体会。&/p&&h2&自我对局(self-play)&/h2&&figure&&img src=&https://pic4.zhimg.com/v2-b9d79ba9ece22e5c62ddc8b_b.jpg& data-size=&normal& data-rawwidth=&698& data-rawheight=&251& class=&origin_image zh-lightbox-thumb& width=&698& data-original=&https://pic4.zhimg.com/v2-b9d79ba9ece22e5c62ddc8b_r.jpg&&&figcaption&self-play过程示意图&/figcaption&&/figure&&p&完全基于self-play来学习进化是AlphaZero的最大卖点,也是整个训练过程中最关键也是最耗时的环节。这里有几个关键点需要说明:&/p&&p&&b&1. 使用哪个模型来生成self-play数据?&/b&&/p&&p&在AlphaGo Zero版本中,我们需要同时保存当前最新的模型和通过评估得到的历史最优的模型,self-play数据始终由最优模型生成,用于不断训练更新当前最新的模型,然后每隔一段时间评估当前最新模型和最优模型的优劣,决定是否更新历史最优模型。而到了AlphaZero版本中,这一过程得到简化,我们只保存当前最新模型,self-play数据直接由当前最新模型生成,并用于训练更新自身。直观上我们可能会感觉使用当前最优模型生成的self-play数据可能质量更高,收敛更好,但是在尝试过两种方案之后,我们发现,在6*6棋盘上下4子棋这种情况下,直接使用最新模型生成self-play数据训练的话大约500局之后就能得到比较好的模型了,而不断维护最优模型并由最优模型生成self-play数据的话大约需要1500局之后才能达到类似的效果,这和AlphaZero论文中训练34小时的AlphaZero胜过训练72小时的AlphaGo Zero的结果也是吻合的。个人猜测,不断使用最新模型来生成self-play数据可能也是一个比较有效的exploration手段,首先当前最新模型相比于历史最优模型一般不会差很多,所以对局数据的质量其实也是比较有保证的,同时模型的不断变化使得我们能覆盖到更多典型的数据,从而加快收敛。&/p&&p&&b&2. 如何保证self-play生成的数据具有多样性?&/b&&/p&&p&一个有效的策略价值模型,需要在各种局面下都能比较准确的评估当前局面的优劣以及当前局面下各个action的相对优劣,要训练出这样的策略价值模型,就需要在self-play的过程中尽可能的覆盖到各种各样的局面。前面提到,不断使用最新的模型来生成self-play数据可能在一定程度上有助于覆盖到更多的局面,但仅靠这么一点模型的差异是不够的,所以在强化学习算法中,一般都会有特意设计的exploration的手段,这是至关重要的。在AlphaGo Zero论文中,每一个self-play对局的前30步,action是根据正比于MCTS根节点处每个分支的访问次数的概率采样得到的(也就是上面Self-play示意图中的 &img src=&https://www.zhihu.com/equation?tex=a_t+%5Csim+%5Cbold%7B%5Cpi_t%7D& alt=&a_t \sim \bold{\pi_t}& eeimg=&1&& ,有点类似于随机策略梯度方法中的探索方式),而之后的exploration则是通过直接加上Dirichlet noise的方式实现的( &img src=&https://www.zhihu.com/equation?tex=P%28s%2Ca%29%3D%281-%5Cvarepsilon%29P_a+%2B+%5Cvarepsilon%5Ceta_a& alt=&P(s,a)=(1-\varepsilon)P_a + \varepsilon\eta_a& eeimg=&1&& ,有点类似于确定性策略梯度方法中的探索方式)。在我们的实现中,self-play的每一步都同时使用了这两种exploration方式,Dirichlet noise的参数取的是0.3,即 &img src=&https://www.zhihu.com/equation?tex=%5Cboldsymbol%5Ceta+%5Csim+%5Cmathrm%7BDir%7D%280.3%29& alt=&\boldsymbol\eta \sim \mathrm{Dir}(0.3)& eeimg=&1&& , 同时 &img src=&https://www.zhihu.com/equation?tex=%5Cvarepsilon%3D0.25& alt=&\varepsilon=0.25& eeimg=&1&& .&/p&&p&&b&3. 始终从当前player的视角去保存self-play数据&/b&&/p&&p&在self-play过程中,我们会收集一系列的 &img src=&https://www.zhihu.com/equation?tex=%28s%2C+%5Cpi%2C+z%29& alt=&(s, \pi, z)& eeimg=&1&& 数据, &img src=&https://www.zhihu.com/equation?tex=s& alt=&s& eeimg=&1&& 表示局面, &img src=&https://www.zhihu.com/equation?tex=%5Cpi+& alt=&\pi & eeimg=&1&& 是根据MCTS根节点处每个分支的访问次数计算的概率, &img src=&https://www.zhihu.com/equation?tex=z& alt=&z& eeimg=&1&& 是self-play对局的结果,其中 &img src=&https://www.zhihu.com/equation?tex=s& alt=&s& eeimg=&1&& 和 &img src=&https://www.zhihu.com/equation?tex=z& alt=&z& eeimg=&1&& 需要特别注意从每一步的当前player的视角去表示。比如 &img src=&https://www.zhihu.com/equation?tex=s& alt=&s& eeimg=&1&& 中用两个二值矩阵分别表示两个player的棋子的位置,那么可以是第一个矩阵表示当前player的棋子位置,第二个矩阵表示另一个player的棋子位置,也就是说第一个矩阵会交替表示先手和后手player的棋子位置,就看 &img src=&https://www.zhihu.com/equation?tex=s& alt=&s& eeimg=&1&& 局面下谁是当前player。 &img src=&https://www.zhihu.com/equation?tex=z& alt=&z& eeimg=&1&& 也类似,不过需要在一个完整的对局结束后才能确定这一局中每一个 &img src=&https://www.zhihu.com/equation?tex=%28s%2C+%5Cpi%2C+z%29& alt=&(s, \pi, z)& eeimg=&1&& 中的 &img src=&https://www.zhihu.com/equation?tex=z& alt=&z& eeimg=&1&& ,如果最后的胜者是 &img src=&https://www.zhihu.com/equation?tex=s& alt=&s& eeimg=&1&& 局面下的当前player,则 &img src=&https://www.zhihu.com/equation?tex=z%3D1& alt=&z=1& eeimg=&1&& ,如果最后的败者是 &img src=&https://www.zhihu.com/equation?tex=s& alt=&s& eeimg=&1&& 局面下的当前player,则 &img src=&https://www.zhihu.com/equation?tex=z%3D-1& alt=&z=-1& eeimg=&1&& ,如果最后打平,则 &img src=&https://www.zhihu.com/equation?tex=z%3D0& alt=&z=0& eeimg=&1&& .&/p&&p&&b&4. self-play数据的扩充&/b&&/p&&p&围棋具有旋转和镜像翻转等价的性质,其实五子棋也具有同样的性质。在AlphaGo Zero中,这一性质被充分的利用来扩充self-play数据,以及在MCTS评估叶子节点的时候提高局面评估的可靠性。但是在AlphaZero中,因为要同时考虑国际象棋和将棋这两种不满足旋转等价性质的棋类,所以对于围棋也没有利用这个性质。而在我们的实现中,因为生成self-play数据本身就是计算的瓶颈,为了能够在算力非常弱的情况下尽快的收集数据训练模型,每一局self-play结束后,我们会把这一局的数据进行旋转和镜像翻转,将8种等价情况的数据全部存入self-play的data buffer中。这种旋转和翻转的数据扩充在一定程度上也能提高self-play数据的多样性和均衡性。&/p&&h2&策略价值网络训练&/h2&&figure&&img src=&https://pic2.zhimg.com/v2-201a97a7e1cf0bebef5abf7_b.jpg& data-size=&normal& data-rawwidth=&690& data-rawheight=&368& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&https://pic2.zhimg.com/v2-201a97a7e1cf0bebef5abf7_r.jpg&&&figcaption&策略价值网络训练示意图&/figcaption&&/figure&&p&所谓的策略价值网络,就是在给定当前局面 &img src=&https://www.zhihu.com/equation?tex=s& alt=&s& eeimg=&1&& 的情况下,返回当前局面下每一个可行action的概率以及当前局面评分的模型。前面self-play收集到的数据就是用来训练策略价值网络的,而训练更新的策略价值网络也会马上被应用到MCTS中进行后面的self-play,以生成更优质的self-play数据。两者相互嵌套,相互促进,就构成了整个训练的循环。下面还是从几个点分别进行说明:&/p&&p&&b&1. 局面描述方式&/b&&/p&&p&在AlphaGo Zero中,一共使用了17个 &img src=&https://www.zhihu.com/equation?tex=19%5Ctimes19& alt=&19\times19& eeimg=&1&& 的二值特征平面来描述当前局面,其中前16个平面描述了最近8步对应的双方player的棋子位置,最后一个平面描述当前player对应的棋子颜色,其实也就是先后手。在我们的实现中,对局面的描述进行了极大的简化,以 &img src=&https://www.zhihu.com/equation?tex=8%5Ctimes8& alt=&8\times8& eeimg=&1&& 的棋盘为例,我们只使用了4个 &img src=&https://www.zhihu.com/equation?tex=8%5Ctimes8& alt=&8\times8& eeimg=&1&& 的二值特征平面,其中前两个平面分别表示当前player的棋子位置和对手player的棋子位置,有棋子的位置是1,没棋子的位置是0. 然后第三个平面表示对手player最近一步的落子位置,也就是整个平面只有一个位置是1,其余全部是0. 第四个平面,也就是最后一个平面表示的是当前player是不是先手player,如果是先手player则整个平面全部为1,否则全部为0. 其实在最开始尝试的时候,我只用了前两个平面,也就是双方的棋子的位置,因为直观感觉这两个平面已经足够表达整个完整的局面了。但是后来在增加了后两个特征平面之后,训练的效果有了比较明显的改善。个人猜想,因为在五子棋中,我方下一步的落子位置往往会在对手前一步落子位置的附近,所以加入的第三个平面对于策略网络确定哪些位置应该具有更高的落子概率具有比较大的指示意义,可能有助有训练。同时,因为先手在对弈中其实是很占优势的,所以在局面上棋子位置相似的情况下,当前局面的优劣和当前player到底是先手还是后手十分相关,所以第四个指示先后手的平面可能对于价值网络具有比较大的意义。&/p&&p&&b&2. 网络结构&/b&&/p&&p&在AlphaGo Zero中,输入局面首先通过了20或40个基于卷积的残差网络模块,然后再分别接上2层或3层网络得到策略和价值输出,整个网络的层数有40多或80多层,训练和预测的时候都十分缓慢。所以在我们的实现中,对这个网络结构进行了极大的简化,最开始是公共的3层全卷积网络,分别使用32、64和128个 &img src=&https://www.zhihu.com/equation?tex=3%5Ctimes3& alt=&3\times3& eeimg=&1&& 的filter,使用ReLu激活函数。然后再分成policy和value两个输出,在policy这一端,先使用4个 &img src=&https://www.zhihu.com/equation?tex=1%5Ctimes1& alt=&1\times1& eeimg=&1&& 的filter进行降维,再接一个全连接层,使用softmax非线性函数直接输出棋盘上每个位置的落子概率;在value这一端,先使用2个 &img src=&https://www.zhihu.com/equation?tex=1%5Ctimes1& alt=&1\times1& eeimg=&1&& 的filter进行降维,再接一个64个神经元的全连接层,最后再接一个全连接层,使用tanh非线性函数直接输出 &img src=&https://www.zhihu.com/equation?tex=%5B-1%2C1%5D& alt=&[-1,1]& eeimg=&1&& 之间的局面评分。整个策略价值网络的深度只有5~6层,训练和预测都相对比较快。&/p&&p&&b&3. 训练目标&/b&&/p&&p&前面提到,策略价值网络的输入是当前的局面描述 &img src=&https://www.zhihu.com/equation?tex=s& alt=&s& eeimg=&1&& ,输出是当前局面下每一个可行action的概率 &img src=&https://www.zhihu.com/equation?tex=%5Cbold%7Bp%7D+& alt=&\bold{p} & eeimg=&1&& 以及当前局面的评分 &img src=&https://www.zhihu.com/equation?tex=v& alt=&v& eeimg=&1&& ,而用来训练策略价值网络的是我们在self-play过程中收集的一系列的 &img src=&https://www.zhihu.com/equation?tex=%28s%2C+%5Cboldsymbol%7B%5Cpi%7D%2C+z%29& alt=&(s, \boldsymbol{\pi}, z)& eeimg=&1&& 数据。根据上面的策略价值网络训练示意图,我们训练的目标是让策略价值网络输出的action概率 &img src=&https://www.zhihu.com/equation?tex=%5Cbold%7Bp%7D+& alt=&\bold{p} & eeimg=&1&& 更加接近MCTS输出的概率 &img src=&https://www.zhihu.com/equation?tex=%5Cboldsymbol%7B%5Cpi%7D& alt=&\boldsymbol{\pi}& eeimg=&1&& ,让策略价值网络输出的局面评分 &img src=&https://www.zhihu.com/equation?tex=v& alt=&v& eeimg=&1&& 能更准确的预测真实的对局结果 &img src=&https://www.zhihu.com/equation?tex=z& alt=&z& eeimg=&1&& 。从优化的角度来说,我们是在self-play数据集上不断的最小化损失函数: &img src=&https://www.zhihu.com/equation?tex=%5Cell%3D%28z-v%29%5E2-%5Cboldsymbol%5Cpi%5ET%5Cmathrm%7Blog%7D%5Cbold%7Bp%7D+%2B+c%7C%7C%5Ctheta%7C%7C%5E2+& alt=&\ell=(z-v)^2-\boldsymbol\pi^T\mathrm{log}\bold{p} + c||\theta||^2 & eeimg=&1&& ,其中第三项是用于防止过拟合的正则项。既然是在最小化损失函数,那么在训练的过程中,如果正常的话我们就会观察到损失函数在慢慢减小。下图展示的是一次在 &img src=&https://www.zhihu.com/equation?tex=8%5Ctimes8& alt=&8\times8& eeimg=&1&& 棋盘上进行五子棋训练的过程中损失函数随着self-play局数变化的情况,这次实验一共进行了3050局对局,损失函数从最开始的4点几慢慢减小到了2.2左右。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-1e2cc083bd25aa8a86e0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&569& data-rawheight=&338& class=&origin_image zh-lightbox-thumb& width=&569& data-original=&https://pic3.zhimg.com/v2-1e2cc083bd25aa8a86e0_r.jpg&&&/figure&&p&在训练过程中,除了观察到损失函数在慢慢减小,我们一般还会关注策略价值网络输出的策略(输出的落子概率分布)的entropy的变化情况。正常来讲,最开始的时候,我们的策略网络基本上是均匀的随机输出落子的概率,所以entropy会比较大。随着训练过程的慢慢推进,策略网络会慢慢学会在不同的局面下哪些位置应该有更大的落子概率,也就是说落子概率的分布不再均匀,会有比较强的偏向,这样entropy就会变小。也正是由于策略网络输出概率的偏向,才能帮助MCTS在搜索过程中能够在更有潜力的位置进行更多的模拟,从而在比较少的模拟次数下达到比较好的性能。下图展示的是同一次训练过程中观察到的策略网络输出策略的entropy的变化情况。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-eae5ef1d433b9c8dea6d76e43a30dc6f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&562& data-rawheight=&335& class=&origin_image zh-lightbox-thumb& width=&562& data-original=&https://pic4.zhimg.com/v2-eae5ef1d433b9c8dea6d76e43a30dc6f_r.jpg&&&/figure&&p&另外,在漫长的训练过程中,我们最希望看到的当然是我们训练的AI正在慢慢变强。所以虽然在AlphaZero的算法流程中已经不再需要通过定期评估来更新最优策略,在我们的实现中还是每隔50次self-play对局就对当前的AI模型进行一次评估,评估的方式是使用当前最新的AI模型和纯的MCTS AI(基于随机rollout)对战10局。pure MCTS AI最开始每一步使用1000次模拟,当被我们训练的AI模型10:0打败时,pure MCTS AI就升级到每一步使用2000次模拟,以此类推,不断增强,而我们训练的AlphaZero AI模型每一步始终只使用400次模拟。在上面那次3050局自我对局的训练实验中,我们观察到:&/p&&ul&&li&经过&b&550&/b&局,AlphaZero VS pure_MCTS &b&1000&/b& 首次达到&b&10:0&/b&&/li&&li&经过&b&1300&/b&局,AlphaZero VS pure_MCTS &b&2000&/b& 首次达到&b&10:0&/b&&/li&&li&经过&b&1750&/b&局,AlphaZero VS pure_MCTS &b&3000&/b& 首次达到&b&10:0&/b&&/li&&li&经过&b&2450&/b&局,AlphaZero VS pure_MCTS &b&4000&/b& 取得&b&8胜1平1负&/b&&/li&&li&经过&b&2850&/b&局,AlphaZero VS pure_MCTS &b&4000&/b& 取得&b&9胜1负&/b&。&/li&&/ul&&p&&br&&/p&&p&OK,到这里整个AlphaZero实战过程就基本介绍完了,感兴趣的小伙伴可以下载我&a href=&https://link.zhihu.com/?target=https%3A//github.com/junxiaosong/AlphaZero_Gomoku& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&github上的代码&/a&进行尝试。为了方便大家直接和已经训练好的模型进行对战体验,我专门实现了一个纯numpy版本的策略价值前向网络,所以只要装了python和numpy就可以直接进行人机对战啦,祝大家玩的愉快!^_^&/p&&p&&br&&/p&&p&参考文献:&/p&&ol&&li&AlphaZero: Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm&/li&&li&AlphaGo Zero: Mastering the game of Go without human knowledge&/li&&/ol&&p&&/p&
2017年10月,AlphaGo Zero横空出世,完全从零开始,仅通过自我对弈就能天下无敌,瞬间刷爆朋友圈,各路大神分分出来解读,惊叹于其思想的简单、效果的神奇。很快就有大神放出了开源版的AlphaGo Zero,但是只有代码,没有训练出来的模型,因为据大神推算,在…
&blockquote&19岁的梅西和19岁的姆巴佩&/blockquote&&figure&&img src=&https://pic3.zhimg.com/50/v2-c938f8adfae5c49f12c42f_b.jpg& data-rawwidth=&560& data-rawheight=&344& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&560& data-original=&https://pic3.zhimg.com/50/v2-c938f8adfae5c49f12c42f_r.jpg&&&/figure&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-f3122f6caca1d7_b.jpg& data-rawwidth=&461& data-rawheight=&243& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&461& data-original=&https://pic4.zhimg.com/50/v2-f3122f6caca1d7_r.jpg&&&/figure&&p&&br&&/p&&hr&&h2&【姆巴佩:一战封神】&/h2&&p&用一战成名来形容姆巴佩,非常不合适,毕竟他在一年前,就已经震惊全世界。&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-9f428daea5491_b.jpg& data-rawwidth=&639& data-rawheight=&332& data-caption=&& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&639& data-original=&https://pic4.zhimg.com/50/v2-9f428daea5491_r.jpg&&&/figure&&p&&br&&/p&&p&2016-17赛季,对阵曼城的八分之一决赛首战,首次在欧冠首发的姆巴佩打入1球,一发不可收拾的姆巴佩之后6场欧冠5次破门,共打入6球,唯一一场未能破门的比赛就是主场负于尤文一战。&/p&&p&上个赛季,和拜仁的比赛,让他成为最年轻的欧冠打进10球的球员;而1.8亿欧元的转会费,让他成为这个星球身价最高的年轻人。&/p&&p&冷静而大气的踢法,谦逊的性格,过人的技术,出色的速度,这个19岁的年轻人也毫无悬念的成为入选金球奖前十最年轻的球员。&/p&&p&但是他的荣耀时刻,注定要为大场面而生。可以说,阿根廷3-4法国的世界杯淘汰赛,是属于姆巴佩一个人的,陪衬他的是博格巴,格里兹曼和梅西。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-a316fc0f72f82b72971d5_b.jpg& data-rawwidth=&900& data-rawheight=&574& data-caption=&& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic1.zhimg.com/50/v2-a316fc0f72f82b72971d5_r.jpg&&&/figure&&p&&br&&/p&&p&&b&一战封神,我愿意这样来形容他。&/b&&/p&&p&开场阶段,他就让阿根廷的后防见识了什么叫风一般的速度,也让阿根廷体会到20年前,阿亚拉的感受,和18岁的欧文一样,姆巴佩用风驰电掣般的速度,制造了一粒点球;&/p&&p&&b&当比分来到2-2的时候,又是他在禁区内闪转腾挪,一个漂亮的趟球和射门,将比分改写为3-2;&/b&&/p&&p&&b&5分钟后,法国的快速反击,又是他跟上一脚干脆的射门,彻底杀死了比赛。&/b&&/p&&p&&b&2脚射门打进2球,制造一个点球,10次过人7次成功,他的光芒彻底掩盖了梅西和格里兹曼。&/b&&/p&&p&而他制造点球的那瞬间,让球迷似乎看到了当年的欧文,当年的亨利的,当年的大罗。&/p&&p&对手是梅西领衔阿根廷,队中有格里兹曼和博格巴这样的核心,还是世界杯淘汰赛,个人梅开二度,帮助球队反超和锁定胜局,制造点球帮助球队打开局面,这样的表现完全是”神“一般的存在。&/p&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-b968e3d4f4f6ae207de594e1cebac0e0_b.jpg& data-rawwidth=&900& data-rawheight=&600& data-caption=&& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic2.zhimg.com/50/v2-b968e3d4f4f6ae207de594e1cebac0e0_r.jpg&&&/figure&&p&&br&&/p&&p&就我个人而言,他是我看球以来,除了梅西之外,最有天赋的球员,甚至如果考虑技术之外的因素,他是我见过潜力最强的。&br&&/p&&p&从个人技术能力看,19岁的梅西和19岁的大罗比他更胜一筹。但他在出色个人盘带,出色的速度之外,传球意识,配合意识,射门意识,跑位意识,同样是顶级。&/p&&p&当然,我感受最深的是,他超出常人的情商。&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-a97c599a2be_b.jpg& data-rawwidth=&800& data-rawheight=&1422& data-caption=&& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic1.zhimg.com/50/v2-a97c599a2be_r.jpg&&&/figure&&p&&br&&/p&&p&比如,他很低调。在世界杯前接受采访时,他对几个热门球队前景是这样看的,谦逊和又务实。&/p&&blockquote&“让我们正视这一切吧。巴西、西班牙和德国比我们强那么一点。但是,在这种杯赛中,你永远不知道会发生什么。我们有天赋,但我们还没有证明自己,我们要夺冠。”&/blockquote&&p&去年夏天在转会大巴黎之前,他是这样看待目前的谈判局势的:&br&&/p&&blockquote&“当然了。教练知道我可以上场,我可以踢所有比赛,关于我未来的问题不会影响我的表现,虽说在赛季初时我的表现确实不好。但我试着不去找借口,试着认真专注,不管发生什么事。这桩转会也可能完成不了,我仍会留在摩纳哥。如果是这样,那我就错过了三场比赛。这真的很糟糕。因为这点我才想踢球。我当时很难过。但好吧,这是俱乐部的决定。我应该尊重俱乐部的所有决定。”&/blockquote&&p&当他被问到是否怨念摩纳哥的某些人时,他是这样回答的:&br&&/p&&blockquote&“没有,我不责怪任何人。我不知道这是不是一个优点,但我能够为他人设身处地着想。也许处在他们的位置上,我也会做同样的事。”&/blockquote&&p&而在接受采访时,他被问到了格里兹曼的地位,他毫无犹豫肯定了对方的地位:&/p&&blockquote&“在我看来,16年欧洲杯的时候,格列兹曼就是法国队的头牌了。格列兹曼在本土举办的欧洲杯上收获最佳射手,他向全世界展示了自己能够承受压力。”&/blockquote&&p&就连梅开二度,一战封神之后,他在接受采访时也是这样说的:&/p&&blockquote&&b&我很开心,感觉好极了,我们说过团结一致,我们就能踢出很棒的结果。我不是法国队的代言人,有些球员才是领袖。&/b&&/blockquote&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-98ac7bd49ecac8196cea18b_b.jpg& data-rawwidth=&900& data-rawheight=&600& data-caption=&& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic1.zhimg.com/50/v2-98ac7bd49ecac8196cea18b_r.jpg&&&/figure&&p&&br&&/p&&p&你能想象这是一个19岁少年说出的话吗,他展现出了和这个年纪完全不符合的成熟。&/p&&p&所以我很期待,姆巴佩能够登顶金球奖的那一天。&/p&&p&最后,心疼一波内马尔,你永远躲不掉世界第一人的阴影&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-faffd0ac74ae5fa0f5103e1_b.jpg& data-rawwidth=&64& data-rawheight=&64& data-caption=&& data-size=&normal& class=&content_image& width=&64&&&/figure&&p&&br&&/p&&p&皇马,你们什么时候出手呢?&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-fefbb5b5c34dc6d294bbdde_b.jpg& data-rawwidth=&560& data-rawheight=&298& data-caption=&& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&560& data-original=&https://pic4.zhimg.com/50/v2-fefbb5b5c34dc6d294bbdde_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-06f2b01d0de9fec11ff253f5d947ec94_b.jpg& data-rawwidth=&1000& data-rawheight=&700& data-caption=&& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic1.zhimg.com/50/v2-06f2b01d0de9fec11ff253f5d947ec94_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-84dd4cae34ed_b.jpg& data-rawwidth=&853& data-rawheight=&1348& data-caption=&& data-size=&normal& class=&origin_image zh-lightbox-thumb& width=&853& data-original=&https://pic4.zhimg.com/50/v2-84dd4cae34ed_r.jpg&&&/figure&&p&&br&&/p&&p&-END-&/p&
19岁的梅西和19岁的姆巴佩 【姆巴佩:一战封神】用一战成名来形容姆巴佩,非常不合适,毕竟他在一年前,就已经震惊全世界。 2016-17赛季,对阵曼城的八分之一决赛首战,首次在欧冠首发的姆巴佩打入1球,一发不可收拾的姆巴佩之后6场欧冠5次破门,共打入6球…
&figure&&img src=&https://pic3.zhimg.com/v2-4e4dc0b74a441ea3763ebd74b69393eb_b.jpg& data-rawwidth=&1800& data-rawheight=&1000& class=&origin_image zh-lightbox-thumb& width=&1800& data-original=&https://pic3.zhimg.com/v2-4e4dc0b74a441ea3763ebd74b69393eb_r.jpg&&&/figure&&p&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-04ac6bca70d9bd94910a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1368& data-rawheight=&398& class=&origin_image zh-lightbox-thumb& width=&1368& data-original=&https://pic3.zhimg.com/v2-04ac6bca70d9bd94910a_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-2c117f67a109df48a1cf6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&680& data-rawheight=&188& class=&origin_image zh-lightbox-thumb& width=&680& data-original=&https://pic3.zhimg.com/v2-2c117f67a109df48a1cf6_r.jpg&&&/figure&&p&&br&&/p&&p&今天是高考第一天,越来越多的家长问我孩子网瘾的问题。&/p&&p&&br&&/p&&p&我作为一名从业多年的资深游戏策划,首先得说个现实,商业化的网络游戏,无不是为让玩家沉迷所设计的。&/p&&p&&br&&/p&&p&&b&为了让玩家沉迷,我们做的功课比各位父母要深入的多,这根本不是一个维度的对抗,所以无奈是大多数父母的感受。&/b&&/p&&p&&br&&/p&&p&我们非常清楚你的儿子想要什么,愿意付出什么,以及什么是他喜欢的。百万玩家的数据和调研在我们的数据平台上随时可查,我们的每一个改动都和数据有关,我相信我比你更了解你的儿子的喜好。&/p&&p&&br&&/p&&p&作为一个游戏策划,这是我的工作,但作为一个家长,我儿子也读小学了,但他却没有对游戏成瘾。&/p&&p&&br&&/p&&p&&b&说句不好听的,引导玩家和教育儿子没有本质的区别,而在引导玩家这件事上,我经验丰富。&/b&&/p&&p&&br&&/p&&p&&br&&/p&&h2&&b&&i&家长要端正态度&/i&&/b&&/h2&&p&&br&&/p&&p&很多问我,作为游戏策划,你的儿子玩不玩游戏?&br&&/p&&p&&br&&/p&&p&很多家长都问过我这事,有意思的是我一回还遇到一个亲戚说:你这个做游戏的,还让自己儿子也玩游戏,你怎么想的,赚钱赚的脑子拎不清了?&/p&&p&&br&&/p&&p&我只能苦笑,这个亲戚的儿子沉迷LOL,住校时晚上翻墙去网吧,房间里贴着亚索和劫的海报,上回暑假见过一回,我和他聊的话题是Faker明年到底会不会服兵役,不过没聊几句他的母亲就如临大敌。&/p&&p&&br&&/p&&p&真想要让孩子摆脱网瘾,做家长的自己首先要端正态度,如果只把游戏当做洪水猛兽,不去深入了解,逃避只会让事越来越大。&/p&&p&&br&&/p&&p&我儿子当然玩游戏,非但给他玩,我还买更好的游戏让他体验。&/p&&p&&br&&/p&&p&最开始玩植物大战僵尸和我的世界,去年开始玩王者荣耀,不过给他买了switch后,开始玩塞尔达了,而现在在玩奥德赛。&/p&&p&&br&&/p&&p&为什么他不和同龄人一起玩王者荣耀?&/p&&p&&br&&/p&&p&&b&当你见识过越多,就对越低级的刺激不敏感&/b&,就像没有人一边玩《塞尔达》一边玩《贪玩蓝月》一样,人的阈值会越来越高,逐渐对低质量游戏变得不感冒。&/p&&p&&br&&/p&&p&禁止孩子玩游戏是不现实的,但是可以选择合适的游戏让他体验,高质量的游戏教会的并不比书本要少。&/p&&p&&br&&/p&&p&王者荣耀他也玩,但对他更像是一个社交工具,他逐渐觉得并不需要靠王者才能获得社交和认同感。&/p&&p&&br&&/p&&p&很多人对见识的增长都来源于年龄,但是这样太花费时间了,当你帮助他见识过什么是更好的东西,低级的刺激对他就没有意义。&/p&&p&&br&&/p&&p&好比作为一个成年人,钱对我的乐趣比玩游戏可带劲多了,马云却认为钱对他没有意义。&/p&&p&&br&&/p&&p&&br&&/p&&p&亲戚家的娃儿在被压抑了一个月后就彻底爆发了,在LOL赛季结束前跑出去通宵了三天,被抓回来就一顿毒打。不过他却并没有后悔,他和我说上到钻石了,有钻石框可以领。&/p&&p&&br&&/p&&p&甚至我的舅舅,作为一个电工每个月有五六千的收入,但至今还迷恋着游戏厅,每个月存一千块在饭卡里吃饭以外,全部花在了里面,没有结婚讨老婆,住在宿舍里。&/p&&p&&br&&/p&&p&我曾和他说过现在电脑上游戏好玩多了,你自个拉个宽带在家玩不是挺好的还省钱,但他却并不相信。&/p&&p&&br&&/p&&p&玩游戏不是原罪,哪怕没有游戏,还有番剧、网络小说,只要它比读书有意思,就足够所谓“毁掉一个年代的孩子”。&/p&&p&&br&&/p&&p&我小时候也有“电视病”,我爸见我一天到晚看电视也叹气,这娃迟早要完,现在他老人家最爱的事,就是上本地的游戏平台打打麻将下下棋,绝口不提沉迷的事儿。&/p&&p&&br&&/p&&p&&b&眼界的提升,让人发觉过去非常执着于喜欢的东西,不过是沧海一粟。&/b&&/p&&p&&br&&/p&&p&当策划已经在拆解马斯洛需求,尊重和自我实现在游戏中如何体现的时候,父母只是指望孩子突然自己开窍,就像是弹弓射大炮。&/p&&p&&br&&/p&&p&&br&&/p&&h2&&i&&b&沉迷游戏的本质&/b&&/i&&/h2&&p&&br&&/p&&p&你有没有想过,你的孩子为什么一开始会选择玩一款游戏?&/p&&p&&br&&/p&&p&游戏是一个把复杂事物条理化的产物,游戏的很多玩法的设计都源于生活、来自于人性,只不过设计者将规则设计得比现实更清晰、反馈更明确、更洞悉玩家的想法。&/p&&p&&br&&/p&&p&所以玩家在游戏中会有爽、满足、实现了的快感,这是在现实中难以获得的。&/p&&p&&br&&/p&&p&商业化的网络游戏,新手引导是一个非常重要的环节。&/p&&p&&br&&/p&&p&简单来说,就是设计非常多的细节目标,让玩家按部就班的达成,并给予奖励的过程,以达到上手游戏的目的。&/p&&p&&br&&/p&&p&同样是让你的儿子学东西,游戏策划通常花费数月把每一个环节都以数据为指标来打磨,大到整个流程,小到一个按钮,都是为了你儿子能继续玩下去。&/p&&p&&br&&/p&&p&&b&相信设计者是专业的,绝大多数家长都没有的耐心。&/b&&/p&&p&&br&&/p&&p&这个指标,及格线一般是第二天保证40%以上的玩家能再上线,我们称为次日留存。相同还有七日留存,所以说为什么游戏往往都有7日签到,或者30日签到。&/p&&p&&br&&/p&&p&我给我儿子同样定了一套上学的新手引导,在三年级刚上英语课的时候,我只需要他及格,便奖励他一个月的零花钱翻倍。&/p&&p&&br&&/p&&p&他们班只有不到六个人不及格,他很轻松的完成了目标,我立刻给他兑现了奖励。&/p&&p&&br&&/p&&p&&b&在游戏行业我们管这叫首充,只需充值几块钱,可以享受数倍于你充值的奖励。因为我们发现,只要充过一次钱的玩家,充第二第三次的概率非常高。&/b&&/p&&p&&br&&/p&&p&玩家始终需要被引导,不然就很容易离开游戏,孩子也一样。&/p&&p&就像七日登录,又比如每个赛季你上了黄金段位就送你的英雄皮肤。&/p&&p&&br&&/p&&p&每一次目标无需太难,太难会适得其反,保持在一个个稳定的画饼-完成-奖励再画饼的小循环中,让人始终在追求。&br&&/p&&p&&br&&/p&&p&兑现奖励后,我要求他拿70分,除了零花钱以外,只要他愿意每天记几个单词,我每天都会愿意让他玩一会游戏。&/p&&p&&br&&/p&&p&一旦他进入了这个循环体系,成绩变好只是一个结果。&/p&&p&&br&&/p&&p&&br&&/p&&h2&&b&&i&引导孩子的技巧&/i&&/b&&/h2&&p&&br&&/p&&p&&b&[标签法]&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p&之前有不少家长找到我,说我的儿子沉迷游戏,但当我问你儿子在玩什么游戏的时候,十个里面九个不知道。&br&&/p&&p&&br&&/p&&p&就好像我儿子喜欢吃一道菜,但是这道菜我却闻所未闻,也就无从下手了。&/p&&p&&br&&/p&&p&换到孩子玩游戏这件事上来,&b&家长觉得游戏太厉害束手无策,其实本质上还是对它的不了解。&/b&知己知彼的道理大家都懂,可就是没人知道第一步要怎么做,下面我来讲几个技巧。&/p&&p&&br&&/p&&p&第一步:贴标签。&/p&&p&&br&&/p&&p&人们反感别人给自己贴标签,但往往会给自己贴标签,这是一个快速定义自己的一个好办法。&/p&&p&&br&&/p&&p&比如我妈,我给她定义的是中年、母亲、退休、广场舞、小城市。&/p&&p&通过这几个标签,大约可以猜到她的社交范围是广场舞的阿姨大妈和小区里退休的前同事,以及各路兄弟姐妹亲戚。&/p&&p&&br&&/p&&p&你会发现,光看“母亲”是看不出信息量的,&b&标签之间是有联系的,标签越多,就越能准确的定义一个人的特点。&/b&&/p&&p&&br&&/p&&p&为了博我母亲开心,前年我带父母去了一趟长滩岛,那里低廉的消费,酸爽的SPA,新鲜的水果和干净的沙滩让人非常享受,但我爸妈更享受的是回国之后和亲戚朋友们的谈资。&/p&&p&&br&&/p&&p&这趟出国旅行,在她们的社交圈里,成了有孝心、档次高、会享受和生活充实丰富的代名词。这种小地方上的社交愉悦感,是我为他们选择东南亚这趟旅行的原因。&/p&&p&&br&&/p&&p&作为策划,我们给玩家贴了很多标签,比如二次元、竞技、九零后、社交。&/p&&p&&br&&/p&&p&&b&我们通过标签来筛选出,谁到底会成为我们游戏的玩家,并为我们付钱。&/b&&/p&&p&&br&&/p&&p&话说话来,如果我立刻让你给你的儿子贴标签,你可能会发现对他一无所知,除了说他沉迷游戏,不爱学习以外。&/p&&p&&br&&/p&&p&&b&用标签的方式拆解一个事物,找出里面的联系,你便会心里有数。&/b&&/p&&p&&br&&/p&&p&我的小表妹今年读初三,是我看着长大的,父母基因好,人已经长到一米八了和我平视。春节时我发现她在玩王者荣耀,暑假时还不见她玩,现在已经轻车熟路。&/p&&p&&br&&/p&&p&重点初中、爱漂亮、成绩不错,这是我对她的标签,初三的压力不小她怎么有心情玩游戏?&/p&&p&&br&&/p&&p&后来她组了一个好友,我发现段位比她还要低,组他的原因,竟然是因为“他长得好看”。&/p&&p&&br&&/p&&p&我大概知道她沉迷王者的问题所在了。&/p&&p&学生有一个很重要的标签,就是频繁的面对面的社交行为,这是容易形成恋爱、小团体或攀比心理的地方。&/p&&p&&br&&/p&&p&王者荣耀只是她和这个好看男生的社交工具。&/p&&p&&br&&/p&&p&所以我小姨在担心她会不会沉迷王者考不上好高中时,我则在担心她是不是恋爱了,我只是多得到了一个标签,问题就能找的更精准。&/p&&p&&br&&/p&&p&除了贴标签以外,我们还要不断的更新他的标签。&/p&&p&&br&&/p&&p&我们都知道一个标签是好赌、有钱的人,下一步就会进入赌场,但是当他亏光后,变为好赌又没钱的时候,他会做什么呢?&/p&&p&&br&&/p&&p&标签越来越多,我们就可以模糊的看到下一步的走向,以及问题的根源到底在哪儿。&/p&&p&&br&&/p&&p&&b&和父母害怕游戏一样,动物怕火,害怕被烧死,但是人类可以轻松的控制它,区别只在于动物对火无知的恐惧。&/b&&/p&&p&&br&&/p&&p&很多家长问到我:我的儿子沉迷游戏怎么办?&/p&&p&&br&&/p&&p&我这时不是担心他儿子,我忧虑的是他自己:你平心而论,对儿子为什么会沉迷游戏,是不是像动物面对火一样,一无所知。&/p&&p&&br&&/p&&p&&b&[惩罚与奖励法]&/b&&/p&&p&&br&&/p&&p&许多家长的惩罚方式很容易将自己摆在孩子的对立面。&/p&&p&&br&&/p&&p&&b&如何惩罚孩子,简单来说,就是不要拿走属于他自己的东西。&/b&&/p&&p&&br&&/p&&p&在游戏设计中有一个常识,策划几乎不因为玩家没达到目标,而把他已有的东西拿走来作为惩罚,相反是许诺一个奖励,你达成了才能获得。&/p&&p&&br&好比完成任务后获得的金币,打死Boss掉落的装备。&br&不会因为你没打死Boss,策划说作为惩罚没收你的装备,这样带来极强的挫败感。&/p&&p&&br&&/p&&p&惩罚对一个孩子来说是一件严重的事情,在游戏中我们也极少惩罚玩家,哪怕你玩的再烂,我们都会告诉你:你玩的不错,还有以下几种办法可以让你变得更强。&/p&&p&&br&&/p&&p&如果我的儿子反复受到惩罚,他会觉得这事不适合我,他会逃到一个天天夸他很厉害的舒适区中去,而这往往就是游戏。&/p&&p&&br&&/p&&p&&b&而如何奖励孩子,简单来送儿子东西时要谨慎。&/b&&/p&&p&&br&&/p&&p&首先游戏策划永远不会偷偷或者无缘无故的送你东西,背后始终都惦记着你什么,不管是期待你多上线也好,期待你想充钱也好,而且大奖励在送之前,都会先画个饼,告诉你想获得是有条件的。&/p&&p&&br&&/p&&p&奖励跳出来的特效永远酷炫具有仪式感,希望你记住我们对你的好,&b&让你心情激动的明白,这是我们奖励你的,而不是我们欠你的。&/b&&/p&&p&&br&&/p&&p&如果你给孩子的奖励被他认为是理所应该,他也许会因为哪天买不起最新的iPhone、买不起想要的车时怪罪你太过抠门。&/p&&p&&br&&/p&&p&那么我们可以奖励什么给孩子?&br&&br&我们可以送孩子手机、游戏机的使用权,迪士尼两日游,新款NB鞋一双,或者给他买个皮肤买个游戏也无妨,以财力来定。但是直接赠送手机、人民币、游戏机则不行。&br&&/p&&p&&br&我们要投其所好,但要记住,&b&这些奖励都有一个共同点,就是有使用范围&/b&,人民币就是没有使用范围的奖励,你不知道他是攒着买手机了,还是消费到游戏中浪去了,它能实现他所有的目标。&/p&&p&&br&&/p&&p&&b&奖励的目的是它能让儿子获得短暂的快乐,满足他的某一个需求,但过去就没了,下一个目标又在眼前。&/b&&br&&br&&/p&&p&想清楚什么是你儿子想要的,利用它和你儿子站在一起,完成你们想要的目标。&/p&&p&&br&&/p&&p&哪怕你儿子要买手办,在你眼里这不就是个塑料小人吗,那你自己也要明白,你买的价值不是这个塑料小人,买的是你儿子达成目标所付出的努力。&/p&&p&&br&&/p&&p&&b&结语&/b&&/p&&p&&br&&/p&&p&当然,游戏设计极为复杂,一款游戏往往是近百人的打磨才得以呈现,是一个充满了利用人性弱点的集合,并非三言两语可以将其剖析。&/p&&p&&br&&/p&&p&但是家长指望孩子忽然开窍,或者希望有关部门一封了之,是非常不现实的,因为这并不能解决他沉迷的问题,最有可能帮助他根源上改变的,就是家庭。&/p&&p&&br&&/p&&p&眼界的提升,让人发觉过去非常执着于喜欢的东西,不过是沧海一粟。目标的拆分和建立,让人可以持之以恒的坚持。&/p&&p&&br&&/p&&p&拆解标签让你找到沉迷游戏的根本原因,奖励和惩罚,张弛中找到引导的平衡点。&/p&&p&&br&&/p&&p&游戏如此,生活何尝不是如此。&/p&&p&经历过的人都会明白这个道理,只是有些人在过程中付出了惨重的代价,相对于指望政府和游戏公司,家长你自己就是最好的领路人。&/p&&a href=&http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/izDea_GUDwAiFGC0U9I3Mw& data-draft-node=&block& data-draft-type=&link-card& data-image=&https://pic2.zhimg.com/v2-23d050a9d87e0cb3a09a956ae1deb6e1_180x120.jpg& data-image-width=&1263& data-image-height=&711& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&游戏策划:为什么我的儿子不沉迷游戏?&/a&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&公众号|岛上十点(BBfresh)
游戏策划看世界
&/code&&/pre&&/div&&p&&/p&
今天是高考第一天,越来越多的家长问我孩子网瘾的问题。 我作为一名从业多年的资深游戏策划,首先得说个现实,商业化的网络游戏,无不是为让玩家沉迷所设计的。 为了让玩家沉迷,我们做的功课比各位父母要深入的多,这根本不是一个维度的对抗,所以无奈是大…
&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/541696& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic2.zhimg.com/v2-bbfee82e87f95c1cab088db12dd371c2.png& data-lens-id=&541696&&
&img class=&thumbnail& src=&https://pic2.zhimg.com/v2-bbfee82e87f95c1cab088db12dd371c2.png&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/541696&/span&
&/a&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/199616& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic4.zhimg.com/v2-6137e6fcac6.png& data-lens-id=&199616&&
&img class=&thumbnail& src=&https://pic4.zhimg.com/v2-6137e6fcac6.png&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/199616&/span&
&/a&&p&python写的连连看外挂,图二时间间隔设置成了0,效果有点吓人。用的是简单的opencv图像识别结合连连看的算法,如果关注度足够,我会回来补上具体的实现思路和源码地址。(开源了已经)希望不会接到腾讯爸爸的律师函?&/p&&p&&br&&/p&&p&先手动来条华丽的分割线&/p&&p&~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&/p&&p&这刚刚有了知乎账号不到两周还,第一次在知乎回答,不到两天的时间,快破800的点赞,440的收藏,130的关注,66的感谢,还有100多条五花八门的评论着实是吓到我了。刚刷到这个问题的时候就觉得小猪佩奇都能赞到3k+,那我是不是也可以?就尝试性的发了这个外挂出来,看来冲击力实在不小,都有人私信问我是不是骗子了,吓得我赶紧回来补上约定好的实现思路和源码连接。承蒙大家厚爱,现在我来好好回答一下这个问题。&/p&&h2&源码&/h2&&p&源码连接:&a href=&//link.zhihu.com/?target=https%3A//github.com/TheThreeDog/Auto-Lianliankan& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&先点这里,然后点star&/a&&/p&&p&这个小外挂用python2写出来有将近半年了,挂到github上的版本我想用python3重构,当时只写了个开头后来不了了之了。这篇回答发出来,关注度如此之高,这才想起来我的github上挂的是半喇项目,尴尬我的今天趁下班时间赶紧写完了python3的版本,并且把思路代码都理了理。如果觉得还不错就给个star,毕竟还年轻,虚荣心比较强,谢谢!&/p&&p&&b&需要使劲敲黑板强调一下的是:Github上的项目里带了一个连连看的游戏,那个外挂就是用来破解这个游戏的,如果想破解QQ的连连看,就把config.py里的配置改成QQ连连看对应的配置,但配置是多少我本人不做提供。如果你自己搞出来了,建议你自己偷着乐就好了,不要大肆宣扬,如果你一定要张牙舞爪的到处显摆... 我确实也没啥脾气,毕竟我自己也正在这样做。&/b&&/p&&h2&实现思路&/h2&&p&下面的内容,伸手党可以不用看了,毕竟大家更感兴趣的,肯定是上面那个链接。&/p&&p&项目一共350行左右的源码,注释150行,是的,实现起来比你想象的简单的多。接下来我用我的方式讲解一下这个外挂是怎么实现的,尽可能简洁,让绝大部分人都能听懂。&/p&&ul&&li&&b&首先,我们先想想人类是怎么玩连连看这个游戏的?&/b&&/li&&/ul&&p&游戏开始,纵览全局,一眼扫到能够相连的两个相同的图片,就用鼠标去点,先点第一个,再点第二个,随着“撕拉”一道闪电两个方块随即爆炸,爽的不要不要,以此类推直到游戏结束,通过以上的操作可以细化出这样几个点来:&/p&&ol&&li& 图片要相同。这个我们人类可以一眼分辨出来&/li&&li& 两个点可以连通。很多人玩到现在也不是很清楚怎样能连,怎样不能,反正看了就知道,具体是啥硬性规则也并不是特别清楚。&/li&&li& 点击,鼠标一个一个的点,如果刚点过的两个图片相同并且可以连通,就是“撕拉”一道闪电让你爽一下。&/li&&/ol&&ul&&li&&b&回到问题,人类是这样玩的?那机类能不能也这么玩?&/b&&/li&&/ul&&p&答案是肯定的,计算机运算速度那么快,如果能想办法让他用和人类一样的思路去操作,那我们岂不是能轻易享受到“撕拉撕拉”的快感?而唯一需要我们做的,就是躺好,让她自己动。哦它!错别字!&/p&&p&想到这问题就清晰一些了,我们想让电脑按照我们的方式去执行和我们一样的操作,借助CPU发热的淫威,达到我们人类难以企及的速度,就是酱紫。那么计算机怎么像我们一样思考和操作呢?回到上面分析出的三点:&/p&&ol&&li&它要能认出屏幕上相同的图片。&/li&&li&它要知道某俩图片能不能相连。&/li&&li&它要能像人一样去对着屏幕啪啪啪....地点击。&/li&&/ol&&p&就像把大象装进冰箱一样,让电脑代替人脑,需要的也就是这么简单的三步。&/p&&ul&&li&&b&第一步:它要能认出屏幕上相同的图片。&/b&&/li&&/ul&&p&程序它如何能认识屏幕中的游戏中的一个一个的小方块呢?你肯定想到了图像识别,屏幕中间一个个的小方块是很有规律的,也有明显并且规律性的色值的梯度变化,通过一些图像识别的算法一定可以让程序认出屏幕上的小方块来。没错,但这样做很麻烦,&b&这里我一定要跟在座的提一下:无论是产品设计还是编码实现,一定要遵循一个核心原则:大道至简!&/b&什么叫大道至简?意思就是复杂的我也不会。&/p&&p&那简单的怎么做?首先,找到游戏窗体的位置(windows API),然后从屏幕上截张图(PIL),游戏窗体顶点的横纵坐标各加上一个数字,就找到了游戏区域(图中绿框),然后,通过图像切片的方式,从点C开始,分别以方块宽度为高度为步长,把图像切割成n个小块,然后再比较这些图片是否相等,一样的就用同样的数字标识,空白就用0,就这样简单粗暴地完成了第一步。&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-79aa84f329ae1c998bde_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1366& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&https://pic2.zhimg.com/50/v2-79aa84f329ae1c998bde_r.jpg&&&/figure&&p&至于我怎么知道方块的宽度高度,还有从顶点到游戏区域的距离?这个我是截图拿PS看的,不然还拿尺子量么。。。&/p&&ul&&li&&b&第二步:判断两张图是否能够相连&/b&&/li&&/ul&&p&图像转化成数据了,数据改怎么进行处理?&/p&&p&这里就得扯一下连连看的算法了,它的算法和它的规则关联度很大,它的规则是和拐点相关的:&b&两个方块的通路上,最多可以有两个拐点,如果用两个拐点还连不上,那他们就不能连通。&/b&落实在算法上其实很好写也:两个点能否直连是很好判断的,只需要判断两点之间的通路上是不是都为0就可以。那么两点通过一个拐点连通的情况,就是其中一点到拐点,再从拐点到另一点两个直连的判断。那么两个拐点的情况,就是一个点到拐点的直连+一个拐点到另一点的单拐点的情况进行判断。这样写下来,几乎全是嵌套调用,最后全部都集中在直线的校验上。&/p&&ul&&li&&b&第三步:如果能够相连,模拟鼠标点击屏幕&/b&&/li&&/ul&&p&第二部判断出的两个点可以相连,那需要程序点击一下两个点就可以,通过刚才的判断两个点的坐标是可以知道的,那只需要再向两个坐标发送鼠标点击的时间就可以。这里通过python win32的API就可以实现模拟,贴心的答主已经在源码开头附上pywin32下载链接了。&/p&&ul&&li&&b&最后,重复以上步骤&/b&&/li&&/ul&&p&电脑会以惊人的速度向你反馈“撕拉撕拉”的快感。这里请允许我再装个逼,上面的视频2我搞错了,是时间间隔0.01秒的情况,真实的0间隔效果是酱紫的:&/p&&a class=&video-box& href=&//link.zhihu.com/?target=https%3A//www.zhihu.com/video/663040& target=&_blank& data-video-id=&& data-video-playable=&true& data-name=&& data-poster=&https://pic2.zhimg.com/80/v2-1ef646aadea7521_b.jpg& data-lens-id=&663040&&
&img class=&thumbnail& src=&https://pic2.zhimg.com/80/v2-1ef646aadea7521_b.jpg&&&span class=&content&&
&span class=&title&&&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&https://www.zhihu.com/video/663040&/span&
&/a&&h2&一些闲蛋&/h2&&p&接下来就是一些闲扯的内容了,是我的一些看法和讨论,可能没什么技术含量和价值,不喜勿喷。&/p&&ul&&li&&b&说好的图像识别呢?&/b&&/li&&/ul&&p&相信很多人看了思路和源码一定很失望,根本没有什么高端的算法和逻辑,说好的图像识别,也就是用了一下opencv的函数比较了一下图像是否相等。当然,外挂确实实现了还很吊炸天。理想状态下当然是通过图像识别找出相同的图片然后分析计算然后执行自动消除的操作。但是不那么做的理由我在上面也说过了,我确实不会....-_-||&/p&&ul&&li&&b&程序中可改进的地方还有很多&/b&&/li&&/ul&&p&1、这个外挂程序的局限性比较大,从我上面的分析就可以知道很多都是基于固定坐标来算的,那其实只要腾讯爸爸把这个游戏做的支持缩放,这个外挂也就跪了。但是腾讯没有,自打我有记忆以来,这游戏怕是有15年没更新了,600*800的像素在我同事的外星人上显示地像个幼儿版本。可能是看不上这一天两万人的用户量吧,还是开发新版本的欢乐斗地主更挣钱。&/p&&p&2、如果速度设置的较慢,让别人先赢了,将是一件比较尴尬的事情,别人赢了你再点击屏幕已经无效了,但是程序继续运行仍然会让鼠标在对应的位置点来点去。你还没法移动它去停止程序,你鼠标还没挪走呢,就又给你挪到其他位置了。此处应该设置个中断机智,能够随时停止程序的。&/p&&p&3、我在程序中使用的是opencv+numpy进行的图片读取,切片,还有图片是否相等的校验。后来同事给我提供了一种思路:1、PIL本身就可以进行图片切片,2、operater.eq()可以校验两个对象是否一致,用来校验切片出来的图像是完全可以的。 这样的话根本就不需要opencv和numpy,什么图像识别,根本不需要的,如果那么做,代码量还可以比现在更精简。&/p&&ul&&li&&b&关于外挂&/b&&/li&&/ul&&p&关于外挂有很多中办法实现,我说几种主流的,大家评论里也已经多得五花八门了,&/p&&p&1、其中很大一部分,也是绝大多是外挂的主流做法,就是直接在&b&本机改内存&/b&。你的游戏运行在我这里,代码就得加载到我的内存里运行,那么内存里的数据再抽象,总有高手能给它鼓捣出来。就比如说这个连连看,我也可以通过读取内存的手段直接拿到它方块布局的数据,直接把这个数据全改成0,那立马就赢了。但这样做很麻烦,&b&这里我一定要跟在座的提一下:无论是产品设计还是编码实现,一定要遵循一个核心原则:大道至简!&/b&什么叫大道至简?意思就是复杂的我真的不会。。。&/p&&p&有一些游戏数据必须要在本地进行处理的,很容易遇到这种外挂,比如地下城与勇士无限刷图啦,更比如吃鸡,就说吃鸡,这样的第一人称射击游戏,打一枪子弹中没中,不可能放到服务器去判断,一是判断不过来,二是受网络的影响实时性根本达不到要求。所以你一枪子弹打出去中没中,一定是放在本地进行计算的,既然是在本地内存里,一旦防范不到位那就有人能给你改,我们所谓的“飞天遁地锁血金身”什么的。像LOL就不多存在这样类型的外挂,一方面肯定是反外挂投入的力度大,另一方面就是因为你的操作全部都是由服务器来进行计算并反馈的,不存在太多本地数据篡改的风险。&/p&&p&2、另一种外挂,不在本机改内存,而是通过网络去骗数据,常见于数据协议被黑客窃取或破解,那他就可以按照协议格式发伪造的数据,来骗服务器。这种外挂我见过的比如GTA5 online版本,当时答主的舍友花50块买的外挂,头上一个劲儿的往出冒钱,外挂弄出的钱,退出后重新登录会消失,但是如果这些钱用来买了资产,那资产就实打实的是你的了。看上去也是很爽,感觉那外挂应该是了窃取某个加钱的接口,然后发模拟数据一个劲儿的刷。&/p&&p&3、再有,就是我的这种外挂,用程序来模拟用户的某些操作,类似于按键精灵的意思,得益于计算机优秀的运算速度,往往能达到人类不可能达到的水平。除了我这个连连看,还有之前微信跳一跳的外挂也是如此。而这种外挂也很难防范,有些时候程序无法判断操作是来源于用户还是代码。&/p&&ul&&li&&b&关于攻防&/b&&/li&&/ul&&p&我是这个外挂的作者,所以也想说说关于如何防范这个外挂,以下来说说我替鹅厂想的一些法子来阻止我这个外挂。&/p&&p&1、&b&最行之有效:窗体缩放。&/b&如果这个游戏的窗体可以缩放,那我这个外挂基本上算是废了,除非你每次玩的时候都能缩成固定的大小,并且每次保证都一样。如果真的修改地支持窗体的缩放了,那我的外挂就不得不通过真正的图像识别来搞了。当然,那样会很麻烦....我不会。&/p&&p&2、&b&检测时间间隔,如果每次间隔都一样,则视为外挂。&/b&这属于比较蠢的办法之一,你是不知道python中生成个随机数有多简单,随便弄个0.5~2秒随机,那家伙比真人还真!&/p&&p&3、&b&通过驱动级别的检测,看是否有鼠标输入。&/b&这个原理很简单,实现起来很难。让程序的代码深入驱动底层去检测,如果没有捕获到鼠标点击,但是程序却收到了鼠标事件,说明这次点击时程序模拟的,直接过滤掉。但是这样做的代价很大,驱动底层的windwos编程带来的可能是巨大的兼容性难题,XP、win7、win10很有可能不一样。与其这样,干嘛还在每天2W用户量的连连看上面较劲,投入人力物力去开发欢乐斗地主不是更好么。&/p&&p&当然,鹅厂是完全有这样的能力和技术手段的。答主曾经遇到过一个windows键盘监听器,用C++钩子实现的全局键盘监听,可以监听一切用户输入。但腾讯QQ的登录框的密码,则是完全兼听不到的,这说明腾讯在此处做了比钩子更加底层的安全处理,也就是驱动级别的处理。题外话:银行官网登录时让下载的安全控件也可以提供这种级别的保护的,四大行只有一个会被钩子监听到按键输入,是哪一个我就不说了,曾经提交过反馈,不知现在处理了没有。&/p&&ul&&li&&b&这个外挂其他语言能不能做&/b&&/li&&/ul&&p&可以!答案是一定可以,这其中用到的技术没有一个是非python干不了了,只能说用其他语言,可能代码量多少的问题,比如我python用了200行有效代码,可能go需要300行? C++400行? java2000行?
大概这个行情吧。&/p&&p&哦,当然不是任何语言都可以,html和css就不行。&/p&&ul&&li&&b&关于评论和私信&/b&&/li&&/ul&&p&我刚刚才加入知乎,第一次回答有如此的关注度肯定是开心的,但是大家不要再在私信和评论里一口一个大佬大神了,又是问我要代码,又是问我推荐学习路线,问我推荐书籍的。作为程序员拿着不到5K的月薪,这么搞得我心里着实很慌。&/p&&p&还有问我要连连看源码的,这个视频中的连连看是腾讯QQ的连连看,不是我写的,所以你要连连看源码的话....我还真的有:&a href=&//link.zhihu.com/?target=https%3A//github.com/TheThreeDog/PictureMatching& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&王者荣耀风格的连连看&/a&。这个也就是我外挂项目中捆绑销售的连连看游戏,Qt C++做的,如果能加上“撕拉”的闪电,就更好了。拿去看看就行了,别拿去充当什么课设毕设,这游戏硬让我学弟妹们拿去给三四个人做毕设了,后果....&/p&&p&虽然我原本压根没打算入知乎的坑,但是一波儿回答让我吸了这么多赞还是蛮开心的,如果说问我出名后想做什么事情的话,我想可能是先给自己搞个头像?&/p&&p&PS:呀!刚才又看了一下,评论里没有叫大佬大神的哈,
飘了飘了~~&/p&&ul&&li&&b&关于代码中不给针对QQ连连看的数据&/b&&/li&&/ul&&p&外挂这种东西一定会多多少少损害到其他公司的商业利益,虽然鹅厂还轮不到我来考虑人家的商业利益,但是我仍然不希望外挂的配置代码从我手中散播出去。代码的开源一是为了交流和学习,二是为了Github上多多的star(不要脸到我自己都怕)。我也不扯什么伦理道德,我能做的,就只是管好自己。作为原作者也希望大家都能够做到:&b&不要在公开场合散布有关破解QQ游戏连连看的配置信息,不要将此代码用于任何商业用途。&/b&&/p&&p&还有就是答主内心比较脆弱,以上言论 有何不妥欢迎随时交流探讨,但是谢绝辱骂。&/p&&p&洋洋洒洒墨迹完,已经深夜了,祝大家好梦,就这样。&/p&
python写的连连看外挂,图二时间间隔设置成了0,效果有点吓人。用的是简单的opencv图像识别结合连连看的算法,如果关注度足够,我会回来补上具体的实现思路和源码地址。(开源了已经)希望不会接到腾讯爸爸的律师函? 先手动来条华丽的分割线~~~~~~~~~~~~~~…
&p&有这么一家餐馆,规矩是这样的:&/p&&p&交60美金可以进店用餐,餐馆提供一块牛排,同时无限量供应炒饭,吃到饱&/p&&p&曾几何时,他们的牛排口味极佳,享誉业界,品尝过的人无不交口称赞&/p&&p&他们凭借着招牌牛排成为餐饮大佬,前来用餐的人络绎不绝&/p&&p&但是慢慢地,餐馆发现:&/p&&p&来用餐的人中,有很大一部分人根本不在乎牛排好不好吃,只在乎炒饭是不是真的能吃饱&/p&&p&与此同时,顾客们也发现:&/p&&p&牛排不再那么好吃了,不再采用上等牛肉了,甚至现在的一块牛排也只有以前半块大了&/p&&p&但是餐馆却在炒饭上越来越下功夫&/p&&p&多花5美金可以加个蛋,10美金可以加鸡柳,20美金可以加虾仁&/p&&p&餐馆甚至提议可以将提供的牛排切碎了炒在炒饭里。&/p&&p&直到有一天,餐馆宣布不再提供牛排&/p&&p&餐馆承诺将提供更美味可口的炒饭,同时有扬州炒饭、什锦炒饭、招牌炒饭等多种选择,依旧管饱&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&现在你问我还会再去这家餐馆吃饭吗?&/p&&p&对不起,比起炒饭我还是更喜欢吃牛排。&/p&&p&何况卖炒饭的店有那么多,我为什么要选择这一家?&/p&&p&&br&&/p&&hr&&p&我觉得我还是多说点,感觉很多人都没明白我到底要表达什么。。。&/p&&p&首先是牛排和炒饭的比喻&/p&&p&牛排(单机剧情)的特点:贵(开发成本高)、&b&多数情况下&/b&比炒饭好吃(相同单位时间内剧情流程的体验要比多人联机好)、量少吃不饱(体验时间短,不具备可重复游玩价值)&/p&&p&炒饭(多人联机)的特点:便宜(开发成本低,单人部分成本为A+B,多人部分成本为A+C,B&&C),量大能吃饱(游玩时间长,具备可重复游玩价值)&/p&&p&我不排除有人就是不喜欢吃牛排,喜欢吃炒饭,我也不否认有的炒饭就是比某些牛排好吃,比如隔壁战地明显就是一家炒饭店,他家的皇家炒饭相当有特色,只不过60美金只能吃到基础版,想升级到皇家版你得额外至少再花60美金 #滑稽&/p&&p&然而,多数大众玩家考虑的是好不好吃的问题吗?牛排又贵又少,再好吃又怎样,想吃饱到头来还不是要看炒饭,所以炒饭成为大众玩家的衡量标准很容易理解&/p&&p&但是也不乏单机玩家甚至我这样的纯单机玩家,贵、少又怎样?好吃就值得我花钱。我不缺玩游戏的钱但我缺玩游戏的时间,单位时间内的游戏体验才是我重点考虑的内容。&/p&&p&想象一下,如果西欧弟变成30美金发售,单人剧情或多人联机只能二选其一,同时多人联机部分被限定成像单人剧情一样只能玩15~30小时,情况会变得怎样?&/p&&p&西欧弟是在现代战争时期靠着出色的流程体验一炮打响的,他的多人联机部分直到现在都只能算是中规中矩,对比其他以多人联机为主打特色的FPS没有明显优势,不足以成为将之送上FPS王座的原因,既有好吃的牛排又有管饱的炒饭才是。&/p&&p&然而随着西欧弟一路发展走来,流程质量逐年下降,多人部分比重逐年上升,到如今干脆取消了单人流程部分。我的看法与 &a class=&member_mention& href=&//www.zhihu.com/people/fb6cd83ca323& data-hash=&fb6cd83ca323& data-hovercard=&p$b$fb6cd83ca323&&@凌子卿&/a& 一样,这是市场选择与公司导向共同导致的结果,我理解这种改变但我不支持,我是个体验流玩家,所以既然西欧弟没有单人流程了我就不会买。我不希望《战神》(2018)这样的单人流程游戏从市场消失,这就是我的投票。&/p&&hr&&p&评论区有位老兄“花60美金买8小时单机就是钱多了烧的,就是脑子有病”、“我代表了80%的COD玩家”、“答主觉得西欧弟没单人要凉了”&/p&&p&我的原答案没有任何倾向性,我只是说了我的一点看法。我只代表我自己,我不代表你也不想被你代表,谢谢&/p&
有这么一家餐馆,规矩是这样的:交60美金可以进店用餐,餐馆提供一块牛排,同时无限量供应炒饭,吃到饱曾几何时,他们的牛排口味极佳,享誉业界,品尝过的人无不交口称赞他们凭借着招牌牛排成为餐饮大佬,前来用餐的人络绎不绝但是慢慢地,餐馆发现:来用餐…
&p&说来惭愧,两个非常简单的数学问题,但是一般开车时候不会想,所以是开了很久才重新发现的。&/p&&p&经验一:距离一定,速度和时间成反比例关系,也就是说,速度高到一定程度,再提高一点速度,所节省的时间已经很少了。假如目的地距离你120km,你跑90迈需要80分钟能到,开120,一个小时就到了,帮你节省20分钟,感觉挺值的。如果你还是很着急,开到150呢?48分钟到,比120节省12分钟。如果开180呢?40分钟到。在150的基础上,又节省出8分钟。&/p&&p&跑高速的时候容易形成这样的错觉,路上开120的车都太肉了,跟着他们在慢车道跑,猴年马月才能到,不如油门踩到底,远远把他们甩开。你可能从来没有想过:这些被甩得没影儿的车都是什么时候到的?&/p&&p&答案就是,120公里的路程,你开150(在某些路况和拥堵情况的高速上,150已经非常危险了),别人开120,他们会比你晚到整整12分钟,并不是晚到猴年马月,是12分钟。出一趟120km的远门的人,缺不缺12分钟?&/p&&p&也可能是我脑子比较慢,很长时间才转过这个弯来。有一次去西北自驾,一路火花带闪电,超着速、占道超车,想早点赶到旅店。GPS上有一个预计几点能到的功能,因为超速,这个预计时间在不断变早。赶了半天路,停在加油站上了个厕所伸了伸懒腰,回去一发动车,发现GPS预计时间跳回刚出发时候的估计值了,也就是上厕所把超速省出来的时间用掉了。我突然想:合着我命都豁出去了,拉着一车人在大卡车堆里左冲右突,最后就省出来一泡尿的时间?&/p&&p&从那以后我开车就很“怂”了。哪怕超车道空空荡荡,我也会忍住冲动,在合适的车道开合适的速度。因为我不缺一泡尿的时间。话糙一点,道理就是这样。&/p

我要回帖

更多关于 魔兽世界单机版60版本 的文章

 

随机推荐