完善我当前的项目是否比开始新的项目更好?[关闭]


15

我很多年前开始编程。现在,我正在尝试制作游戏。我已经阅读了许多建议,开始克隆一些著名的游戏,例如galaga,俄罗斯方块,打砖块等。我还阅读了我应该参加的整个游戏(包括菜单,声音,总谱等)。

昨天,我完成了打砖块克隆的第一个完整版本。但这还远远没有结束。我仍然可以使用它几个月(我业余时间编程)来实现屏幕分辨率切换器,控制键的重新映射,从碎砖掉落的电源以及巨大的体积等。

但是我不想永远学习如何克隆一个游戏。我渴望进入下一个克隆,以便应用在开发此打砖块克隆时遇到的一些设计思想(与此同时,我正在阅读GoF书和Ludum Dare 21游戏竞赛的许多源代码)。

因此,问题是:在拥有原始游戏的所有功能之前,我是否应该继续改进打砖块克隆?还是应该移至下一个克隆(几乎有无限的游戏要克隆)并开始修补上一个克隆我做错的事情?

这可能是一个非常主观的问题,因此请限制学习最有效方法的答案,以学习如何制作自己的游戏(而不是克隆别人的想法)。谢谢!


澄清说明

为了阐明我已实施的清单,请列出以下清单:

实现的功能:

  • 弹跳功能(球在墙壁,砖块和杆上反弹)。
  • 在砖块和酒吧上弹跳时以及玩家获胜或失败时发出声音。
  • 基本标题菜单(仅限新游戏并退出)。还有游戏菜单和赢/输菜单。
  • 只有三个级别,但是地图系统是如此简单,我认为它不会教给我太多(我错了吗?)。

未实现的功能:

  • 打破砖块时加电。
  • 复杂的砖块(具有多个“生命值”且无敌)。
  • 更好的图形(我并不是很擅长)。
  • 编程抛光(更密集地使用设计图案)。

这里是其(最小)网页的链接:http : //blog.acamara.es/piperine/ 我为展示它感到kind愧,所以请不要用力打我:-)

我的问题与未实现的功能有关。我想知道什么是最快的(最佳)学习路径。1)在这个项目中实施尚未实现的功能,而这个功能正在变得越来越大,或者2)制作一个新游戏,可能会教给我那些课程和新知识。


回答

我选择@ ashes999答案是因为,就我而言,我认为我应该进一步完善并尝试“发货”游戏。我认为所有其他答案也很重要,因此,如果您来这里时遇到相同的问题,请在紧急决定之前阅读所有讨论。

谢谢你们!


抱歉,但是说这是一个客观的问题,并不能使其客观。这取决于,他们的能力,目标和动力,他们是否应该改变项目-所有这些使它成为一个主观的问题。对于这个问题,根本没有单一的“正确”答案。
独眼巨人

您是对的,我想到的是“主观的”,但写了“客观的”(这对我来说也是左右偏右...)。我改了
亚历杭德罗·卡马拉

糟糕,很抱歉听到这个消息。但是,我不想这么说,但这对于本网站来说仍然不是一个好问题。StackExchange网站的目的是建立对许多人有用的问题/答案,而不是仅适用于一个(或几个)人的问题。同样,(理想情况下)应该有一个正确的答案-但是对于将来找到此帖子的人来说,有些人可能会找到一个最佳答案,而另一些人会发现相矛盾的答案更好。
独眼巨人

1
我觉得这也不是一个好问题。但是无论如何,我写它的原因是因为也许有人陷入了同样的困境。即使没有“好”答案,讨论也会启发其他人采取他们的“正确”答案。
亚历杭德罗·卡马拉

1
我个人认为学习项目的范围应包括所有游戏功能(因此也要实施加电功能),但在此之后,请将该项目完成并继续进行;不要打扰图形。
2011年

Answers:


32

我不同意 完全帕特里克的回答。如果您想以游戏开发人员的身份获得成功,那么您需要学习的第一项技能就是如何构思一个想法并发布完整,精美的游戏。

随着时间的推移,您将会意识到(这是我几年后意识到的)编程只是您游戏的一小部分。这很容易,因为它很有趣。但是,仅坚持编程会给您留下不完整的概念验证和演示的痕迹。

相反,我强烈建议您建立一个网站和博客(Wordpress非常适合此类工作),完成您的游戏(从Arkanoid开始),然后将其发布。

同样,关键是要意识到,如果执行此操作,则可以控制游戏的完成时间。如果要具有10个主要功能的1000个级别,可以。如果您想要具有3个主要功能的10个等级,可以。(实际上,我建议您更频繁地建议较小的项目,因为您会学到更多,并且会专注于这种方式)。

