存档

作者存档

关于儿童在线游戏行为的一些想法

2010年7月27日 admin 5 条评论

1.儿童游戏时候操作大于交流,以摩尔庄园为例,儿童游戏的时候以做任务,升级,或短暂的合作为主,交流会去bbs,而发帖主题以攻略,游戏过程中的分享,成就炫耀为主 ,这部分占到了95%以上

2.大多数儿童有收集癖,这个不需要多少,你小时候一定做过收集小浣熊干脆面中的卡片,或者收集各种颜色弹子的事情:)

3.大多数儿童对未知事物,对反派充满好奇和猜测

4.宠物很重要;儿童的情感和成人不同,对世界和社会的认知程度还很低,与他人的接触局限于家庭和学校,因此很多儿童喜欢随身携带人偶型玩具,作为情感寄托,虚拟宠物则可以替代这一地位,同时更好的设计和功能实现能提升宠物在儿童心中地位,增加粘性.很多多年的网游老玩家,或多或少会感慨,玩到最后就是舍不得那些一起战斗过的朋友;那么对于不太喜欢在虚拟世界和陌生人交流的孩子们来说,如果宠物做的贴心,足够像个朋友,那就是他玩这款游戏的最大动力

5.sns并不重要;sns是人脉,是社会网络关系.由于儿童活动范围的,对社会的认知并不高,更无从谈起人脉关系,最多只是同班同学,且在学习压力下,更没有拓展人际关系方面的诉求(摩尔早就意识到了这个,设计的功能和陌生人交往持谨慎态度).

6.游戏中是否需要打怪?我觉得答案是肯定的,纯任务情节推动对游戏时间,开发时间都有较高要求,很容易拉长开发后续开发周期,而打怪则是一个模式,模型好了,里面的内容往里加就好,开发容易,也容易吸引住玩家,不过用什么打,怎么打,打什么都是需要因地制宜的做改变,儿童游戏里面让小朋友穿着装备用着魔法去砍杀各种怪兽显然是不和谐,也不容易被家长接受的,但是如果用别的方式,比如卡牌等智力型游戏比如宠物小精灵的宠物战等则兼顾了。

淘米的思路始终集中在任务,虚拟家园,虚拟装饰物,宠物系统上, 摩尔庄园更侧重任务情节,赛尔号更侧重宠物养成,和探险。
情节型任务过关方式以收集,合成,智力过关,棋牌对战为主要游戏模式
宠物养成以打怪,团战,pk推动情节为主要游戏模式

不过貌似现在摩尔在往塞尔模式发展,自己内部搞同质化了,也有些玩家不能适应 比如
http://bbs.moledl.com/thread-62391-1-2.html ,之前有分析(http://www.docin.com/p-35053009.html)说摩尔的女性用户有68%多,显然女性玩家对装扮,种植,小任务更有兴趣,但是对于淘米,已经做了小花仙意图吸引女孩玩家,摩尔往塞尔上靠,玩家应该也不会有太多的流失。

还有一点,严肃游戏是严肃游戏,娱乐游戏是娱乐游戏,也许有结合的方式,但是似乎成功的并不多,严肃游戏需要政府,或者相关机构给力,娱乐游戏则有其原生的传播力(这方面信息可以百度指数下W游戏和M游戏,人群,设定,都类似,甚至W游戏的美工方面的精良程度超过了M, 但是用户量,关注度,远远低于M,如果你也关注儿童游戏,你应该知道W游戏)。让小孩子在上学,辅导班之外玩游戏的时候还要忍受一些低级拼盘式的“教育”,先不说针对性如何,能记得多少,是否真的达到教育的目的,我觉得还有些残忍 ,小孩子需要一个”快乐的童年”.

Popularity: 39% [?]

分类: webgame行业 标签:

三国杀人工智能思考1

2010年7月27日 admin 1 条评论

