<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[IE玩(www.iewan.com)]]></title> 
<link>http://www.iewan.com/index.php</link> 
<description><![CDATA[用IE来玩的游戏，网页游戏，WEBGAME]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[IE玩(www.iewan.com)]]></copyright>
<item>
<link>http://www.iewan.com/read.php?106</link>
<title><![CDATA[献给正在开发和想要开发网页游戏的人们]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Mon, 1 Mar 2010 10:22:00 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?106</guid> 
<description>
<![CDATA[ 
	本来写这样的文章需要大量的提纲、分类清晰、理由充分。可是我不想那么去写、那么写出来的东西、必然流于俗套根本就没什么用。所以剑走偏锋以随笔的形式写点心得罢了、姑且说之、您姑且看之。首先做个名词解释：欠发达地区是指还没有发展起完整游戏产业链的地方。简单点理解就是除北京、上海、长三角之外的地方。武汉和成都游戏圈没有多深的涉猎暂不发表看法。<br/><br/>　　1、为什么做游戏？是为了赚钱、还是为了“漂白”、或者为换名声？<br/><br/>　　2、要做什么游戏？是靠和当地关系做地方棋牌平台还是发展网页游戏？<br/><br/>　　3、资源是什么？有多少钱最重要、当地ZF部门有什么关系次要。<br/><br/>　　4、希望目标是什么？或者野心有多大？<br/><br/>　　5、当地人才素质如何？<br/><br/>　　下面详细说下这5个问题的看法<br/><br/><br/><br/>　　1、【为了赚钱的】<br/><br/>　　从我接触过的游戏开发商看、有些是公司赚钱了。但从事行业前景不是多宽广或发展空间受限、比如矿产、房地产等行业老板想转行做游戏、这个简单“把问题交给专家去处理”、需要的是一个有丰富经验项目经理。比如一些老板想做游戏也有钱、但是不放心把钱交给不放心的人来花、这样的还是趁早放弃吧。<br/><br/>　　【希望漂白的】<br/><br/>　　如果是以前有某些资金来源不是那么恰当、这个从事游戏行业又想出头的人来说是最好的资金来源。这样老板一般很有魄力、放手给你去做、只要在他的原始框架内怎么做随你。比如他要求在哪个城市、做什么东西出来。这样的活也是最想接手的活、之前和那些老板的合作简直太愉快了。只要满足他们的需求、美女汽车随便你玩。这样的情况下、大可利用手中的钱从上海挖掘人才来、那里的数值8000的月薪、你给16000外加吃住全包。程序1万你给2万、外加分红！顺便说一下这样的老板基本不怎么在乎钱、当然作为雇员你有责任也有义务利用你的才能把风险、开销降到最小。<br/><br/>　　【砸钱换名气的】<br/><br/>　　如果是想换名声的最好办、但是油水不多。花钱在投资方所需要的地方租赁个场地、怎么IT怎么装修、再找一批带眼睛很像IT的人去“**”。实际的开发卖给在沿海随处可以找到的技术团队、运营则交给有渠道的来搞。挂个牌子名声就出来了、当然如果想做专业点、可以以“交流学习”的幌子派菜鸟来学点专业词汇什么的。你看、多简单？<br/><br/>　　2、【策略、经营类】<br/><br/>　　开发棋牌游戏或者类似游戏最简单。买个代码招几个美工（当地广告公司挖几个、会用PS就够）挖个程序、忽悠几个应届生做“苦力”分析目标游戏玩法、写出规则或陪程序玩游戏就OK啦。期间可人五人六到高校、游戏学院做演讲换点公司名气什么、推荐经验不多但野心大的游戏人才接手。<br/><br/>　　【大型角色扮演类】<br/><br/>　　这个很难操作、看走钢丝的技巧。首先专业策划案不是菜鸟可以理解的、更不要说做。其次专业美工需求、原画和UI都不是没有经验的可以挑起来的。别以为有个代码或者XX引擎就可以！这些都不重要、重要的是强力项目经理来黏合这些模块。如果很不幸接到这样的项目、干脆建议公司“一拖二”做。最简单的就是蜗牛、蜗牛苏州总部水平烂的一塌糊涂、上海分部不受关注却是真正精英所在。<br/><br/>　　3、有多少钱这个最重要、没钱什么都免谈。以上海为例10万可以使用已有引擎和源代码做个DEMO出来、20万可以开发策略游戏比如《武林三国》那种、40万可以做个带些flash效果的《热血三国》。请记住花钱不在开发上、而在宣传上。普通产品预热加市场投放、花个50~200万千万别吃惊、因为这已经很节约了。三年前做游戏文化经营许可证只需证明1000万资金就可办理、现在却远没那么容易。如果开发普通网页游戏、强烈建议从团队组建同时就去注册那些该死的证件吧、它会比开发更让人头痛。当然如果有很强硬的背景、这关显然就容易多了。诚然不能希望每个公司都有这样关系、但是当地关系网络依然可以从人才招聘开始到IDC免费使用、税务减免、场地等方面享有大量好处。<br/><br/>　　4、在冷静下来之后仔细想想、人不怕贪心、更不怕有野心。重要的是要有与之相匹配的能力、如果你或者跟着做的老板没有这个野心，恐怕前程将更悲惨。应该注意到在考虑目标这个问题时不应该想到要在多少年后上市、要做到中国第X大游戏公司。这叫YY、不叫目标。比如今年出这个游戏用来投放市场、看回馈信息以及持平今年开销。明年分成两批开发团队其中一个出小型游戏来保持市场热度和公司收入，另一个制作大型产品在两年后作为拳头产品、这才是应该考虑的。<br/><br/>　　5、21世纪什么最重要？人才！游戏行业当然不例外。我在五个省一级大学（就是XX大学、比如山东大学）、三个中部省份、一个沿海省份、一个西南省份寻找过人才。可是结果很抓狂、当地大学推荐来的程序班高才生居然超过四成只玩过“空当接龙”。还有什么比这更令人发指的吗？管你家庭好坏、附近网吧多少、学费多少？要的是游戏人才、你不行可以去找别人啊。如果确实想做那么请想办法取个折中方式、让他们到上海游戏公司去学习6个月。你根本没办法依靠自己本领、把这样白痴级学生带成游戏专业人才。<br/><br/>　　以上摘自互联网
]]>
</description>
</item><item>
<link>http://www.iewan.com/read.php?103</link>
<title><![CDATA[游戏开发感悟]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Wed, 11 Nov 2009 03:07:13 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?103</guid> 
<description>
<![CDATA[ 
	<a href="http://www.iewan.com/attachment.php?fid=20" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=20" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>乐趣来自简单的规则，无数的可能性，以及能够给予人充分想象的空间……<br/><br/><br/><br/>
]]>
</description>
</item><item>
<link>http://www.iewan.com/read.php?101</link>
<title><![CDATA[游戏开发的那点破事]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Fri, 19 Jun 2009 01:45:23 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?101</guid> 
<description>
<![CDATA[ 
	作者：新好【网游观察室】<br/>http://blog.sina.com.cn/795029xinhao<br/><br/>这些年游戏开发公司和团队都多了起来,游戏也多了.但大多游戏基本都一个样子,各种梦幻西游+传奇+魔兽世界的产品而已.自打征途开创自动寻路以后,所有的游戏全都有了自动寻路.自打魔兽世界进了中国,一堆游戏都以白,绿,蓝,紫,橙装进行装备系统设定.这样的游戏开发策划在以前是并不存在的.<br/><br/> <br/><br/>一套魔兽世界的UI,在中国多少游戏照搬硬套的抄袭,现在中国游戏纯粹的抄袭.抄各种成功游戏,大杂烩.什么都要有,我想说中国的策划都在干什么?策划们做了些什么事情拿那么高的工资,如此的感觉自我良好.各种抄袭而已就以高人自居.并且放言不可超越,你们行不行啊?脑子进水了吧!你们还有什么不抄的???<br/><br/><br/><br/> <br/><br/>数值找别的游戏的去硬套,套的驴头不对马嘴还要死套.系统抄,UI也抄,抄到最后连剧情和题材也抄.真的投降了,自己做的游戏自己都不玩,依然声称精品,这样还指望它能赚钱,在市场上杀出一片天地.睡醒了没有?具体就不指名道姓说明是哪些游戏了,N多都在保护名单上的游戏公司,明确的举例说明是谁这文章又要被封杀到十八层地狱了.<br/><br/> <br/><br/>如今在中国美术外包公司遍地开花,各公司纷纷美术进行外包.一张建筑,一张原画价格开到800到1200.服了,真的.所谓的美术外包公司XX大型公司NB团队,无非是这些外包团队领头者从某美术学院找来的一批学生们所完成的.有的一分钱都不给这些学生,有的一套上百张他们只需要给学生门区区2000元.学生们通过外包公司给开发公司做出一张张精美的美术图片,开发公司出着高价找他们做,死都不肯为这些学生们提供一个工作机会,学生们依旧找不到工作.多可笑~~~<br/><br/> <br/><br/>而给游戏公司开的一张上千元价格的美术外包,其他的钱早已让外包公司与游戏公司的人里应外合把利润吃掉了.各种谋福利的心态,怎么可能做得好游戏.也许正是如此,当今美术外包公司遍地开花,业务蒸蒸日上,大家热衷外包的原因吧.<br/><br/>
]]>
</description>
</item><item>
<link>http://www.iewan.com/read.php?94</link>
<title><![CDATA[关于游戏的几个重要概念]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Sat, 29 Nov 2008 07:09:45 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?94</guid> 
<description>
<![CDATA[ 
	作者：zhmfreeman<br/><br/>无论是制作游戏，鉴赏游戏，还是评测文章的阅读和写作，都需要辨明以下这些关键的概念，才能准确的描述游戏的特征<br/><br/><br/><br/><br/>一 游戏性与文化层<br/><br/><br/>简单的说，任何一款游戏都可以分为“内在规则”和“外在表现”两部分，内在规则规定了游戏的进行方式，外在表现则通过图像，声音，文字来与玩家进行交互。以非电子游戏象棋为例：“马走日，象走田等等”是象棋这一游戏的内在规则。而一张棋盘，一些棋子则算是外在表现。一般来说，游戏的外在表现与其内在规则是两个独立的概念，互不影响。延续象棋的例子：棋子是玉质的还是木质的并不会影响象棋这一游戏的策略性等等。<br/><br/><br/>从只考虑规则的角度讲，玩游戏的过程可以概括为：玩家输入自己的操作，得到规则这一数学模型的反馈。这就是说，抛开游戏的外在表现不谈，任何游戏都是玩家在操作一个数学模型的过程。而玩家能单纯的从操作这个数学模型（而不是因为游戏的外在表现比如：画面，声音和剧本，对白等等）中获得的快感的多少，就可以作为衡量一个游戏的游戏性的标准。用更标准的定义来说：游戏性是指玩家单纯的从游戏的数学模型（而非其外在表现）中所获得的游戏乐趣。<br/><br/><br/>游戏性是一个复杂的概念，很多概念表明了游戏性的一个侧面，像是游戏的：操作感，流畅度，系统复杂度，策略性，技巧性，隐藏要素，收集要素，随机性，等等都可以增强游戏的游戏性<br/><br/><br/>文化层对游戏的影响同样不可低估。试想，如果玩家操作着一个A属性99，B属性76，C属性92，D属性96，E属性96的正方形，统治着正方形王国，随时准备发兵统一整个几何世界，会是多么乏味的一个场景。可是当游戏设计师们告诉你这个正方形名叫曹操，他的统率力是99，武力是76，智力是92，政治是96，魅力是96，随时准备发兵统一中国，游戏就一下变得生动起来。同样，当年FF7凭借大量高品质CG奠定其经典地位，使命召唤凭借其出色的氛围营造打败荣誉勋章成为二战FPS的王者，都是基于同样的原因：游戏的文化设定对游戏产生的影响。<br/><br/>　<br/><br/><br/><br/><br/>二 影响游戏性的概念<br/><br/><br/>1 操作手感<br/><br/><br/>操作手感是指玩家操作游戏时获得的主观感受。操作手感对动作游戏格外重要。影响操作手感的主要因素有：游戏的速度感设定，游戏的重力感设定，游戏的流畅度，游戏的视角设计<br/><br/><br/>速度感设定：玩家操作的人物不能跑的太快，否则玩家会觉得晕眩，人物也不能跑的太慢，否则玩家会觉得无聊。如果是将速度感作为重点的游戏，（像是竞速游戏，Sonic系列），则必须弱化游戏的其他因素，比如Sonic系列的战斗不能过于复杂，或者竞速游戏不可能包含攀爬跳跃地形等等<br/><br/><br/>重力感设定：玩家操作的角色不能跳的太高，否则玩家会觉得跳很乏味（尤其是玩家在跳起后直至落地前不能操作的情况下），玩家操作的角色也不能跳的太低，否则玩家会觉得跳没有意义，在跳跃方面最具有指导意义的是平台类动作游戏，观察一下超级马里奥里对跳跃的设定就不难理解重力感对游戏操作感的重要影响了：每一次跳跃都会为了准确的落到下一个平台或者怪物的头顶上吸引玩家集中精神，对跳跃的微妙设计使马里奥大叔成了经典<br/><br/><br/>游戏的流畅度：是指玩家从一气呵成的连续的做出动作中得到的乐趣，这一点自然不需多言，谁会愿意去玩一款10秒钟才砍一刀，没有连续技，20秒才跳一下的动作游戏呢？<br/><br/><br/>视角设定：玩家在动作游戏中除了操作自己的角色外，很经常需要操作游戏的摄像机来调整视角，同时系统一般都提供自动视角。自动视角的设计对玩家的操作体验也有很大的影响。如果视角自动调整过于频繁，玩家会觉得头晕，如果过于松散，玩家又会因为不停的手动调整视角而分神。如果自动调整视角时镜头移动的过快，玩家浪费一段时间反应自己所在位置，如果镜头移动的过慢，又会影响玩家对战局的把握。<br/><br/><br/><br/><br/>2 策略性与技巧性<br/><br/><br/>策略性是指玩家对策略的应用能过多大程度的影响战局，甚至决定战局。RTS之所以能成为电子竞技的典型项目，正是因为其高深的策略深度。同样，在FPS中也有一定的策略体现，像是CS中战术的分配，走位，防守位置等等<br/><br/><br/>技巧性是指玩家的操作技巧能多大程度的影响战局，甚至决定战局。动作游戏尤其是格斗游戏中表现的尤为明显。连续的准确输入，用连续技一气呵成重创对手的快感正是来自于技巧性的体现。<br/><br/><br/><br/><br/>3 隐藏要素与收集要素<br/><br/><br/>隐藏要素：是指玩家在游戏中达成某些特殊条件而获得的特殊奖励的设计。一个经典的例子是《无双》系列中在指定战场指定难度下达成条件得到“秘藏武器”的设计。得到隐藏要素时的满足感可以吸引玩家不断的进行游戏<br/><br/><br/>收集要素：是指玩家通过收集一定数量的某种道具来达到某种效果的设计。像是《马里奥》中的金币，《鬼泣》，《战神》中的红球。收集要素可以刺激玩家们对地形的全面探索欲，同时与隐藏要素不同的是，即使错过了一定的收集要素，也不会蒙受什么巨大的损失，因为后面也许还有更多的金币。<br/><br/><br/><br/><br/>4 系统复杂度<br/><br/><br/>系统复杂度：是指游戏中有多少需要玩家考虑的要素会同时影响战局。系统复杂度保持在低水平可以吸引泛游戏玩家，一定的系统复杂度可以吸引一般玩家，而极度复杂的系统则只能吸引核心玩家了<br/><br/><br/><br/><br/>5 随机性<br/><br/><br/>随机性：是指游戏中玩家可以通过运气对战局产生影响的多少。适度的随机性可以增强游戏的趣味性，可以产生一些超越规则的经典镜头：“在只剩最后1点生命值的时候连续5次闪避，给予敌人致命一击”等等。但是过度的随机性会让玩家觉得系统难以驾驭，挫伤玩家的游戏积极性<br/><br/>　<br/><br/><br/><br/><br/>三 影响文化层的几个概念<br/><br/><br/>1 代入感与临场感（感谢Mark的意见）<br/><br/><br/>代入感：玩家通过和游戏中的角色交互产生的与角色共鸣的感觉，甚至进入角色的错觉。<br/><br/><br/>临场感：游戏通过画面，音乐，资料设定营造出的拟真氛围。<br/><br/><br/>这是一对很难分辨的概念，简单的说：代入感是动态的，要产生代入感，你必须与你所扮演的皇家空勤队员一同出生入死，一起做出决定，一起欢笑，一起悲伤，直至你相信你就是那个扛着M4的Soap（注：《使命召唤4：现代战争》的主角）。而临场感是静态的，当你看到昏黄的天空，断壁残垣，听着隆隆的炮声和呼喊的德语，看着手中来自真实二战资料的枪支，你会明白：“原来我回到了二战。”<br/><br/><br/>值得一提的是，优秀镜头的运用可以同时有效的提升游戏的临场感和代入感，让玩家通过角色的视野观察游戏世界，可以在培养玩家与角色的共鸣的同时向玩家传达氛围的营造<br/><br/><br/><br/><br/>2 硬派游戏，核心游戏，与FANS向游戏<br/><br/><br/>硬派游戏：难于精通（无论是否易于上手）的游戏，通常具有很高的难度，玩家需要长时间的磨练才能掌握的游戏。这种高难度有可能来自其较高的系统复杂度（像是《魔兽世界》），或者较高的拟真度（像是《盟军敢死队》）或者较高的技巧性（像是《KOF》《街霸》）<br/><br/><br/>核心游戏：玩家必须具备一定程度（通常是很高程度）的某方面知识才能顺利进行的游戏。<br/><br/><br/>FANS向游戏：一般玩家都可以顺利进行游戏，但是FANS会获得额外乐趣的游戏。<br/><br/><br/>核心游戏与FANS向游戏的显著区别就在于核心游戏必须以一定的知识作为基础才能进行，而对于FANS向游戏来讲，即使不是FANS也能从中获得乐趣。例如一个对足球一无所知的人是不可能去玩《冠军足球经理》的，因为他甚至不知道该如何操作，更不用说得到乐趣了。但是即使是一个从没看过《机动战士高达》的玩家也可能会迷上《高大混战：编年史》，因为即使脱离了高达的包装，《编年史》依旧是一款优秀的动作游戏，但是高达FANS们控制着自己喜爱的机体战斗，会获得作为FANS的额外乐趣<br/><br/>　<br/><br/><br/><br/><br/>四 结语<br/><br/><br/>总结一下才发现，影响一款游戏品质的概念竟有如此之多，各方面都优秀的作品称作经典，在各方面都优秀的基础上有一点做得格外突出，就会成为神作。仅凭一个优秀创意或者设定就成为经典甚至神作的时代已经一去不返了，这不知算是一种倒退还是一种进步，“游戏发展的黄金时期已经过去”这一论调恐怕就来自于此 。<br/><br/>
]]>
</description>
</item><item>
<link>http://www.iewan.com/read.php?92</link>
<title><![CDATA[web策略类游戏开发(五)数据库表设计]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Wed, 19 Nov 2008 06:33:01 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?92</guid> 
<description>
<![CDATA[ 
	有人希望看数据库表，在这里发一下表设计，基本上没有什么特别的地方需要解释的，数据库的字段名都写得很清楚了。当然，目前的字段只是游戏的基本字段，如果游戏功能多起来后，表设计会比现在复杂。<br/><br/><br/><br/><a href="http://www.iewan.com/attachment.php?fid=6" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=6" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://www.iewan.com/attachment.php?fid=7" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=7" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://www.iewan.com/attachment.php?fid=8" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=8" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://www.iewan.com/attachment.php?fid=9" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=9" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://www.iewan.com/attachment.php?fid=10" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=10" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://www.iewan.com/attachment.php?fid=11" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=11" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://www.iewan.com/attachment.php?fid=12" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=12" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://www.iewan.com/attachment.php?fid=13" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=13" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://www.iewan.com/attachment.php?fid=14" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=14" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>作者：Yahle<br/>曾用网名：Dogvane<br/>原载：http://www.cnblogs.com/yahle<br/>版权所有。转载时必须以链接形式注明作者和原始出处。
]]>
</description>
</item><item>
<link>http://www.iewan.com/read.php?91</link>
<title><![CDATA[web策略类游戏开发(四)一个可以承载万人在线的架构]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Tue, 18 Nov 2008 05:09:43 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?91</guid> 
<description>
<![CDATA[ 
	Webgame现在已经开始需要进入大统一服务器时代，每个游戏区域容纳的玩家数量将从现在的几万人发展到几十万人，因此在新的背景下，webgame如何处理大量用户的请求将成为问题。目前一台asp.net做的weggame服务器每秒能处理500~1000个页面请求，按照每个玩家每隔3~5秒做一次页面操作（页面请求），一台服务器能承受2k~4k的玩家在线，对于一个只有几万人的策略游戏来说，已经是足够了。但对于一个未来将承载几十万人的游戏来说远远不够。<br/><br/><br/><br/> 通过分析，玩家在游戏过程中，有80%以上的访问仅仅只是查看玩家在游戏里的状态，实际上真正会对游戏运行状态及数据修改的的页面请求不足20%。因此，我们可以将呈现页面和处理游戏逻辑的功能拆分为2组服务器：页面服务器和逻辑服务器。两者之间可以通过remoting的方式进行数据通讯。将服务器分离后，随着页面服务器的增加，页面访问能力能应该能提升4~6倍。在往上逻辑服务器就会出现访问瓶颈。解决方法可以让页面服务器在读取玩家数据时直接访问数据库或者增加一个对象缓存服务器。页面服务器只有在必要的时候（需要进行逻辑运算时）才访问逻辑服务器，而逻辑服务器在玩家数据发生改变后更新对象缓存服务器和数据库。这样就可以大大降低逻辑服务器的访问次数，使页面访问能力进一步提升，轻松突破万人在线。如果访问量还需要继续扩大，可以用httpd做前台负责相应图片以及css等静态文件。<br/><br/><br/><a href="http://www.iewan.com/attachment.php?fid=5" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=5" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/> <br/>作者：Yahle<br/>曾用网名：Dogvane<br/>原载：http://www.cnblogs.com/yahle<br/>版权所有。转载时必须以链接形式注明作者和原始出处。
]]>
</description>
</item><item>
<link>http://www.iewan.com/read.php?90</link>
<title><![CDATA[web策略类游戏开发(三) 多线程下数据库并发更新的处理 ]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Thu, 13 Nov 2008 05:04:45 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?90</guid> 
<description>
<![CDATA[ 
	1 多线程下数据库并发更新的处理<br/><br/>1.1 背景<br/><br/>不知道大家在玩《Travian》时有没有做过这样的事情：<br/>同时打开多个集结点，并设定好要出发的士兵及数量，在快到压秒的时候，快速切换页面，不断的点确定，以确保游戏不会通讯问题导致压秒失败。<br/><br/><br/><br/>再看一个教科书里经常提到的数据库脏数据的案例：<br/>A操作从表里获得数据D=10，在计算的时候，线程刚好进行切换，切换到B，B也需要操作D，并从数据库里取道值为10，在进行简单操作（D=D- 2）后将D=8的值写回数据库。B操作处理结束后，线程再切换回A操作，这时A在做自己的操作时，仍然采用先前取到D（10）的值，在进行一个简单操作（D=D-1）后，仍然写回数据库。这时，数据库里的值变为9，而实际上D的值应该是7（D=10-2-1).。造成这个问题主要是因为CPU在执行A、B操作时没有按照顺序来执行，而是让B抢先在A执行完之前执行，导致它们在计算D的时候，因为数据没有同步而发生写入脏数（A的数据覆盖了B的数据）据的问题。<br/>A操作伪代码：<br/>&#123;<br/> D=GetDB()<br/> D=D-1<br/> SetDB(D)<br/>&#125;<br/>B操作伪代码：<br/>&#123;<br/> D=GetDB()<br/> D=D-2<br/> SetDB(D)<br/>&#125;<br/>一个简单的图表表示它们的操作：<br/>&nbsp;&nbsp;<br/><a href="http://www.iewan.com/attachment.php?fid=3" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=3" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>仿照第一个例子，当一位玩家同时打开多个页面点出兵进攻后，这些这些请求会同时到达服务器，服务器会根据这些Http请求创建相应的线程来处理进攻动作：<br/>进攻的伪代码：<br/>&#123;<br/> 村庄士兵数量=GetDB()<br/> if (村庄士兵数量 > 这次进攻士兵数量)<br/> &#123;<br/>&nbsp;&nbsp;村庄士兵数量=村庄士兵数量-这次进攻士兵数量<br/>&nbsp;&nbsp;SetDB(村庄士兵数量)<br/> &#125;<br/>&#125;<br/>按照第二个脏数据的例子，应该很容易想到，我们在这次进攻的时候，很有可能派出了2只部队，但是只减少了1只部队的士兵。<br/>多线程未同步是造成游戏bug的原因之一。<br/><br/>1.2 多线程并发与互斥<br/>关于什么是多线程，以及多线程下面的同步及互斥的方法我这里就不过多的介绍了，相关内容可以到网上搜索，本文主要是讨论同步的时机以及避免死锁<br/><br/><br/>1.3 WebGame里多线程数据同步的方法<br/><br/>1.3.1 在asp.net下用lock进行加锁操作<br/>在我们的WebGame里，采用asp.net的lock方法。具体就是在方法体里，用lock里锁住一个对象，使其它方法在访问这个对象的时候被阻塞。当第一个访问对象的线程退出并释放锁以后，其它的线程才能取消阻塞状态继续操作该对象。<br/>我们通过修改上面进攻的伪代码，增加lock操作：<br/>&#123;<br/> lock(锁定的对象)<br/> &#123;<br/>&nbsp;&nbsp;村庄士兵数量=GetDB()<br/>&nbsp;&nbsp;if (村庄士兵数量 > 这次进攻士兵数量)<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp; 村庄士兵数量=村庄士兵数量-这次进攻士兵数量<br/>&nbsp;&nbsp; SetDB(村庄士兵数量)<br/>&nbsp;&nbsp;&#125;<br/> &#125;//unlock(锁对象)<br/>&#125;<br/>CPU执行流程表：<br/> <br/><a href="http://www.iewan.com/attachment.php?fid=4" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=4" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>&nbsp;&nbsp;<br/><br/><br/>1.3.2 锁的粒度<br/>上面的伪代码是对游戏里的逻辑代码进行了加锁处理，但只是简单的描述该方法体里需要进行加锁以及加锁的范围。但在实际的代码里，我们需要明确lock里锁定的对象。如果这个对象选择不合适，很有可能会造成性能损失或者死锁。<br/><br/>1.3.2.1 数据库锁<br/>数据库锁是最一种简单的方法就，凡是在存在发生数据库写操作的代码里，都需要进行加锁处理，并同意用一个数据库锁对象。<br/>这种方法使用简单，不容易造成死锁。当存在的问题也是明显，就是在发生写数据库操作时不能并发操作，这点特别是当用户访问量增大可能会造成一定的性能瓶颈。<br/><br/>1.3.2.2 村庄锁<br/>为了提升写数据库的效率，我们必须解决锁粒度过大的问题，因此在我们的游戏系统里，对锁的粒度进行的细化，细化到村庄级别的对象。<br/>在游戏一张村庄表对应是整个游戏里所有的村庄对象，而一个村庄对象在村庄表里只是一条记录。在使用数据库锁时，其实是告诉其它方法，现在我要写数据库，大家都等一下，等我写好后再写。当我们将锁的对象细化到村庄（一条数据库表记录）的时候，实际是告诉数据库，我现在要修改XXX村庄，大家都别动它，但你要修改YYY村庄我不管。<br/><br/>死锁<br/>在前面虽然降低了锁的粒度，提高了数据库并发性能，但随之而来就很容易发生一个问题--死锁。<br/>例如当两个村庄需要发生交易，这时我们需要同时修改A、B两个村庄对象，需要对其进行顺序锁定（先锁定A，再锁定B），这时候，又发生另外一个操作，也需要同时对A、B两个村庄进行锁定，恰巧这个锁定的顺序是B、A。这样就造成两个现在互相等待形成死锁。<br/><br/>中间变量解决死锁<br/>对于死锁，在关于多线程介绍方面有很多解决方案，这里就不过多阐述。在WebGame里预防死锁，可以采用结合游戏的操作流程，对游戏处理流程及数据进行拆分，来预防死锁问题。简单的来说，就是将涉及2个村庄修改的流程拆分为2个流程，并用中间变量予以表示，两个处理流程涉及变化的值都在中间变量里予以保存。<br/>以前面提到的交易为例，在游戏设计里，两个村庄在交易的时候，并不是瞬时交易，而是通过商人进行运输并交易。这样我们就以商人作为中间变量。<br/>A<-->C<-->B<br/>在上图里，交易开始，是由玩家触发交易事件，这时以村庄A为锁对象，进行锁定。C作为要交易资源从村庄A里被扣除。并将A修改后的数据回写到数据库。等过了一段事件后，商人C到达了目的地，这时由系统触发后续的交易事件，这时以村庄B作为锁对象进行锁定。村庄B在获得资源后写回数据库，整个交易事件就算完成了。<br/>当然实际游戏的交易比上面的例子稍微复杂一点点，因为交易双方都有资源的减少与获得。完整的流程应该是需要锁定4次，并产生2个中间变量。<br/>村庄A-->商人1-->村庄B<br/>村庄A<--商人2<--村庄B<br/><br/>游戏里其它地方的锁定<br/>基本上，凡是某个事件涉及到两个村庄修改的地方，都可以用上面的锁定的方法对处理流程进行修改。例如村庄A攻打村庄A。当然其它事件在数据修改方面只涉及1个村庄，那么就不需要怎么麻烦，直接对村庄加锁锁定即可。<br/>好在在策略类的WebGame里涉及两个村庄的情况不多，涉及到的基本可以用中间变量对操作流程进行拆分，因此这种锁定方式在策略类WebGame还是比较合适的。当然实在不行也只能按照以往的预防死锁的方法进行处理<br/><br/>1.4 非Asp.net里同步的方案<br/><br/>1.4.1 Java<br/>java在线程同步机制上与asp.net基本一致，因此上面所述的asp.net的方法也适合与java<br/><br/>1.4.2 php<br/>了解不多，不过好像php没有线程锁与同步这个概念，如果直接通过语言环境进行同步可能比较困难。<br/>不过在MySQL里，存在一个表锁定的方法，可以通过lock table的方法锁定表，不允许其它MySQL用户去进行操作。基本上和前面提到的数据库锁类一样，只不多执行方法的时候是在MySQL端执行。<br/><br/><br/> <br/><br/>作者：Yahle<br/>曾用网名：Dogvane<br/>原载：http://www.cnblogs.com/yahle<br/>版权所有。转载时必须以链接形式注明作者和原始出处。 
]]>
</description>
</item><item>
<link>http://www.iewan.com/read.php?88</link>
<title><![CDATA[web策略类游戏开发(一) WebGame架构篇]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Wed, 12 Nov 2008 06:16:52 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?88</guid> 
<description>
<![CDATA[ 
	1 体系结构<br/><br/>1.1 传统的网站的架构<br/>传统的网站一般都是以N层结构一般N为3，就是我们常说的三层架构。<br/>3层架构分为数据层、业务逻辑层、页面显示层。<br/><br/>1.2 WebGame的架构<br/>WebGame可以看作是网站和游戏的结合体，因此它具备了这两类系统的特性。我们不但可以把WebGame看作是一个网站，也可以把它看作是一个网络游戏。<br/>的网站是B/S结构，网络游戏则是C/S结构，WebGame则是这两者的结合我们暂且称之为B/C/S结构。既在用户眼里，它是一个通过浏览器范围的网站。在服务器系统里，它又是一个传统的C/S结构的网络游戏。<br/><br/><br/><br/><a href="http://www.iewan.com/attachment.php?fid=1" target="_blank"><img src="http://www.iewan.com/attachment.php?fid=1" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/> <br/>从上图分析，用户通过浏览器访问服务器的时候，首先是访问网页服务器，如windows平台下的IIS,linux下的Apache。在通过网页服务器，以某种特殊的方式（分布式访问，如.net下的remoting）去访问游戏服务器，通知游戏逻辑服务器执行玩家操作，并从游戏逻辑服务器里获得游戏相关的信息，或者直接通过访问数据库而获得游戏数据。<br/><br/>1.2.1 为什么要将服务器分为游戏服务器和网页服务器<br/>网页服务器的特点是触发执行，及当有用户访问网页的时候，才会执行该网页的程序代码。而我们常见的WebGame（Ogame,Travian)这些游戏实际上是需要24小时不间断执行的，因此网页服务器的执行方式并不适合与游戏。因此我们另外需要一个应用程序来执行这些24小时不间断要做的事情。这也就是我们需要增加一个游戏服务器的原因。<br/><br/>1.3 Web三国的架构<br/>因为目前Web三国是非商业开发，因此如果照搬上面的WebGame架构来设计，会导致开发周期过长，开发效率低下的问题。实际上在开发初期，Web三国是按照上面的架构去开发，碰上了上述问题，才换了另外一种结构。<br/>实际性现在Web三国的结构和WebGame架构差不多，只不过将游戏服务器集成到网页服务器里，项目里按照传统的网站架构，将游戏分为：数据层、游戏逻辑层、页面层。<br/>至于如何实现24小时不间断处理，者是通过在游戏启动时，创建一个线程去处理。这个是asp.net里的一个功能，我不清楚php里是否也有这样的功能。<br/><br/><br/> <br/><br/>作者：Yahle<br/>曾用网名：Dogvane<br/>原载：http://www.cnblogs.com/yahle<br/>版权所有。转载时必须以链接形式注明作者和原始出处。 
]]>
</description>
</item><item>
<link>http://www.iewan.com/read.php?85</link>
<title><![CDATA[论网络团队纯业余开发]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Mon, 6 Oct 2008 09:52:54 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?85</guid> 
<description>
<![CDATA[ 
	作者：陈珺 <br/><br/>按照游戏开发投入与产出的不同性质，我们可以把游戏开发分为三类。如果游戏开发投入了大量资金，并且是以盈利为目标的，这就属于商业开发。如果游戏开发没有投入或者少量投入资金，而以商业化或盈利为目标的，这就属于商业业余开发。如果游戏开发没有投入或者少量投入资金，而不以商业化或盈利为目标的，这就属于纯业余开发，这是本文所要讨论的对象。<br/><br/><br/><br/><br/>一、纯业余开发的目的<br/>根据上面的定义，我们知道纯业余开发不是以商业化或盈利为目的的，那么为什么还有那么多人搞纯业余开发呢？我想这是因为很多人有自己心中的梦想的游戏，那么追求这些梦想的游戏有什么意义呢？为了使自己得到满足，使自己过得更幸福。一句话，纯业余开发的目的是为了使自己获得幸福，提高自己的生活质量。不管是游戏开发过程所带来的提高还是游戏完成能体验到的游戏，它都给纯业余开发者带来了幸福，与此同时，还能给玩家带来幸福。我想，只要开发中或多或少达到了这个目的，我们的开发就没有白做。<br/>二、纯业余开发的本质特征<br/>既然要说本质特证，首先就要说明什么是本质特征。所谓本质特征就是最基本的特征，即这些特征不能由其它的基本特征推导出来，所有的本质特征都是独立的。我们现对游戏开发的投入要素考察以得出纯业余开发的本质特征有哪些。游戏开发需要投入的，总的来说就是硬件和时间，其中硬件主要包括电脑，存放电脑的场所，美工作图所需硬件，如果有网络方面的需要，还包括网络。而技术主要是由时间投入所得到的产物，人员投入主要目的就是时间，因此人员投入其实就是时间投入，资金则是为了保证人员和硬件的投入，因此也可分解成硬件投入和时间投入，引擎属技术的一方面，因此也属时间投入。这里要指出的是硬件和时间随着投入的增加，是可以积累的，积累的越多，开发的实力就越强，一款游戏开发的速度和质量则是由实力决定的。商业开发一开始由于有大量资金投入，因而转化成的硬件和时间的积累就越多，因而实力也就越强，而商业业余开发和纯业余开发由于缺乏资金注入，因而需要缓慢的硬件和时间的积累过程，因此在一开始实力比较弱。<br/>接下来，我们从硬件和时间两方面来研究得出纯业余开发的本质特征。游戏开发主要由策划、程序和美工三个部分的工作组成。其中策划的产物一般是以文件的形式出现，比如WORD策划文档，还有输入数据所产生的文件，而这些产物的产生过程是用电脑，因此策划并不需要什么特殊的设备。而程序的产物主要以源代码和二进制文件出现，也只需要通过电脑的操作就可以了，也不需要什么特殊的设备，当然我这里所说的程序是指计算机程序员，如果是其它平台的那就需要特别的设备了。美工的产物虽然也是以文件形式出现，但是在产生这些文件的过程中需要特殊的设备，因此需要特别的设备。而目前的纯业余开发的合作方式很多是通过网络来进行的，因此网络也是个必不可少的设备。根据这些方面分析，再对商业开发对比，我们可以得出一个结论：纯业余开发在硬件方面偏弱，这种偏弱集中体现在美术方面。由于对于纯业余开发者来说，游戏不是必需品，因此他的主要时间不可能放在游戏开发上，因此相对商业的来说，时间偏少。并且由于纯业余开发者日常生活中有各种各样的事占去了时间，而占去的时间段是不确定的，因此纯业余开发者的时间是分散的。根据上述分析我们得出，相对于商业开发者而言，纯业余开发者时间偏少且分散。<br/>三、纯业余开发的组织形式<br/>如果一个游戏所有的工作（工作可以利用已有的成果，但是这个已有的成果不是仅仅为了这一个游戏）都由一个人完成称为个体开发。如果一个游戏所有的工作由至少两人的工作完成则称为团体开发。由于一个游戏开发的速度和质量需要有大量的硬件投入和时间投入，特别是时间投入，而个体开发对于时间投入的积累是有限的，因此要想做到游戏开发的速度和质量比较好，就需要采取团体开发的方式。<br/>既然是团体开发，就需要考察团体的人员构成。如果团体中的人员都来源于现实，我们称为地理邻近型团队。如果团体中的人员都来源于网络，我们称为网络合作型团队。地理邻近型团队的优点在于联系方便，对开发的约束力强于网络合作型团队，缺点在于人源范围窄，不易寻找所需的人源，而网络合作型团队的优缺点恰恰相反，此外网络合作型团队还有一个优点就是便于宣传，这就更加扩大了人源范围。由于在现实中，除了特殊情况外，一般人源范围都过于狭窄而导致无法寻找所需的人员，因而到致在现实中组团困难。而在网络上由于人源范围广，容易找到人员，因此容易形成团队，但是也带来了联系不便的缺点。本文只讨论纯业余开发在网络合作型团队下（以后简称为网络团队纯业余开发）的情况。<br/>接下来，考察网络团队纯业余开发人员的特征。由前面的分析可知，团队成员之所以愿意开发，是为了提高生活质量。而提高生活质量不一定非要有游戏的出现，技术的提高也是一种形式。如果这个目的不能被满足，团队人员会放弃开发。团队人员之所以会有这个热情，正是来源于对提高生活质量的期望，如果这个期望被削减，热情自然就下降了。因此有热情是网络团队纯业余开发的一个特征。而对于商业游戏开发来说，游戏开发对于成员的目的很可能就只是满足其基本生存，而非提高生活质量。<br/>接着，我们要讨论团体在积累方面的特征。对于个体开发而言，个体开发者拥有了开发所需的全部硬件和时间，因而也就拥有了全部的积累成果，而对于团体而言，硬件和时间的积累既有公共的又有分散的，很多成员往往在加入团队之前就有了硬件和时间的积累，这种积累是随着加入团队而得到离开团队而消失，成员在加入后所获得时间积累，如果未将其转成公共的，也将随着其离开团队而消失。当成员加入团队时或在实践中总结后提供给团队积累资料，这种积累资料就成为公共的，但是任何的团队成员由于各种原因都不可能把个人积累资料转成公共积累资料，因此当一个成员离开团队时团队的积累资料必然有所损失。对技术资料的再学习就是一个例子，因为原有成员对技术资料的理解本身就是一种个人积累资料，这种个人积累资料不易转成公共积累资料，因而当其离开时这种积累资料就没了，需要其它成员的再学习。对于网络团队纯业余开发而言，相比商业开发，硬件是分散的，这是因为硬件和人员一般来说要求空间距离上的邻近才能取得效果，而网络团队纯业余开发的人员分布又是分散的，因而导致了硬件的分散，当有关人员离开团队时，这种硬件资料也会随之带走。因此，硬件是分散的是网络团队纯业余开发又一特征。<br/>四、网络团队纯业余开发的优缺点<br/>根据之前的分析我们就可以得到网络团队纯业余开发的优缺点（都是相对于商业开发和地理邻近型团队纯业余开发）：<br/>优点：热情高，人源广，便于宣传<br/>缺点：美术硬件缺乏且分散，时间缺乏且分散，人员分散，沟通不便，约束力弱<br/>还有一个特征是中性的：积累资料既有分散也有集中<br/>对于优点，我们要加以利用，对于缺点，我们需要克服并尽可能利用其有利的一面。<br/>五、研究网络团队纯业余开发的意义<br/>很多人都想开发自己想要的游戏，但是由于组织方法不正确，失败了。失败了以后就不再开发游戏，转为做其它的事，而往往很多时侯，做其它事所带来的满足感小于做游戏所带来的满足感，因而影响了个人生活质量的提高，同时，也影响了玩家生活质量的提高。并且这些失败的开发者，虽然有一定的能力，但是由于缺乏合理的利用方式，造成了资源的浪费。为了避免这种资源的浪费和提高生活质量，就需要研究出一套有效的组织方式，这就是研究研究网络团队纯业余开发的意义。此外，追求提高生活质量是长期性的事情，因此我们所研究的也是如何长期的生活质量，有些方法虽然短期提高生活质量很有效，但是对于长期的不行，这同样也导致了资源浪费和影响生活质量的提高。<br/>六、网络团队纯业余开发的研究方法<br/>由于目前对于网络团队纯业余开发尚浅，这里不可能提出一套有效的方法来发挥优点克服缺点，只能提出一些有效的研究方法，我相信，应用这些有效的研究方法，经过长时间的积累，一定可以探索出一套有效的方法。在说明研究方法之前，我想强调一个很重要的原则，那就是一定要遵从客观实际，在条件好的情况下，有些缺点可能不存在，比如时间丰富，这时缺点反而可能成为优点。但是要认识到，这只是暂时的，如果我们搞的是长期性的开发，就不能够认为以后时间一直都是丰富的，以至于以后如果遇到时间缺乏的情况还认为是不正常的，从而放弃开发。这样一来，就造成了资源浪费而且影响生活质量的提高。接下来说明研究方法。<br/>第一，多了解基础。基础包括技术基础和管理基础。这些基础告诉了我们一般的原理，这些一般的原理往往就是解决实惠问题的办法。比如说技术基础有数据结构，它告诉了我们数据之间的关系如何描述，相关的算法如何优化等等，我们应用数据结构的有关原理就能扫除在设计上的障碍，而这些原理靠自己想有时很难想到。当然在我们不能为了解基础而了解基础，在了解之前我们必须有个明确的目的，即这个基础能解决什么样的问题。另外，既然是基础，它的实用性自然不是非常高，但是作为一个长期的开发者，这种基础的学习是必要的，它虽然短期内看不出作用，但是在长期它是大有益处的。而技术恰恰相反，它能在短期内起作用，而时间长了就会过时，因此对于长期的开发者而言技术只要够用就行，不用追求太多的技术，因为技术是可以跳着学，而基础只能一步一步的学。<br/>第二，多开发实践。团体的实力来源于时间的积累，而时间积累很大一部分就要靠实践，实践所获得的积累有一部分可以转成公共积累，但更多的一部分是个人积累，这些个人积累的获得只能通过实践，当然我们要努力把个人积累转为公共积累，因为这对团队长期发展是有利的。<br/>第三，多总结多交流。总结不仅是把个人积累转为公共积累的一个重要途径，也是增加个人积累的一个重要方法。思考和写文章是总结的两个重要方法。思考能够把自己所实践的理出条理，从而在这条理中发现新的知识，往往这种知识对以后的开发指导性很大，思考本身虽然不能够把个人积累转化为公共积累，但是为此准备了基础。写文章则是以书面形式把个人积累转化为公共积累，在写文章的过程中，书写速度慢于思考速度，虽然这本来是缺点，但是这正是能够启发我们思考的关键所在，这也是我为什么写这一系列文章的原因。交流则是把个人积累传播给他人的途径，不仅如此，与人交流同样能启发人的思考，甚至很多大家都解决不了问题，通过交流就发现突然想出办法了。<br/>第四，参考专业的做法。虽然我们是纯业余开发，有可能一些专业的做法并不适合我们，但是专业的做法的确能够解决实际问题，而且很多还是可取的，排斥专业的做法，并不利于我们的提高。当然，我们也不能完全照搬专业的做法，因为它往往需要一定的条件，因此我们必须结合业余的实际来分析是否可取。<br/>第五，要敢于从自己的角度看待问题。很多问题虽然有现成的做法，但不一定是最好的，我们用自己的角度来看待问题解决问题，说不定能给这个问题更好的解决办法，同时还可能发现新问题。<br/>第六、发展是最重要的。对很多问题作出选择的时侯，要以是否有利于发展作为标准，作为长期性的团队，只有发展才能从根本上提高实力，从而做出想要的游戏。<br/>七、网络团队纯业余开发的发展策略<br/>研究方法只是说明了如何发展的一般性原则，那么具体该怎么做呢？下面就是说明这个的。<br/>第一，团队需要有长期都在的人员。这是因为团队积累有很大一部分都只以个体积累的形态存在，而团队的人员易变动也就导致了个体积累的易变性，如果有一个长期都在的人员，他可以通过不断于这些人交流取得一部分的个人积累，而由于这个人是长期都在的，我们可以把其视为公共积累，从而使人员离开所造成的个人积累的损失减少。另外，由于长期在团队里，有了大量的个人积累，从而处理起问题也更为方便。开发也更有效。<br/>第二，重视对特定类型游戏研究并且选定一个游戏特例。由于网络团队纯业余开发的时间缺乏，而又以提高生活质量为目标。因此要想保证做一个游戏的时间，就需要集中在一个类型的游戏上（虽然只在一个类型的游戏上研究，但是它具有游戏的一般特性，从而间接的产生对游戏的认识，因而对其它类型的游戏也有一点指导作用。），这样把研究范围缩小了，更利于研究深入，当然同时也要适当了解别的游戏，以保证广度。光光选定游戏类型还不够，还需要选定代表游戏来研究，因为这样我们才能更好地认识到游戏类型的本质特征是哪些。<br/>第三、要把握游戏的游戏框架。如果把握了游戏的游戏框架，那么就意味着对这类游戏的开发入了门，开发游戏并不是只要把游戏实现就完事，更重要的是如何实现，要回答这个问题就是框架。框架除了能够用来实现游戏外，更重要的方工面是用来确立分工，分工之间独立性越高越好，而独立性是需要分析的。由于游戏开发的分工实质上就是对数据填充的分工（见《论游戏分工》），而不同的数据之间的联系程度是不同的，因而要想设计出独立性高的分工，就需要对数据联系深入的分析，这也是框架的主要内容。<br/>第四，管理方法既要借鉴专业的做法更要结合自身实际作出改变。前面说过之所以一开始采用专业的做法，是因为专业的做法它能解决实际问题，它也是游戏开发得以实践的前提条件。但是由于网络团队纯业余开发具有时间少且分散以及沟通不便的缺点，因而导致团队人员不可能像商业开发那样有足够的精力去研究，因此网络团队纯业余开发不适合采取分权程度高的管理模式而商业开发的管理模式却是分权程度比较高的，用它的管理模式放到网络团队纯业余开发上来自然会出现很多问题，所以网络团队业余开发的管理模式应该往增加开发过程中的程序化减少探索性的方向发展。要说明的是管理模式包括了开发分工，开发流程，开发协调等等问题。<br/>第五，要充分重视开发成员的热情。前面说过对于网络团队纯业余开发来说，热情是之所以其参与开发的原因，因此要想做出速度快和质量好的游戏，就需要充分调动这个因素。很多时侯热情是来源于自己的想法尚未实现，而这种实现往往在商业开发的条件下做不到，因为商业开发不是以提高生活质量为根本目的的，而纯业余开发之所以能吸引人核心恰恰在于这个方面，它有更大的选择余地，更像真正的游戏开发，更能自由表达自己的想法，在表达出自己想法的同时别人也受益，从而提高了自己和别人的生活质量。所以，作为网络团队纯业余开发就是要不断实现想法，这样才能达到提高生活质量的目的。<br/>第六，要充分利用人源广这个优点。那么如何利用这个优点呢？第一，由于每个人拥有的个人积累不同，人越多所构成的个人积累总和就越多，团队的核心人物通过与这些人不断交流就越有利于得到到越多的个人积累，由于团队核心人物拥有个人的积累相当于公共积累，这样就使团体实力得到提升；第二，人源广也就意味着有越多的时间和设备可供使用，如果找到一个合适的管理模式，就能有效的将这些分散的资源聚集起来，从而大幅度提高团体的实力，这种实力甚至能超过商业开发。我在前面之所以仅仅说一开始纯业余开发的实力会比商业开发弱，就是因为纯业余开发找到聚集个人积累的方法需要一个过程，而商业开发则可以直接利用资金达到这个目的，但是随着方法被找到，就未必是这样的了，网络团队纯业余开发这种人源广的特点商业开发想要达到就需要更多的资金，这对商业开发是不现实的。说到这里有人可能会问，那么商业开发又有什么意义呢？就目前来说，由于纯业余开发尚未找到一种有效的办法，所以商业开发采用资金仍然是目前聚集积累的一种有效的办法。并且商业开发的本质是为了盈利，这是商业开发之所以吸引人的地方，这就决定了商业开发的价值是在商业上，与纯业余开发所追求的是截然不同的。<br/>第七，开发人员要与玩家接近。这是因为玩家的反馈和建议可以为游戏开发指明发展方向，由于纯业余开发的目的就是提高生活质量，所以它更能从游戏本身的角度来改进游戏，从而更利于提高游戏的质量，因此做适合玩家的游戏也就更为容易。当然也不能因此而违背了提高自身生活质量的本意，游戏应该是同时提高自己和他人的生活质量的。<br/>第八，要重视积累的有效性。虽然积累决定实力，但是有些积累容易转化成实力，有些积累却不容易转化。要想提高积累的有效性，就需要以实践为指导，从实践寻找哪些积累是有效的，同时要从思想上重视它，这样才获取相关积累的时侯，才能有针对性。有的时侯个人开发也得取得很大成就，正是因为它的积累是有效的。<br/>第九，要重视网络团队纯业余开发的理论研究。纯业余开发要想出做好的游戏，关键还是在于方法，而方法的取得正是需要靠理论上的突破，因为理论是对网络团队纯业余开发本质的认识，我们清楚了它的本质，才能够真正知道它的实际，从而采取有效的方法。
]]>
</description>
</item><item>
<link>http://www.iewan.com/read.php?84</link>
<title><![CDATA[开发周期决定游戏品质?论网页游戏的精品之道]]></title> 
<author>童儿 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[webgame开发]]></category>
<pubDate>Sun, 5 Oct 2008 02:29:35 +0000</pubDate> 
<guid>http://www.iewan.com/read.php?84</guid> 
<description>
<![CDATA[ 
	转自：http://blog.sina.com.cn/gamerwolf<br/><br/>纵观目前已上线的诸款所谓“精品”“大作”，各个以开发多少多少年为标榜，似乎开发周期的长短成了衡量游戏品质的唯一标准：不管丢出来的是什么垃圾游戏，只要给它打上一个“开发N年”的标签，就能被冠上“XX出品，必属精品”的标签；而凡是开发周期不到1年的所谓“小成本制作”，就都得被视为不入流… …<br/><br/> <br/><br/>的确，在传统网游中，暴雪十年磨一剑的精神的确造就就了业内不能打破的“精品神话”，但也并不是所有人都去磨个十年就能磨成那一剑的，相比之下“铁杵磨成针”的可能性更大……慢工确实能出细活，但前提是这“慢工”都得用在刀刃上，如果方向错误走了弯路，一直在不断推翻之前所做的东西在做无用功，那么做个十年二十年做出来的也许能称之为“细活”，但绝对不可能成为一个“好活”——开发周期越长就意味着成本越高，如此高的投入得有多少收入才能提升项目的盈利比？<br/><br/><br/><br/> <br/><br/>据我所知，国内一家很知名的“国际型”游戏开发公司，第一款游戏《XX世纪》就开发了整整4年才上线。据说02年公司刚成立时开发的是2D引擎，到了第2年才下定决心自己研发3D引擎，第3年又被迫买了国外一引擎来做开发，直到第4年产品才正式上线——尽管如此，这4年时间开发出来的所谓大作，在刚上线时也不过是款半成品，因为其实际开发时间也不过才一年多。<br/><br/> <br/><br/>而据我所知，国内需要用开发周期来标榜自己游戏品质的公司，大多都属于以上这种不断走弯路摸石头过河的类型，而真正技术成熟项目管理优秀的公司则更希望能把开发周期缩减到最短，尽可能地把利润最大化，而不是靠着漫长的开发周期来提升产品的价值，这是相当愚蠢的行为！因为从项目管理的角度来讲，你用比别人多一倍的周期和成本来创造相同的价值，这说明你的项目管理本身就是失败的，又还有什么好值得拿出来炫耀呢？<br/><br/> <br/><br/>传统网游尚且如此，讲求“短﹑平﹑快”的网页游戏就更该如此。相比客户端游戏而言，论画面比不过3D，论功能强不过MMORPG，论操作好不过休闲网游，在游戏性大受限制的前提下，开发速度本身就是网页游戏最大的优势：<br/><br/> <br/><br/>首先，传统网游的开发周期过长成本过高，导致创新求变存在着巨大的风险。很多传统网游开发公司不是不想创新，而是不敢创新，新的模式没有成功的经验可以吸取，能否有市场也未可知，有多少人敢拿个几千万用1-2年的时间来冒这种风险？而网页游戏则完全不同，不到半年的开发周期不过50W的开发预算，就可以尝试着创造一个前所未有的新模式，一旦成功就不亚于OGAME那样开创一个崭新的时代；而即便失败，损失的也不过是半年时间50W成本而已，这对那些有足够资本实力的大公司而言，这样的博奕他们是玩得起的！也正因为这样，网页游戏在发展起来的短短两年时间里就涌现出了各种各样的游戏类型，从策略类到养成类到社区类到休闲类到经营类，几乎单机游戏发展这几十年来衍生出的所有游戏类型都已尽数移植到了网页平台上来，这是网游发展了十年都望尘莫及的。而正是这种“百花齐放”“百家争鸣”的市场氛围才使得网页这个原本简陋的平台，拥有了其他平台鞭长莫及的创新优势，虽不能大众却足以深深吸引住各自的小众，可以把各自的市场做深做透，而不是跟成千上万的竞争对手去瓜分那一杯羹；<br/><br/> <br/><br/>其次，很多传统网游，尤其是大型3D网游都是靠画面在提升自身的竞争力，而不是游戏性本身。因为对大多数网游开发公司而言，他们的游戏品质是靠画面堆出来的，开发团队的的大部分人都把时间精力花费在了视觉效果上，这是无可厚非的。而相对网页游戏而言则恰好相反，画面在游戏整体品质中所占的比例越来越小，《travian》《猫游记》那种说好听点是简洁说难听点简直就是简陋的页面，反而更受欢迎。因为相对策略游戏而言，玩家关心的只是数据而不是画面效果，对他们来说，游戏性本身比画面重要得多。因此，网页游戏的核心竞争力应该是在它的可玩性和耐玩性上，而不是比谁的画面更花俏谁的画面更震撼。而网页游戏的开发技术相对简单成熟，大部分功能的开发周期并不需要太长，这也使得开发方把主要精力都集中在如何添加好玩的功能上，而不是去过多地追求画面效果，这才是网页游戏可以比传统网游更具游戏性的一大优势。<br/><br/> <br/><br/>此外，相对传统网游而言，国内大部分网页游戏公司，除了照搬目前已被市场验证过的《travian》《足球经理》《猫游记》等成功模式之外，更多地都是在自我创新自我摸索。这种创新本身是非常值得赞赏的，但是同样存在的风险也非常大。如果大家在创新的这个过程中，一开始就抱着“厚蓄薄发”“十年磨一剑”的心态，闭门造车个一年两年再推出来给玩家测试，结果很可能就是核心模式本身就是错误的，本身就缺乏可玩性和竞争力，这样你周边的功能开发得再完善，细节之处设计得再周到也不会有市场。因为玩家的需求很简单，就是要好玩，如果游戏本身都不能吸引他们，你画面再精致系统再丰富对他们来说都是无用功。很多游戏人也许很鄙视边运营边开发的模式，觉得这是很不负责任的做法，其实不然。对于网页游戏来说，尤其是那些在承受风险求新求变的游戏来说，先把核心玩法推出来供玩家测试，再根据玩家反馈的意见进行修改完善，这种模式反而是最合理的。一方面这个市场还不成熟，什么样的模式能成功谁也不知道，只有用市场来检验才最具说服力；另一方面网页游戏修改起来非常方便，连更新补丁都不需要，可以随时顺应市场需求的变化而进行改动，这也是相对传统网游的另一大优势。<br/><br/> <br/><br/>很多游戏人都喜欢拿“暴雪十年磨一剑”的精神来勉励自己，不错，这种追求完美精益求精的精神的确是业内应该学习的楷模，但是希望大家理解这么一点，从暴雪自身的角度来讲，这个十年时间绝不是他可以去追求的，如果可以的话他们更希望这个时间是五年三年甚至一年。做得久并不代表做得好，一个成功的项目应该是用最小规模的的开发团队，在最短的开发周期内完成项目的开发内容，实现它的最大价值，这才是网页游戏的精品之道！<br/>
]]>
</description>
</item>
</channel>
</rss>