如何完成游戏?[关闭]


20

我的问题是,每当我开始为游戏的克隆版(用于练习)或自己的游戏或其他问题而编程时,都会在开发过程中停下来,因为我对此失去了兴趣。

您如何保持开发游戏或整体开发的兴趣?


4
完全题外话-尝试production.stackexchange.com以获得激励性建议。
独眼巨人


让人们感兴趣,并围绕您的工作聚集一个社区。您可以让人们与您一起完成一个小型项目,从而互相激励。另外,尝试将工作量尽可能地减少,这样您将感觉到自己的进步很快,而无需花费大量时间。
Thomas

Answers:


28

作为设计师,我倾向于将人视为统计数据和变量的集合。当您提出问题时,我可以轻松地想象[Pong_Dev_Interest]减少而[Spa_Inv_Dev_Interest]增加。当两者之间的差异大于[Dev_Project_Inertia](与[Dev_Completion_Desire]有关)时,[Pong_Dev]上的活动停止,[Spa_Inv_Dev]开始。

用英语:您无法完成该项目,因为您对当前项目的缺乏兴趣使您无法看到最终产品。如果您真的想完成一个,唯一的解决方案是选择一个(我会与您的傍克隆游戏一起去做)并完成它。对自己说:“自我,我知道也许我可以进一步完善克隆的内容,但是天哪,把一个项目踢出去当然感觉很好”。然后继续工作。

无聊时,继续工作。进展顺利时,请继续努力。当跌倒时,继续努力!坚持不懈!成为可能的小开发者!我相信你!

啊 那里有点旺盛。但是,您会感到困惑。

我每天都遵循自己的建议。我让我的环境和演员都在工作,建立了我的输赢条件,并创建了玩家将要使用的对象。我基本上已经准备好开始进行一些关卡设计,而我的兴趣却大打折扣。但是我每天都做一些。一天 有一天我会完成的。

而且会感觉非常好。


12

我总是问自己同样的问题,您可以做一些事情来激发自己的兴趣(其中很多已经发布在这里)。对我来说最有效的是我在今年GDC的一次独立对话中听到的东西,我认为那是制作摩纳哥游戏的人:-)

首先,找到一个适合您的经验的项目。也就是说,如果您甚至不了解OpenGL / DirectX的基础知识,就不要开始制作FPS。(除非您使用的是游戏引擎,但这不是重点;-))

然后,将您要做的事情和要达到的里程碑列为清单,这样您就始终知道要去哪里。TODO是重要的部分。定义您的任务,以便可以在一天或几个小时内轻松完成每个任务。因此,当您开始编码,设计,建模等工作时,您已经在隧道尽头看到了灯光。在不接近终点线的情况下,一个月的大型游戏引擎的设计和编码便是令人沮丧的。将大任务分解为较小的任务。快速完成任务确实很有意义,而且可以让您继续前进。例如,这是我一次进行小型太空射击游戏的任务列表:

  • 声音特效
  • 音乐
  • 改装船
  • 重塑火箭
  • 击球与球员/敌人之间的碰撞检测
  • 让敌人开枪
  • 标题画面
  • 得分/生命/能量叠加

所有这些任务都很容易完成,一旦它们在游戏中起作用,您就可以在这些区域上进行迭代并完善它们。

嘿,我完成了一个小游戏。它虽然不漂亮,但基本上已经完成了,最终还是很有意义的:-)


3

您必须先确定问题,然后才能解决它。你为什么失去兴趣?

对我来说,这通常是因为我在框架上花费了很多时间,而在数周后,我什至无法获得一个游戏元素。

我发现可以提高动力的一种方法是进行迭代原型设计或某种形式的测试驱动开发。通常,这涉及到自动化测试用例,但是由于游戏需要大量图形处理,因此您无法将屏幕和动画作为测试进行自动化,但是您的游戏逻辑可以自动化。

对于不能自动化的部分,基本上,我将为游戏计划几个里程碑。例如,里程碑1可能会在屏幕上渲染一个精灵,并使WASD起作用。逐渐地,我将添加更多功能并进行重构。

这是分而治之的一种形式。分成小块,在您熟悉的那块上工作,然后整合。冲洗并重复。最终,您可能会发现一种更好的方式来重新安排内容,并且可以重构代码。事先没有架构是很麻烦的,但是通常在开始编程时,除非您有多年的经验,否则很难形象化架构。


1
我已经做了很长时间了,没有什么比加载游戏的第一个精灵并将其在屏幕上移动更令人兴奋了。
售罄的维权人士

2

我试图找到一些更容易制作的部分。就像我无法弄清楚如何制作或不想做一样,我换档并建模或编写着色器等。

看到这个这个其他职位。


1
+1是的,这是一个非常好的策略。暂时将精力从艰难的事情上移开,去做一些艰巨的工作,当你回来时,艰难的事情似乎不再那么艰难了。为我工作。
工程师

2