编辑:针对不同意见的人,我觉得我需要澄清。如果您仅出于一个目的/实验(我一直在做)创建游戏,则一定要缩小范围并发货。没有人说打砖块游戏需要1000个关卡才能完成。在您看来,只要创造足够的水平就可以变得有趣并继续前进。

有可能在游戏上花费数年而从未出货。但是我觉得永远只剩下制作技术演示和原型的难度要大得多。我花了十多年的时间才自己停止这样做。


3
+1“运输是(必需的?)功能”,尽管在这种情况下,您还可以将打砖块克隆视为原型,并且当概念被证实或被证明时,原型也将被丢弃。
奥斯卡·杜夫伯恩

2
@Oskar,制作1000个原型比发布一个游戏要容易。最终,运输将使您成功,而原型只会增加一些编码技能。
ashes999 2011年

2
为什么不考虑“只是增加一些编码技能”?他专门询问学习经历。
2011年

@jhocking是因为Patrick的回答。我的回答是专门关注不仅仅是编码技能。
ashes999 2011年

1
@Yannbane如果人们玩它并认为“是的,这是一个完整的游戏”,即使它是一个简短的游戏,也就完整了。不完整通常是残破的游戏或具有一个等级的游戏。一旦将它运出门,就完成了。
ashes999

8

我建议综合前两个答案。基本上,我同意,学习如何构思一个想法并发布完整,精美的游戏非常重要。互联网上散布着一些已经开始但又无聊的未完成项目。从头到尾坚持一个项目的能力,我称之为“完成能力”,是稀有而宝贵的,是通过强迫自己去实践而获得的。

但是,您还没有处于学习阶段。我不建议您在第一款游戏中这样做,而是在完成第一个完整项目之前制作一些较小的游戏来学习。

(此外:我以前从未真正确定过这一点,但是现在我正在考虑这一点,我认为整理能力是我看到的将有经验的开发人员与新手区分开的主要内容)


另外:我认为答案之间的许多分歧只是归因于他在自己的过程中所处位置的不同假设。例如,当他说“我完成了我的打砖块克隆的第一个完整版本”时,这可能意味着许多不同的事情。就我而言,由于他早先说过“我还读过我应该参加整个比赛(包括菜单,声音,得分)”,所以我认为他实际上已经实现了这些东西,并询问他是否应该继续前进。案例我会说不;将这个项目称为完成并继续进行下一个项目。

但是,这只是我的一个假设;他实际上并没有说他已经做了件事,只是说他已经读过。如果他还没做完那件事,那么我想说,除非你做完那件事,否则不要继续前进。


1
+1击败我!听起来您才刚刚起步,所以制作尽可能多的东西并学习,学习变得更加重要。随着您变得更好,您可以专注于抛光。否则,您最终将花费2年时间来玩第一款游戏。
NoobsArePeople2 2011年

1
不同意。您可能需要花费十年的时间编写代码,而且从不发布任何一款游戏。或者,您可以在头六个月内寄出简单的打砖块克隆。我觉得后者使您整体上变得更强大,而前者只是帮助您提高软件开发技能(并不是那么多-您从不考虑工具,生命周期等,而只是编码)。
ashes999 2011年

好吧,我现在不是说十年了吗?仍然有一个问题,是否是在6个月的完整项目之前花一年时间编写一堆练习练习比直接将6个月的完整项目作为您的第一个项目更好?这是我教学中的一个主要问题;对学生来说,花一个学期做一整堆小项目还是整个课程都需要一个大项目会更好吗?我个人倾向于“许多针对本科生的小型项目,这是研究生院中的一个大型项目”。
2011年

我的立场是,与整个项目一样重要,要使该项目成功,您首先必须已经学习了许多先前项目的基础知识。
2011年

1
之前的哪2个答案?到目前为止,按投票数排名第二
亚行

5

我认为您有一个正确的想法,那就是现在应该进入下一个项目。我认为这是因为您已经从一开始就学到了,并且想要应用所学到的知识!一旦您减慢了学习基础的速度,那么就该克隆您可以继续学习的更深层次的功能了。

请记住,您是在从事编程技能而不是游戏设计方面的工作,因此您希望最终在完成学习后就能够对任何游戏设计进行编程。


3
尽管我也同意@ ashes999,并且您同样同意,但我认为在OP声明的背景下,他正在尝试实现,学习编写不同类型的游戏。在这种情况下,我认为他应该支持继续进行下一件事。
工程师

