作者:tanhongsong
梦游杂记 题记
纪念碑谷
这是一款让我玩得时候就不由自主,不停截图的游戏。
当你欣赏一件艺术品,如果能够体会到作者的用心之处,那就代表你真的懂了。这种与作者之间的心灵沟通,是最爽的事。
激动之余填了首词:
浪淘沙●纪念碑谷
独自上高楼,
点转放收。
乾坤颠倒镜花游。
梦蝶蝶梦断肠处,
明月如钩。
根本停不下来
前段时间火爆了的Flappy Bird让我陷入了深思,这游戏真的那么好玩吗?
作为一个游戏开发者,搞不清楚这件事,真的会睡不好觉。这游戏无论是从设计层面,技术层面,还是美术层面,都没有难度可言。从玩游戏的动力上讲,它既不能提供视听享受,又无剧情,也不益智,仅有的一点玩家之间的分数对比,也不会因此带来多强烈的成就感。相反,它带来的挫败感要远远大于成就感。那究竟是什么让玩家越挫越勇呢?百思不得其解。
北京为什么美女多
北京大街上好多美女啊!这是为什么?下面给一个充满负能量的合理性解释:
一个小伙子在大学里用尽心机找了一个漂亮的女朋友。
有一个漂亮女朋友带来的后果除了别人羡慕以外,还会给自己带来错觉:我牛逼。其实,牛逼的人家美女父母的基因,跟你没有半毛钱关系。
既然我牛逼,那就带美女去北京闯一闯吧。我们一定会成功的。
到了北京小伙子才知道,人比想象的多,机会比想象的少,最重要的——自己没有想象的那么牛逼。
体验的连续性
在百度的时候,新首页就上线了,做的很漂亮。但是在讨论这个变化的时候,总有一种不太好的感觉,但是一直没有想明白。今天突然想明白了问题在什么地方。那就是这种吸引眼球的变化,破坏了百度作为一个搜索引擎的体验连续性。
例如,我在看新闻时遇到一个关键字“周元根”,想到百度去查一下,结果一打开百度,就看到了这个画面:
这血淋淋的凶手图,立刻吸引了我。就打开连接看了一下。然后,然后就忘了周元根了。。。
小诗一首——咏雪
谈谈植物大战僵尸2
从《植物大战僵尸2》首发,就想写一篇关于它的文章,但是玩了这段时间以来只是一些零星的感受,下笔无法成文。直到今天看到这篇文章,才有了一些想法。下面就沿着这篇文章的思路谈谈我的感受吧。
原文在此:是一篇游戏邦翻译gamasutra的文章,题目是《植物大战僵尸2》为何无法跻身收益榜单之首
http://gamerboom.com/archives/77638 有《植物大战僵尸》这个王牌作品打下的江山,《2》推出自然会火热异常,文中提出了4点影响他们排名和收益的原因: 1、不适应不同的玩法环境: 意思就是《2》中的管卡设定过于紧凑,导致了玩家必须在注意力集中情况下才能进行游戏。一旦有一点分神,疏漏,就会导致闯关失败。这样游戏就无法占用一些容易分心的零散时间,例如:经常要开关店门的保安,经常要被咨询打断的前台,经常需要腾出一只手扶JJ和擦屁股的上厕所时间,经常需要分神去检查是否坐过站,或者巡视有没有空座的地铁时间。在闯关时需要集中精力这个事是无可厚非的,因为他的核心玩法就是需要不断的调整布防,应对突然出现的危机。能够调整的只能是每关的时间长度,但是如果闯关时间太短,就没有意思了,至少要通过几波僵尸表达出进攻层次,让玩家有足够的时间建立起“壮观”的防御体系。这是游戏的核心,也是乐趣所在,是不能改变的。 记得在《1》中,有一个我很喜欢的玩法,就是种花,通过种花养花来挣钱,买植物,养大树。这是一种没有任何难度的养成设定,也叫“泡温泉”。这就是一个用来吸纳大量零散时间的方法,让玩家用这些低效的零散时间堆积出成就感。记得当时在玩PC版的时候,我就会开一个游戏窗口放在后台,用来养花。不知道《2》中为何要砍掉,因为怕影响付费?还是不符合新世界观?还是没精力做了? 2、缺乏社交玩法: 人与人的竞争攀比,是游戏付费的一大支柱,相信大家都认同这一点。《2》对社交玩法的匮乏的确会影响它的收入。那我们不妨来考虑一下,《2》能够通过什么样的方式建立起PVP的机制。目前游戏的PVP分为两大类,一是玩家之间的正面冲锋,直接挑选一个敌人拼数值,拼操作,拼策略。像各类卡牌对战游戏。另一类就是大家在同一个标准下与电脑竞争,然后根据得分做排名,像微信的天天系列。那我们就来看一下《植物大战僵尸》是否能够套入这两个类型中。 一、如果要建立起玩家之间的直接对战竞争,首先要解决的就是平衡性问题。是否可以让玩家一方控制植物,一方控制僵尸进行公平竞争呢?我的理解是,塔防类游戏要改成这样比较麻烦,因为攻防两端本来就不平衡。防守要易于进攻,这跟打仗是一样的道理。而且对玩家而言,感受也是不一样的,没人愿意看到自己辛苦培养的游戏元素冲上去当炮灰。当然,要解决这些问题也不是不可能的,但是这可能会彻底改变《植物大战僵尸》作为休闲游戏的定位,而且花费的精力可能要大于《2》本身。说句题外话,如果有机会,我倒是想尝试一下,这种基于塔防的攻防平衡体系。 二、事实上,《2》已经建立起一个隐性的排名机制,那就是原文中提到的通过Facebook账户登录,可以看到好友的开图进度。这种排名的刺激是很微弱的,首先,它没有量化,不能得出一个一目了然的分数,这个就不容易对比。其次,他不够直观,不能让玩家一眼看到他在好友圈子中的地位,这也就很难激励玩家去花精力花钱去冲榜。当然,开图进度的量化对《2》团队来说不见得是件难事,为什么没做?也值得思考。 3、缺乏难度: 要说《2》缺乏难度,我有点不太苟同。记得有一颗星星我是玩很多次才获得的。其中一些星星的获取规则其实是比较苛刻的,需要在玩的过程中不断的平衡,精确的计算才能险险过关(不付费的情况下)。文中,作者说“我认识的多数人不再玩PVZ2的一个原因就是因为游戏缺乏挑战性”,让我怀疑是不是他认识的人都没去获取星星。。。 这个讨论倒是可以作为一个很有意思的议题:休闲游戏的难度把控问题。这有些像泡妞,有些女生,对她太冷淡会觉得你无聊,太热情又会把她吓跑。难易程度比较难把握。恰到好处的标准就是要适时地增加难度,给一些挫败感,但又不能让其绝望。对挫败感的控制有这么几个办法:首先,是把失败这件事做的戏剧化,也就是更有意思,例如死亡动画很可爱,很搞笑。这样就有助于减轻玩家失败后心理压力。其次,增加失败结局的多样性,让玩家觉得每一次失败都是不一样的,或许稍微调整就能离成功更接近一些。这一点做的比较好的是《愤怒的小鸟》,BOX2D物理引擎的使用,使得在一个模拟的物理世界里,每次失败对猪的建筑物都有不同的破坏程度,这就让玩家的主要感受由“不停的失败”变成了“不停的尝试”。 4、无核心循环: 这是一个比较有深度的理由。所谓核心循环,就是能让游戏不断进行的那层最大的循环。例如:卡牌游戏中的体力值,农场游戏中花时间中农作物换金钱的这种时间——金钱——时间之间的循环转化关系。这种循环其实是一种限制机制,保证玩家能在这个循环中乐此不疲的玩下去。而《2》中的循环是什么呢?不断的积攒星星通关?通关又带来什么呢?通关本身并没有带来玩家的增强,植物的增多。只有每个关卡附赠的,相对植物价格少的可怜的金币。要想获得新植物,只能不断的刷雪人,或者简单的付费。这样就没有形成一个”核心循环“,至少循环的脉络不够清晰。 好了,最后谈谈我对《植物大战僵尸2》的整体感受吧: 1、这是一款续作中的好游戏,在一的核心玩法上添加了大量的改进和新鲜元素,让玩家有了很多新鲜感。从规模上讲也是一个大作。 2、它已经背离了“让妈妈也能喜欢玩”的《植物大战僵尸1》的游戏定位,通过增大难度来迫使玩家付费的想法,在游戏中暴露无遗。 3、按照业内的盈利算法,它能冲的app榜的那个位置,说明它已经很挣钱了。多了利益,少了情怀。还记得当时玩一代时太阳花出场唱的那首歌吗? 总结:一款好游戏,但已非经典。Chrome对GPU的使用–(3)网页的加速合成
网页渲染是浏览器内核最基本的任务,这一篇让我们研究一下,Chrome是如何利用GPU对这个过程进行加速的。
Webkit渲染基础
首先,来回顾一下Webkit内核的网页渲染流程。当Webkit拿到网页数据后,会根据网页结构生成DOM树,然后每一个DOM节点会生成对应的RenderObject,构成另一棵树RenderObject Tree。那些在同一个CSS转换坐标系下的节点,会被合并到一起,构成一个RenderLayer,像一些半透明的、独立CSS Filter的、Canvas、Video等有特殊渲染需求的RenderObject会生成单独的RenderLayer。关系如下图:
Chrome对GPU的使用——(2)底层实现
这一篇,我们来研究一下GPU进程的实现细节,首先是GPU对外暴露的接口形式:
GPU Command Buffer
在GPU独立进程的架构中,Command Buffer作为GPU Server 与 Client的通信协议扮演着重要角色。它将对GPU图形接口(OpenGL ES 2.0)转化成一条条命令,用来支持跨进程调用。提高了GPU调用的安全性、通用性、和并发性。其定义的协议与直接调用GPU图形接口相比,裁剪掉了一些不通用的特性,例如GLSL的高级特性。同步改为异步,这种改造对glUniform 、glDrawArrays这种比较费的接口效果尤为明显。这样,就大大提高了GPU的并行程度,而这恰好比较适合GPU的特性——善于处理并行任务。
Command Buffer本质上是一块共享内存,用于跨进程传输数据,根据OpenGL ES2接口的不同,有三种方式:
1、直接通过Command Buffer传输,这种直接将调用参数写到Command Buffer,由于Command Buffer有固定的长度,因此,参数的数据量不能太大,像glBlendColor这种调用可以采用。
2、通过共享内存,当调用需要传输大数据时,例如传送图片。就会先将图片数据拷贝如Shared memory,然后用Command传送shared memory id和便宜即可。
3、抽象的bucket,这个实际上是对共享内存的封装,它要解决的问题是如果需要传输大量数据,而shared memory不能一次传输时,bucket可以用多次传输的方式完成。而对我暴露的接口时一次调用完成的。使用起来比较方便。
下图是一个典型的跨进程调用结构:
Chrome对GPU的使用——(1)总体架构
GPU在Chrome中扮演着重要的角色,主要体现在两个方面:对WebGL的支持和加速绘制的合成。我们将从几个方面来看一下Chrome对GPU的使用:
1)Chrome中GPU部分的总体架构,弄清楚GPU是如何整合到Chrome的整体结构的。
2)底层实现,学习Chrome是如何将GPU封装成平台无关的Command Buffer提供给上层使用的。
3)网页绘制中的加速合成,理解GPU是如何在网页绘制中起到加速效果。
先从第一个开始。Chrome采用了独立的GPU进程结构,如下图:
浏览器的那些事(7)——新交互方式的尝试