如果您不知道如何正确构造游戏,则应该开始学习如何将其元素抽象到与游戏无关的模块中。这可能会以多种方式(除了很有趣)对您有所帮助,例如:体验将抽象与实现分开,更好地利用继承和接口设计,或者只是如何将游戏放入多个文件中以使其看上去更专业(或提供通过使用动态链接库或其他接口使用实现的灵活性)。迟早您会意识到所有事情都可以完成,然后您将发现自己再也没有动机问题了(您只需这样做)。

一开始我遇到同样的问题,但是最好的解决方案是继续前进,否则您将永远停滞不前,直到某种方式使您复位(这可能需要很长时间)。几天是否只编写2行代码都没关系,但是每天至少要打开项目并尝试改进某些东西(这是一项永无止境的任务,但这不是问题)。

如果某个程序无法正常工作,则应撤消上次执行的操作(使用日期或名称的svn或至少一个.rar保留备份),直到工作正常为止,然后尝试执行此操作再次尝试,或者进行其他更改,直到您想重试为止。

起初,您应该尝试在调试器的帮助下修复错误,但是我不知道您的语言是否还支持调试器...但是如果您偶然使用C ++或类似的东西(如果您愿意,我会建议您这样做)想制作游戏),则应更好地利用调试器,因为它可以帮助您在一次运行中快速发现错误。

如果您不想从事任何特别的工作,那么阅读有关游戏编程的知识也是一件不错的事情。您可以在线找到一些有关游戏引擎和设计的好书和文章。

如果不练习,您将无能为力。首先,尝试查找错误可能会令人沮丧,但随后您就会发现,如果知道如何做,实际上很容易。这是您学会了如何避免时间浪费的方法,即通过编码方式使更改不会影响整个程序,从而减少了寻找错误的位置。如果每次放弃都变得困难,那么下次考虑制作游戏时,您都将在开始之前放弃。只要学习如何克服困难,就可以克服:P如果您没有经历失去动力的那一刻,那么您的懒惰就会胜利,而您将会失去,这就是它的作用,直到您学会了如何重新获得动力无需太多努力。

PS我在想...您正在使用什么制作游戏?


+1用于使用源代码管理。没有SC是4年前我停止从事游戏的主要原因(我对源代码进行了太多修改,以至于无法回溯)。幸运的是,我最近意识到XNA的好处,并且游戏又重新开始了。
理查德·马斯克

2

[仅作为对匿名答案的评论,我发布时已删除。他提到自己可以使用所有这些功能,然后将单个文件代码拆分为多个文件,仅使所有内容崩溃]

回复:重构,即使对专业人士也可能发生事情。有时即使使用Git之类的优质工具,合并也可能失败,因此功能A和功能B都无法正常工作,而不能正常工作!唯一的选择是返回A并重试。幸运的是,版本控制将为您保存此代码;如果您不使用真实版本控制,至少可以通过定期压缩您的dev文件夹手动进行操作-高清空间很便宜!总而言之,请回到可行的方法并以较小的步骤进行重构,以确保游戏在每一步都仍然有效。清理代码只是看到一切崩溃真是令人沮丧。只需恢复为旧代码即可。


1
“如果不使用真实版本控制,请启动 ”-是正确的答案。:)真的-它很容易学习,并且是主要的倍增器。任何VC会为你节省很多更多的时间,比需要学习。
独眼巨人

在我所在的大学的一个最近的跨学科设计项目中,我惊讶地发现CS团队对源代码控制没有兴趣,而EE在做其他事情之前先设置了SVN。奇怪的!
3Dave 2011年

1

为了保持动力,请继续告诉自己自己是在制作游戏,而不是游戏引擎-好吧,除非那是你的事。太酷了,游戏引擎很棒,但是它们经常阻碍制作游戏。

为了说明我的观点,我可以告诉您事情的发展趋势:首先创建一些精灵,然后使用原型框架将它们移动到屏幕上,您会感到非常兴奋!您可以看到自己的进度并且进展顺利;您可以显示您的朋友。

然后,一旦您对概念有所了解,您就会意识到需要使框架(或游戏引擎)更加灵活。或者您应该重构一些不遵循最新模式的类。从那里开始,您将面临死亡的漩涡:停止开发游戏,开始开发游戏引擎。游戏引擎的乐趣并不那么有趣。您可以花费数小时进行重构,而在游戏中无所作为。然后,您失去兴趣。

因此,请记住:制作游戏,而不是游戏引擎。仅在需要时进行重构。不要太灵活-仅是最低限度。*

*:当然,重构和灵活性很重要。但不如实际完成游戏重要。


1

无论多么简单,都尝试一天制作一个可播放的版本。然后重复。


1
  1. 不要试图使您的游戏过于复杂!

  2. 将您的任务分解成一些小的,具体的,可测量的子任务。如果任何子任务看起来太大,请进一步细分。

  3. 完成任务后,请确保在任务列表(我使用.txt文件)中用大写字母写“ DONE”。不要删除该任务,因为那样看来它不会取得进展。

这就是我的工作。它过去曾经工作过。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.