先以标准版为对象:
1.人物关系表
relations_table,人物和在场所有角色的关系,关系是发动攻击,计算局面的一个基本条件之一,一开始可以简单的设置主公和所有人关系为0,忠臣和主公关系为100,内奸和主公20, 反贼则为-100 和别人关系为0,当出现杀,牵,乐等伤害性操作时候关系上升,当出现无懈,青囊等帮助性操作的时候关系上升,上升和下降按照操作的不同加权计算.此关系还需要关联变化,也就是攻击敌人的就是朋友,攻击朋友的就是敌人.攻击时候,按照关系升序优先攻击关系差的,对于主公需要考虑局势,显然主公和他人的关系都是明确的,攻击主公显然就是暴露身份.
2.权值
血量,手牌,技能,装备都需要分配权值,对于不同的技能而言,对血量,手牌,装备的权值是不同的.显然爆发型的武将对连弩的要求很高,而对张飞是个无用之物.所以我们也很难找到一个简单的公式来计算不同的牌型和技能的关系,考虑到牌型和武将技并非很庞大,所以直接建个cards_skills_weight二维关系表倒是简单易行的方法,与对血量而言武将看重程度应该是差不多的(华佗需做个修正).
3.局面记录
局面记录是游戏中各种状态的程序描述,记录血量,装备牌,手牌,手牌应该是别人不知道的,但是对于高AI来说,通过奸雄,牵羊,五谷等方式获得的手牌应该算是明牌,剩下的牌在需要的时候可以计算出某种牌出现的概率,总牌数4*13*2 其中装备牌17张 2八卦阵 6马 9武器锦囊牌34张 4无中生有 6过河拆桥 5顺手牵羊 3无懈可击 2借刀杀人 3决斗 3南蛮入侵 3乐不思蜀 2五谷丰登 1桃园结义 1万箭齐发 1闪电 基本牌53张 15闪 30杀 8桃 这些是基本数据。
4.局面估值
三国杀的局面可以直接量化出来,主公要杀死反贼和内奸,忠诚和主公一样,内奸杀所有人,反贼杀主公,每一个角色都有自己的目标也有利益范围,这就可以通过估价量化来。主要是对每一个角色的手牌,血量进行加权计算,得出各方的实力表,每出一张牌其实就是对局面做了一次修改,修改的目的是力求对本方的利益最大化,对对方的利益最小化。有的时候我们不能直接只算一次局面,而是计算多次出牌最终的局面。对于一把手牌,对可出的牌依次做判断,并且在之前的判断基础上再次判断,得出来的就是一个树状的策略描述结构,而且每个叶节点对应一个局面估值,这个树可以先称之为α-β策略树在不考虑和队友配合的情况下,可以按照最小最大的原则做出牌的策略。
5.最小最大原则
什么是最小最大原则?我的理解是不能把别人/计算机想的太2了。别人只剩下一滴血,一张手牌,默认的闪的概率是14.4%左右,你出杀有85.6%的几率命中,但是对方只剩下一张手牌的时候,留下闪的概率其实是很大的一般而言比如原来此人弃了3张牌,连手牌4张,那么他有闪的概率其实是14.4%*4 出杀命中的概率只有42.3%。那么算局面的时候要用最差局面中的最好状态来计算。
先写这么多,在下一篇思考2中会就α-β树深度和遍历,α-β树剪枝算法等做一些简单的描述

Popularity: 50% [?]

分类: 算法-AI 标签:

发两个as3绘图的文件

2009年9月23日 admin 没有评论

发两个用as3绘图的源代码,更新下博客吧。

1.as3画iPhone按钮,效果如下

id="iphoneBtn" width="300" height="360"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"> width="300" height="360" name="iphoneBtn" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">

2.as3画RssIcon,效果如下

id="rssicon" width="300" height="300"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"> width="300" height="300" name="rssicon" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">

代码的下载地址src

Popularity: 85% [?]

分类: flash&flex 标签:

RTMP(Real-Time Message Protocol) Spec is Released at last

2009年6月16日 admin 1 条评论

FlashPlayer关键协议之一的RTMP在宣布开源之后近半年后文档终于公开了,作为Adobe Open Screen Project的重要一步,我很佩服Adobe的战略眼光,没啥说的 http://www.adobe.com/devnet/rtmp/这个地址自己看吧,Red5 性能会有进一步提升了,SFS也会更niubility了

Popularity: 100% [?]

分类: flash新闻 标签:

首款多人联机3dflash游戏 Tanki Online

2009年6月7日 admin 没有评论

Alternativa3D的Tanki Online公测了。需要安装FlashPlayer10。

Popularity: 57% [?]

分类: flash新闻 标签:

Flash Catalyst 和 Flash Builder 4 beta 下载

2009年6月1日 admin 没有评论

http://labs.adobe.com/technologies/flashcatalyst/  和http://labs.adobe.com/technologies/flashbuilder4/ 赶紧体验下,比较看好catalyst

Popularity: 59% [?]

分类: flash&flex 标签:

how to launch a exe by swf

2009年5月8日 admin 1 条评论

这个问题几乎是每个flasher在学习阶段都会遇到,并试图实现的。但是不太靠谱。今天一个学弟又问了这个问题,原因是他的毕设中有这么个需求。我给总结了几种方法,希望对看博客的你有所帮助。

1.传统的fscommand,fscommand(”exec”,..),这种方法要把exe放到同目录的fscommand下面,可以传参,可以 启动bat,但是无法交互,可靠性不高。

2.中转法,有个localserver的角色,启动swf,swf可以和localserver通信,localserver来启动exe,做消息中转。如果真的非得把若干个不相干的东西拼成一个,这种方法可以考虑。扯远点,swf的表现层开发远高于MFC等,所以很多软件公司的精美界面其实就是flash的,比如好几款网游的登录界面,用C++或者别的啥做个壳/容器,也可以看做为中转法。