成语两则
梦到了两个成语,醒来之后感触良多。到百度上摘抄在此。
邯郸学步:
相传在两千年前,燕国寿陵地方有一位少年,叫寿陵少年。
这位寿陵少年不愁吃不愁穿,论长相也算得上中等人材,可他就是缺乏自信心,经常无缘无故地感到事事不如人,低人一等——衣服是人家的好,饭菜是人家的香,站相坐相也是人家高雅。他见什么学什么,学一样丢一样,虽然花样翻新,却始终不能做好一件事,不知道自己该是什么模样。
成语漫画
家里的人劝他改一改这个毛病,他以为是家里人管得太多。 亲戚、邻居们,说他是狗熊掰棒子,他也根本听不进去。日久天长,他竟怀疑自己该不该这样走路,越看越觉得自己走路的姿势太笨,太丑了。
有一天,他在路上碰到几个人说说笑笑,只听得有人说邯郸人走路姿势那叫美。他一听,对上了心病,急忙走上前去,想打听个明白。不料想,那几个人看见他,一阵大笑之后扬长而去。
邯郸人走路的姿势究竟怎样美呢?他怎么也想象不出来。这成了他的心病。终于有一天,他瞒着家人,跑到遥远的邯郸学走路去了。
一到邯郸,他感到处处新鲜,简直令人眼花缭乱。看到小孩走路,他觉得活泼、美,学;看见老人走路,他觉得稳重,学;看到妇女走路,摇摆多姿,学。就这样,不过半月光景,他连走路也不会了,路费也花光了,只好爬着回去了。
浏览器的那些事(6)–QQ浏览器的登陆方案




