zoukankan      html  css  js  c++  java
  • 【转贴】每月一个游戏

    本帖最后由 dark32 于 2013-1-28 11:19 编辑

    做为独立开发者,你可以每年制作12个游戏。听起来不可思议?试试这个简单的游戏开发方法,你会发现每月1个游戏是可能的。

    McFunkypants方法我要分享我个人的游戏开发方法。我不会宣称发明了世界上唯一的快速开发方法。这就像装满了我个人开发技巧和经验的一本魔法书或一个工具箱,我用它来对抗那些阻止我开发游戏的恶魔。这些恶魔包括功能迭代,游戏设计,过于乐观。我从失败的项目中学习到经验,帮助我获得成功。

    你看,在2012年我达成了每月1款游戏的开发目标。令人惊讶的是,这似乎没什么难的:这些游戏相比之前失败的项目没有花费更多的时间和精力。

    那么,区别在哪里?更成熟,老练,谨慎乐观的态度。不要误会我的意思,乐观没有错。事实上,我喜欢乐观的精神。没有乐观,没有人会开发游戏,你也不会取得任何进展。我的意思是以更谦卑谨慎的态度对待项目。

    我想与大家分享一些技巧和窍门。我请求你考虑这些方法和技巧,可以按你的意思自由的接受或者拒绝它们。因为没有一个人的方法是适合所有人的。但是如果你愿意尝试其中的一些方法,它们帮助你实现每月开发1款游戏的目标,那么我会很高兴。



    加入我们吧!



    在你下一个游戏项目中采用这些方法。它们也许会帮助你。也许你会使用自己的方法,那很好。与大多数的建议都一样,关键在于选择你认为合适的,直接使用或改良使用都可以。

    请完成你的游戏
    90%的游戏项目都等不到完成的那一天。我自己的亲身经历证实了这一点。我已经开发游戏20年了,所有游戏开始时都充满热情,详细的计划,各种千奇百怪的点子,最后只有其中的一小部分被实现。这使我备受打击。我是一个优秀的程序员,我还是一个不错的游戏美术,我还有很多好点子,我对计划有信心,然而在这种美妙的状态中,完成游戏遥遥无期。

    为什么?因为想要真正实现所有这些令人振奋的计划,总是会涉及到我无法预测的挑战。此外每当项目快要结束,我的热情就已所剩无几。事情变的困难,钱越花越少,截止日马上就要到了,乐趣越来越少。游戏发布前夕,常常是开发者们最累的时候。

    开发游戏好像爬山。运气好的,没有好装备和计划也可以登顶,但大多数时候会遭到失败。我会准备好装备,研究攀登路线,注意随时可能发生的危险,并调整好自己的心态。

    怎么做?定期存档降低风险!
    想一下,有没有游戏通关了却不需要哪怕一次存档。这是很多游戏开发者开发游戏的结果:成功或失败(文件损坏),不稳定的网络导致文件丢失,遇到意外导致计算机损坏。没有考虑到任何突发事件。定期存档可以防止这类意外发生。

    当你这样做了几次,你会发现:过于乐观的计划没有定期存档是非常危险的。为什么不在自己前进的道路上多增加几个出口呢?

    从开始到结束
    我们来看看。我会用一个在周末写的游戏作为例子,这个真实的例子有助于大家理解。

    1、头脑风暴
    头脑风暴是很不错的。我喜欢记下大量的道具类型,宝物,任务,角色名称,关卡设计等。这很有趣,也是开始一个开发游戏的好方法。但有一个隐藏的陷阱:奇思妙想,由于其本身的性质,重要的是数量,而不是质量。因为头脑风暴的首字母缩写是B.S.(B.S.是胡扯的缩写,我喜欢开玩笑)。

    如果每个游戏开始前,你都要进行头脑风暴。除非你只保留其中1%的内容,否则不要开始开发游戏。

    2、制作2个列表:需要need和想要want
    使用以下尺度可以很好的评判头脑风暴得到的需求和功能:
    • 独创性
    • 可行性
    • 易于开发
    • 美术需求量
    • 可玩性
    • 功能对于程序员来说有趣吗?

    整理你的清单并丢弃大多数想法。之后在捡回来一些(特别困难的除外)。


    对每一个在你清单中的想法再问一个问题:这是必需有的或有这个会更好?对于第一个游戏原型而言,请把焦点放在必需的功能上。

    第二考虑:每个功能和需求实现的难易程度?是否需要编写大量代码和内容?不要因为选择懒惰的方式而感到羞愧:你不得不搁置许多伟大的想法,因为它们需要花费大量的工作时间。懒惰:选择最容易实现的核心功能。

    当你删减功能和需求之后剩下的就是目标。精炼你对于游戏设计的想法,选择你最喜欢,容易实现的。努力做好一件事,而不是同时做好几件事,那样一件都做不好。

    这将是你的MVP:你最小可行的产品

    3、游戏介绍

    一旦你决定了MVP是什么,这意味着能够描述整个游戏的基本概念。大多数时候使用1个或2个功能就可以完善它。假设你乘坐电梯时偶遇游戏出版商,你只有10秒的时间来说服他,你能清楚的描述你的游戏吗?这个游戏是怎样的精彩,如何的有趣,如果你说服了他,也许你就会获得提前支付的版税还有发行合同?在如此短的时间里写下游戏介绍。编辑,让它尽量短。假设玩家在游戏商店挑选游戏,玩家拿起一个游戏查看,也许只有10几秒时间,而周围又有数以百计的游戏,你如何在这么短的时间内说服玩家购买你的游戏?如果你念給朋友(最好是陌生人)听,他们感兴趣吗?兴奋吗?有热情吗?如果答案都是肯定的,那么我想说你做的不错!为了验证我的观点,我将向你展示我最近制作的1个游戏。最开始的游戏介绍是这样的:

     

    “你是一个坏人。有两个相爱的人拼命想在一起。你的任务是使用建筑物把他们隔开,不让他们在一起。这是一个基于A星寻路的回合策略游戏。”


    4、画一个简单的游戏漫画
    下一步,在你开始编写代码或创建游戏资源之前,建议你先画一些粗略的游戏草图。你不需要任何美术技巧:草图可以是黑白的,简单的。你的目标是把游戏从开始到结束的过程视觉化。

    画一堆面板在纸上,模拟屏幕上出现的菜单。下一个面板,会发生什么?一个介绍?关卡?如果你制作一个按部就班的游戏,需要创建大大量的面板,可视化这样的游戏会带来很多工作量。因此,请把游戏的焦点放在一个页面上。

    我会向你展示我画的一个名叫Pathos的益智策略游戏草图。首先,这是我最早设计游戏机制时画的草图。


    从左到右:
    • 开始界面,故事书?魔法书?;
    • 关卡选择,奇幻世界地图!;
    • A星寻路解谜;
    • 释放魔法阻止角色(一对恋人?)会合!使用墙?陷阱?


    如你所见,我非常喜欢puns。我玩过各种基于A星寻路算法的游戏,还加入了很多龙与地下城RPG游戏元素,正是这些东西激发了我的灵感。我喜欢奇幻世界地图,并且把它作为理想的关卡选择界面。

    这些使得简单的故事板漫画变的重要,因为它会给你更多关于游戏细节的描述。这样,它把事物以视觉的方式呈现出来。一个屏幕上你能放几个按钮?角色有多大?移动的方向如何?分数记录或血条放在哪?草图和缩略图可以帮助你从设计师的角度观察游戏,在你编写代码的时候也会有帮助。比如,你需要知道有多少图标和按钮需要画出来,需要什么水平的美术,甚至游戏最终看起来会是什么样子--从基本布局的角度。

    如果你的草图看起来不像有趣的游戏,你就会知道游戏可能会有改动,这将为你节省数周或数月的开发时间。如果草图不断的画下去,你会看到明显的警告标志,因为工作量太大了,你需要删减一些场景,关卡或其他游戏元素。

    就像在电梯里推销你的游戏点子,草图同样是一个理想的信息过滤器。把草图給你的朋友看,他们想玩这个游戏吗?他们认为这个游戏值得你去花时间实现吗?

    5、没有美术资源的早期版本
    下一个主要的方法就是第一天就完成一个可玩的游戏。没有标题画面,只有一个关卡,最基本的游戏玩法。

    这不会很好,也没有完成,肯定不好看也好像没什么乐趣。可以说,这一步是你最好的武器。在最初的几个小时挑战自己,写出可以运行的代码。游戏可以接受输入,左右移动,使一些东西动起来,加入一些声音。这个原型游戏很可能看起来糟糕,但会是你最好的朋友。

    你越快拥有一个可运行的游戏原型,你就越可能成功。这是你第一次存档,在登上山顶之前,你可以休息和依靠。它代表一个可运行的游戏。从这里开始你可以运用你的知识不断的完善游戏,因为你已经有“作品”在手。

    这是第一个原型的样子。这是一个简单的寻路游戏,没有美术图片–只是一些有颜色的矩形。




    完成这个原型会花费大量编程时间。我估计游戏项目一半的开发时间是花费在美术图片上的。没有图片对于编写代码是很有帮助的:可以节约时间,帮助你找到bug,迫使你专注于“感觉”。

    没有美术图片的原型还有另外一个好处:以前的游戏,我会用photoshop制作好看的假图,为游戏收集美丽可爱的素材。当游戏完成的时候,绝大多数事先准备的图片都会被替换,调整甚至废弃。在编写代码之前,我浪费上千个小时制作美术图片是得不偿失的。那些日子使我明白,由于不断变化的游戏机制和技术规格,事先准备的很多东西最终并不会被用在完成的游戏中。

    6. 让原型变得更好看

    一旦游戏的主要玩法确定,你准备开始编写游戏功能,你可以开始添加一些视觉元素。在这个阶段,你仍然不需要有主菜单或标题画面,但是游戏规则应该已包含在主要玩法内。

    你现在准备为你的角色设计特定的形象,决定布局和配色方案以及屏幕上显示多少图块。同时可以实验性能和解决技术难题,保持游戏流畅运行和适当的纹理尺寸。

    回到我的示例项目,这是第一个工作原型,使用只有2个图块(石头和草地各1)。从一个地方start到另一个地方goal的距离会被测量,现在我们准备一些实际的关卡:




    7. 新成果解锁

    好消息:这是你下一个“存档”!你有一个可以功能运行正常的游戏。你可以点击屏幕然后有一些事会发生。没有角色,只有1个关卡,但至少你可以发给朋友,请他们玩一下。

    我们在这的目标是功能:除非你可以有些东西展示或能玩,否则不要停止工作!这也许不很有趣或丑陋,但是这些不是重要。至少,你有一个项目可以被编译并生成一个可提交的版本。

    一旦你完成这个阶段的目标,可以说你几乎已经完成了游戏,因为从现在开始你已经成功了一大半。


    8、同一时间只做一个功能的工作

    游戏的核心玩法已经确定,接下去有趣部分才真正开始。也许你会增加一些关卡,写一些对话,设计一些角色放在游戏世界中。或者你想增加一个好看的粒子系统,很酷的音乐或是一个高分榜,你怎样设计游戏就会是什么样子。这太棒了!

    只要记住一件事:不要三心二意,要专注于一个任务并完成它。

    工作的时候你可能会感到厌烦,那就好好休息下。这很好–但是最好是在完成一个功能之后。

    例如,在制作战斗效果时,集中精力解决角色移动和碰撞检测,你可以自信的说,角色移动,撞到墙上,可以响应键盘,鼠标或游戏手柄。

    当你把注意力转移到武器或高级移动,比如跳跃,或角色碰到岩浆会受到特别的伤害,你就会有点糊涂了。

    在合理范围内,尽量保持线性的工作模式,你会发现每次只能处理较少的事情。你的思想习惯于专注一个任务,而不是同时处理50个不同的bug分别属于50个不同的类。为了保证你高效的工作,这么做是有必要的。因为解决不了太多问题而导致你放弃,没有比这更糟糕的事了。

    就像一个漏水的大坝,一个洞很容易修补。假如,同时出现50个不同的洞,就好比你一个功能没有完成就跳到下一个功能,最终你会发现自己被一大堆错误的代码包围,如此复杂,又有这么多的问题,你很可能会想放弃。


    9、不断的存档

    在游戏开发阶段,随时保存你的游戏,当你完成一个MVP或可玩的原型或游戏发布版本。

    记住把这个可玩版本的游戏,保存在工作文件夹以外。使用版本控制。压缩游戏,把它放到你的备份驱动器上。电邮给游戏测试者。无论你做什么,确保如果你丢失了一切开发资源,你还可以从这个版本继续开发。

    始终专注于创建更多的迭代改进和提高工作,功能,可执行版本。如果你超过一天都没有一个可备份的版本,如果有需要,可以把游戏公开,那时你会越来越紧张。

    当然有的时候,你会花费好几个小时解决bug。这个时候,游戏可以正常运行,也没有重大的bug,你可以选择保存一个备份,这样你就创建了一个新存档。

    因此,线性和迭代的方式同样适合游戏美术内容或游戏关卡设计。每次只设计一个关卡。这样,即使你没有时间,金钱完成你设计的99个关卡,而只完成了3个或4个足够优秀的关卡,你仍然可以感到骄傲。

    简而言之,保证在任何时候都有一个可玩的游戏,你随时可以离开。这是一个安全可靠的。毕竟,生活可能会发生各种意外。疾病,家庭变故,甚至一辆迎面而来的公共汽车–不管什么原因,有游戏开发存档,你会睡得更好。

    记住,你总是可以回来并创造一个更好的2.0版本。

    迭代设计,线性模式,按部就班,每次只做一件事,这就是每月设计一款游戏的秘诀。

    10、完成游戏!

    当你有好几个游戏开发存档,你的游戏将会变的越来越好。某些时候,你需要做决定是否游戏已经完成。很重要的是永远不要把1/2头脑风暴文档中记录的需求和功能都加到游戏中去。这是很有可能,这些需求和功能会从1.0需求列表中转移到2.0需求列表中。

    让我们回到示例项目游戏。在这一点上,我已经工作了一个周末,准备结束这个项目。我想改个名字,增加一些漂亮的美术图片,为我的关卡编辑器编写一个新的数据格式分析器,寻找一些音效和音乐。这是一个可以玩的游戏。我为它感到骄傲。我称它为“Pathos”,这是它的样子。点击下面的图片可以看到更多的游戏截图,还可以试玩。



    pathos-使用McFunkypants开发的解谜游戏



    记住:接受你的缺点

    所有游戏开发者都是热情,有创造力的人。不幸的是,正是这种无限的热情和创造力,可能让我们陷入麻烦。做为乐观主义者,我们的想象的是一个宏伟蓝图:伟大的游戏,你就知道一定会热卖的。

    这个宏伟梦想的每个部分,你都好像可以很容易做到,这可能是真的!然而,如果你一项一项完成任务,又有充足的能力,根本没有什么可以限制你;但是你的时间是有限的。

    记住你在主机平台玩的大多数游戏,举例,至少有100人在同时开发,全职,用了好多年时间。如果你是一个独立开发者想要完成同样的任务,你会发现他们的开发时间加起来会超过你一生所拥有的时间。

    你必须接受这个事实,为了完成游戏而降低你的目标,除非你花上几年的时间开发一个的游戏。考虑到一般的独立游戏会有几千美元的利润,你不可能花费数百或数千小时开发一个游戏。你需要重新设计游戏,保证20-50个小时就可以完成它。

    通过各种手段,心怀大梦想–但是建立迭代。建立一个最小可行的产品,如果真的很不错,多加一点元素,称之为2.0版本。继续,只要你喜欢这个工作方式!

    记住:接受不完美

    完美是可望而不可及的。你要放下你的骄傲并且接受不完美。忽视这一点实际上是惩罚自己做一个永不会结束的项目。记住,你总是可以更新下一个游戏版本。发布你的游戏,即使你知道你可以不断改进它。它不仅会把重担从你的肩膀上挪去,还会让你感到骄傲,而且游戏到达玩家手中,他们也许会想出你永远都想不到的新功能。

    记住:早发布,经常发布


    当你没有时间,精力,金钱或好点子,启动你拥有的游戏。如果你使用备份游戏开发存档的模式,你会有很多可玩的游戏版本,还有各种功能在你的需求列表上,这很好!


    “早发布,经常发布”是成功的游戏开发者重复一遍又一遍的口头禅。原因在于你需要玩家反馈。你需要真实的游戏测试。在一个黑盒子里的编码,躲在掩体中,直到最终游戏发布的时刻,这是一个错误。第一,你只能以有限的视角看待自己的游戏。你可能已经注意到,你校对自己的邮件时,世界上最明显的错别字都很难被发现。这是因为,看着同样的事情,你的心开始变得麻木了。其他人会看到不一样的东西。


    你可能会发现,在纸面上看起来辉煌的东西,一旦实施就变得无聊。


    此外,游戏发布越早并且继续开发的人,会获得最大的关注和曝光。你产生更多的“新闻价值”。你的会成为人们谈论的话题。你会吸引追随者。你从那些玩你游戏的人那里获得宝贵的反馈和知识,影响和提高你的游戏设计。
    玩家可能提出的批评或表扬,会让你惊喜。你认为重要的功能可能玩家并不感兴趣,而那些你认为不重要的却人人都喜欢。观察玩家的反馈,并做出相应的调整非常重要。这可以节省你的开发时间和失败的几率。反馈可以给未来的版本提供方向。最重要的是,它会给你带来新的粉丝,追随者和应得的赞扬。


    另外,当知道有人喜欢玩你的游戏,这是非常令人振奋的消息。


    现在停止阅读,开始编码吧!


    现在,你已经获得了额外开发游戏的动机并且了解了我个人游戏开发的方法,我鼓励你断开互联网和开始开发游戏。规划或研究的时间太长会浪费时间。有时候你真正需要做的是创建一个新文件夹,创建一个空白的项目,并开始编码。打开你的游戏引擎并发动它。


    如果你遵循这一基本理念开发游戏,我相信你会收获很多的回报。最基本的可以减少压力。更享受游戏开发过程,更具体的建立游戏可玩性,更多的机会获得玩家反馈,更容易建立游戏开发存档系统。最终,通过把项目拆分成简单独立的部分,今年你一定能够每月发布一个新的游戏。


    如果你对这个挑战感兴趣,我诚挚地邀请您加入OneGameAMonth,这项游戏开发挑战,已被3000个像你一样的独立开发者接受。


    OneGameAMonth是带有游行性质的游戏开发:你获得的经验点,升级,通过制作游戏获得回报。你可以获得同行的支持,参与活跃社区讨论,这些都对游戏开发很有帮助。现在已有数百款各种类型的游戏发布在论坛上。加入我们!


    祝你未来的游戏开发项目好运。你能办到的!

  • 相关阅读:
    STL_算法_查找算法(lower_bound、upper_bound、equal_range)
    Kafka深度解析
    hdoj 1027 Ignatius and the Princess II 【逆康托展开】
    代码二次封装-xUtils(android)
    C++11新特性应用--介绍几个新增的便利算法(用于排序的几个算法)
    谨防串行的状态报告会
    hadoop中NameNode、DataNode和Client三者之间协作关系及通信方式介绍
    Kindeditor JS 取值问题以及上传图片后回调等
    MySQL 8.0.11 报错[ERROR] [MY-011087] Different lower_case_table_names settings for server ('1')
    爱的链条
  • 原文地址:https://www.cnblogs.com/xinqingHappy/p/2933319.html
Copyright © 2011-2022 走看看