我和学弟扯到这里,他忽然告诉我,他的swf是在页面中的,是html中的,怎么启动客户机exe。我一头汗,浏览器启动exe…但是,也不是不可能。考虑到是毕设,就让他用delphi,c#或者别的啥拖个webbrowser控件,做个定制的浏览器,还是中转的思路,蒙混过关。但是良心告诉我,不能这么忽悠他。于是有了第三种方法

3.伪协议,说着挺忽悠,其实很简单,自定个协议比如aseye,在注册表中关联到需启动的exe,然后用flsh中getURL(as2)/navigateToURL(as3)它即可比如navigateToURL(new URLRequest(”aseye://***”));原理可以参考迅雷,flashget或者emule,呵呵,具体注册表怎么写? 如果你装了emule。在regedit中ctrl+f  ed2k,看看怎么写的,导出来改改即可了

话说回来我的几种方法都有点不正统的味道,Adobe应该有包容天下的心态才是王者风范,这点该学学python,直接拿c++的东西,不过好在有了alchemy,可以期待,否则连AIR都启动不了别的exe,太玩具了

Popularity: 59% [?]

分类: flash&flex 标签:

facebook flash api lib 发布

2009年4月2日 admin 没有评论

flash在sns游戏中的应用越来越重要,facebook排名前20的,有12个是flash开发的,所以推出as3的lib也是明智的选择,这个地址可以看到详细说明和一些应用例子。

webgame中flash无疑是首选,优势很明显,庞大的开发者群,完善的IDE,90%+的FP覆盖率和各种第三方库,服务器端解决方案…但是webgame还有比较多的瓶颈亟待解决:

1:画面渲染

flash在矢量图处理上的能力无可厚非,但是在大家越来越被3d,次时代的效果惯的日益挑剔的时候,flash在3d处理上还是处于比较低级阶段,经常一个用c/c++很容易实现的效果被flash做了,往往博得众多开发者交口称赞,而用户看来,很卡,交互流畅太低,flash支持硬件加速,提供opengl代理才是3d起航的时候,也许是fp12,fp13吧.

2:高并发

实时webgame,对负载要求很大,著名的CLUB PENGUIN是用的smartfox server,基于xmlsocket的软实时,所以多是回合游戏。fms做边缘服务器是很多棋牌类webgame的选择,但服务器3000-5000的样子,fms的优势在于rtmp,如果没有语音也是浪费,所以自己开发服务器的也不少,况且amf有c,python,php等多种语言的实现方案,难度降了不少,我猜rtmp的文档出来之后应该是百花齐放的时候。red5要改,prtmp要改,相信也会有性能不俗的高效rtmp server,(学好erlang很重要)…

3:防作弊

webgame有先天的不足,他是基于浏览器的,所以和桌面exe不是一个级别。换而言之,他没办法对exe做任何限制。webgame几乎都有作弊的可能,比如之前很火的**三国,相信对外挂是恨之入骨了:)

Popularity: 58% [?]

分类: 前端-frontEnd 标签:

停止所有时间轴动画

2009年3月26日 admin 没有评论

游戏或者动画中使用到时间轴动画,在暂停时mc未必跟着主时间轴停下来,写个简单递归吧。
function stopAllAnimations( mc:MovieClip = null ):void
{
if( !mc ) mc = this as MovieClip;

for(var i:int = 0; i < mc.numChildren ; i++)
{
if( (mc.getChildAt( i ) is MovieClip) == false ) continue;

MovieClip( mc.getChildAt( i ) ).stop();
if( mc.numChildren > 0 )
stopAllAnimations( MovieClip( mc.getChildAt( i ) ) );
}
}

Popularity: 51% [?]

分类: flash&flex 标签:

as3移除匿名监听函数

2009年3月16日 admin 2 条评论

有时候写代码的时候图方便,比如在监听句柄中使用添加监听时的参数,在监听中直接用匿名函数,可以使用arguments.callee获得该匿名监听函数的引用,来移除,举个简单的例子
m_someBtn.addEventListener(MouseEvent.CLICK,function(e:MouseEvent):void{
(e.target).removeEventListener(MouseEvent.CLICK,arguments.callee);

})
arguments.callee 是as2时代就有的东西了,可以方便的引用当前执行的函数,引个例子吧
private var count:int = 1;

public function ArgumentsExample() {
firstFunction(true);
}

public function firstFunction(callSecond:Boolean) {
trace(count + “: firstFunction”);
if(callSecond) {
secondFunction(arguments.callee);
}
else {
trace(”CALLS STOPPED”);
}
}

public function secondFunction(caller:Function) {
trace(count + “: secondFunction\n”);
count++;
caller(false);
}

Popularity: 93% [?]

分类: flash&flex 标签: , ,