这个世界我来过
昨晚做了一个梦,我去了浙江大学,住到了一个学生宿舍里。窗户很大,外面是无比灿烂的星空。无法用语言形容的美!这时候想拍下来发到网上,但当我掏出手机,窗户上突然凝结了厚厚的水珠,我拼命的用手去擦,想擦出一个空隙让我拍照,水雾却越擦越多,越擦越厚。醒来后,我跟老婆说,看来有些美只能自己欣赏!
我想去表达,想去输出,无非是想证明,这个世界我来过。
浏览器那些事(5)——工匠模式

浏览器的那些事(4)—关于切核
首先热烈祝贺习总书记当选国家主席!一定要紧紧的团结在以习主席为核心的党中央周围,做好浏览器!
————–以下是跟我有关系的———————————————— 在前面的文章里,我已经吐槽过关于双核的看法。这篇说点细节的东西。 由于国产浏览器是起源于对IE控件的包壳实现的,所以Webkit当年是作为一个“高级货”引进而来,于是就产生了“高速内核”这个概念,于是同时拥有Webkit和IE内核就成了国产浏览器的标配。随着Chrome的崛起和微软的日薄西山,Webkit这个后来者渐渐的取代了原来IE的主力位置。像360,猎豹都已经将Webkit作为默认内核使用。而IE就成了为支持网银等老古董才有辅助内核了。 切换内核的策略这几家浏览器大同小异,首先,切换内核有两种形式——手动切换和自动切换 先说说手动切换: 早期的切核形式就像搜狗和傲游,在地址栏的右侧有一个按钮,上面用一个闪电和IE图标区分内核类型,只要点击一下就可以切换内核。后来出现的双核如360极速和安全浏览器6.0以后的版本,交互增加了一步,点击按钮后会先弹出如下图的选择菜单让用户选择内核类型,猎豹干脆把切核操作放到了右键菜单中。


双江之刃
这几天“坑爹之星”李天一的事闹的沸沸扬扬,正好昨天做了个梦与此有关。我也来谈谈我的看法吧。
昨晚睡前看了电视台新闻上播放的一些李双江的访谈。其中有双江对孩子教育的看法,有一家三口录制的现场节目。这些画面足可以反映李双江对孩子教育的核心
思想——培养技能是重中之重,叛逆是天性,可以纵容。孩子的培养像是雕塑,李天一有今天,多半是拜李双江这把雕刀所赐。有了这种性格和客观条件,犯事时
早晚的事。
网游之外看网游
垃圾代码
