TAT.Kinvix 网络游戏激励的方式与团队
In 团队 on 2012年03月11日 by view: 2,374
0

看了 Tom Chatfield 在 TED 大会上的演讲【The Power of Virtuality】很受启发,为什么人们愿意将大量时间和金钱投入游戏,在虚拟世界中追求虚拟的宝藏和体验?答案就是:游戏中的激励机制。这也对如何让人们自发并积极地参与某种活动提供了启示,比如团队激励。

研究《魔兽世界》等网络游戏中的关卡奖励设置,从这些神经学和心理学在网络游戏中的研究中发现了七种激励方式:

1. 用经验值条来度量进程。网络游戏中你会发现人物级别的经验值进度,人在不断肯定自我的过程中有更大的前进动力;
2. 把任务分割成可计量的短期和长期目标。玩家可以同时进行这些任务,并且和个人的获利挂钩,这是一个保持人们持续参与的常用方式;
3. 奖励成就,不惩罚失败。一个个小的奖励能最大化地满足人们的成就感和自尊心;
4. 得到及时的回馈。在网络游戏中当你完成一个任务、学习到一种新的技能时,你能马上去施展这项技能,这种反馈让人们更加确信奖励;
5. 未知的吸引力。不确定因素,或者叫惊喜,会给人超强的吸引力,比如极品装备的魅力就在此;
6. 合作,集体的归属感。人都是怕落单的,因为认识社会化的生命体,只有在组织中,人才会更有存在感,所以这种团队合作中,彼此的帮助、彼此的肯定都促使成员更有归属感;
7. 充分的自由度。游戏玩家拥有更多的自由度,可以满足玩家对自由的向往,并在做事情的时候会感觉到这是他自由的选择,而非无奈之选,因此更可以爆发更大的力量。

通过观察游戏和玩家行为,我们可以学习到如何提高个人和集体对某项活动或项目的参与度,将这些经验应用于游戏之外,将会产生神奇的影响。在他所著的《Fun Inc.》一书中,他认为,由于玩家在游戏的虚拟世界中的探索体验,以及精心设计的虚拟奖励机制给与玩家的满足感,已经可以成为解决现实问题的参考。理解了网络游戏中的激励机制中所包含的心理学理论,不仅能更好地了解玩家,并能进而改善现实世界中的问题。

TAT.melody 从 Audio 标签看 webkit 内存上涨的问题
In HTML5 on 2012年02月28日 by view: 2,915
0

这段时间做一个关于 widget 的项目,忙了一两个月了。在临发布的时候突然出现一个问题,一个音乐 widget 的内存不断上涨,且不会回落,最终导致这个 widget 只能下架。
因为我在 ie9 没发现内存上涨的问题,所以我觉得这是 webkit 内存管理的问题。所以一直没去看他,等待客户端的同事去解决。直到有一天,客户端同事说了一个方法,说防止 src 频繁切换,建议延迟 1s 去设置 audio 标签的 src。开始我想这不是 web 的原因,所以给予断然拒绝,另外也是怕维护麻烦。但是,我还是进行了尝试。没想到效果出奇的明显,内存基本不会上涨了。
从这件事,我意识到了,凡事不能说绝对。因为它包括了太多情况,涵盖了很长的一段时间,而且使你不能有回旋的余地。
下面说说解决的方法。因为我们想要的是 src 不频繁切换,所以单单做延迟是不会有任何结果的。关键是要使一首歌保持 1s 以上才会去设置它的 src。这句话我说来简简单单,但是要真正理解是需要很深入的思考的。代码我会在最后面给出来,大家可以自己试着写写,然后对照一下。
通过客户端同事的进一步研究发现,发现对 Dom 对象的某个属性就行频繁操作就会导致上涨。这里还有个比较明显的属性就是 buffered,大家可以通过设置一个频率为 20ms 的定时器去读取这个属性,就可以进行测试了。
以此类推,是否对于 img 标签也有类似的情况呢。这个有待各位同仁进行验证。
相关代码:

好久没有更新 blog 了。今天终于有了心再写一篇。算是对自己工作和生活的一种回顾吧。

11 年底和 12 年初的时候自己都没有写什么总结性质的博文,或者之类的东西。但是心里确是有稍微对过去的时间做一点结算工作的。

飞行射击类游戏很常用的追踪子弹,或者塔防里面固定炮台打 怪物的时候,为了保证子弹不会打空,追踪是必要的。
然而,这是极其简单的事情。
在每一帧里判断当前子弹和目标位置的距离和方向,不断修正 速度方向即可。

我们的图片大部分都是可以转换成 base64 编码的 data:image。 这个在将 canvas 保存为 img 的时候尤其有用。虽然除 ie 外,大部分现代浏览器都已经支持原生的基于 base64 的 encode 和 decode,例如 btoa 和 atob。(将 canvas 画布保存成 img 并强制改变 mimetype 进行下载,会在下一篇记录)

但是处于好奇心,还是驱使我去了解下 base64 编码的原理。以便也在不支持原生 base64 编码的 ie 下可以得以实现。

【已知】
canvas 提供了 toDataURL 的接口,可以方便的将 canvas 画布转化成 base64 编码的 image。目前支持的最好的是 png 格式,jpeg 格式的现代浏览器基本也支持,但是支持的不是很好。

 一、些许前提

最近在制作一个 Web 应用, 其中用到了 HTML5 的离线应用功能 (offline application), 离线应用的概念就不再阐述, 可以查看这两篇文章:

http://www.ibm.com/developerworks/cn/web/1011_guozb_html5off/

http://www.mhtml5.com/2011/02/583.html

这里主要讨论它的更新问题. 首先浏览器是有两部分 cache 的, browser cache 和 app cache, browser cache 就是常说的浏览器缓存, app cache 是离线应用的缓存.