实际上,他确实暗示他想学习游戏设计,而不仅仅是游戏编程。他在最后一句话中说:“学习如何制作自己的游戏(而不是克隆别人的想法)的最有效方法”。
2011年

2

为什么不让克隆成为“您的”?添加一些有趣的新变化,使您保持兴趣。

启动“您自己的”项目有一个好处,您觉得它从未做过。现实是某人可能已经有类似的东西。除非您打算发明一种新的游戏类型,否则我建议您自己制作这些“克隆”。

例如,我在大学的好友创建了一个“克隆”乒乓球。他自己制作了自己的游戏,添加了全新的游戏类型,其中的加电功能使一个人可以驾驶一辆甜美的坦克大约15秒钟,并摧毁尽可能多的积木!

学习游戏开发(艺术,代码,设计)的最好方法就是做到这一点。您一开始可能做得不好,但关键是要坚持做下去并编写更多代码,绘制更多动画和设计更多关卡!!我认为,只要您自己制作,继续制作,使其有趣并获得乐趣,就可以“克隆”某些东西!


2

要回答您的问题,是的,比开始一个新的项目,完善当前的项目将是更好的学习体验。

1)你需要养成整理事情的习惯。这本身就是一种学习经验。

2)您“懒得添加”的任务(由于缺乏更好的术语)可能在其中嵌入了大量的游戏开发课程,您只是完全跳过了。

3)如果您对Arkanoid 感到无聊,可以随时将其放在一旁并暂时从事其他工作。没有什么不妥。

1)太多未完成的事情是不好的。您不能真正使用未完成的产品来有效地展示自己的技能。

这是因为拥有许多未完成的东西就像拥有满是垃圾的壁橱一样。其中一些看起来有用,但实际上这一切都没有用,而游戏行业的现实情况是,很少有人会欣赏您的“垃圾”(未完成的游戏)。

未完成的游戏太普遍了。人们把它们放在那里,都很喜欢,“咄,这场比赛是sapposa是街头霸王...你现在可以来回移动。” 给人印象不深。没有人能看到您的游戏是“ sapposa”游戏。他们只看它是什么,未完成。

一个未完成的游戏就像一个半生的蛋art。有些人可能会欣赏到它,但实际上它的味道令人作呕,在烤箱中多加热20分钟可能会使您已经完成的一半对每个人都变得美味。

2)您要避免使用的功能可能会有一些非常有价值的教训。

您讨厌完成的事情:

未实现的功能:

  • 打破砖块时加电。
  • 复杂的砖块(具有多个“生命值”且无敌)。
  • 更好的图形(我并不是很擅长)。
  • 编程抛光(更密集地使用设计图案)。

您可以忽略其中的一些内容。例如,“更密集地使用设计模式”。这样的重构对于宠物项目来说是浪费时间,要应用该项目,您应该只启动一个新项目。

其中一些很容易。例如,复杂的砖块。其中一些实际上是很多工作。上电并非易事,它们需要您提供诸如枪支,子弹之类的构件,并需要添加射线相交代码。

我认为您所看到的是“将脚手架就位很容易..而且看起来快要完成了。完成工作会很繁琐,现在最好停下来。” 是的,为房屋架设木制框架也很“容易”,可能只是完成一半。干墙,电力,管道都是“细节”。但是如果不完成房子的装修,没有人会“买”房子的精妙之处-如果只有你会完成它。

3)如果您对正在从事的工作感到无聊,则开始其他工作没有任何问题。

这并不意味着您正在研究什么,但是花一两个月思考其他事情或开始新游戏也没有什么害处。您可能会以崭新的视角回到Arkanoid。

也是最后一点。除了建立Arkanoid的所有预期功能之外,在其上加上自己的变形甚至有趣。因此,您不应该停止克隆游戏,而应该进一步发展并在原始游戏上进行创新。


1

正确的答案实际上取决于您下一步要做什么。如果您继续学习新事物,则可能会冒险发现自己又要解决同样的旧问题,而实际上并没有真正提高自己的技能,但是您确实会继续学习新事物。如果继续完善,可以从简要清单中学习一些有用的东西,它们将来会很不错,但是您仍在使用相同的旧代码库。

我所建议的(这纯粹是个人观点)是继续进行新工作并为此省钱。同时尝试用一些新东西来扩展自己。因此,如果您当前不使用3D API,请学习一个并使用它。如果您正在使用一个,请学习另一个并使用它。或在使用的级别上更进一步。一开始就包括更好的声音,物理特性或输入引擎。不管怎样,我认为重要的是,在玩得开心的同时,将一点点移动到当前的舒适区域之外,并积累更多的技能和知识。

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.