自学游戏开发的危害是什么?[关闭]


58

我即将踏上游戏开发之旅。在回答最后一个问题后,我将使用C#和XNA。

但是,我个人并不认识任何其他游戏开发人员,并且我也不从事该行业,因此,他们将是自学成才的。显然,例外情况是提出问题和阅读在线/打印的信息,但我仍将其归类为自学成才。

这样,我想为没有人“把我留在他们的翅膀下”而可能遇到的问题做好准备。

打个比方,当我自学弹吉他时,我弹A大调和弦的方式使移至我后来学到的和弦更加困难。

如果您可以分享您的经验教训,以及在学习游戏开发方面可能出什么问题的建议,我将不胜感激。

我很清楚,犯错误是学习的最大部分,但是,如果有错误,我可以为之做好准备,那么我会为此感到高兴。


看看,共享课程可能会使问题变成开放式问题并使之无效,因此它可能会变得封闭。
Gustavo Maciel

那是个很好的观点。对于任何访客,我都计划接受一个全面的答案。
2012年

Ste,请注意,如果您认为一个新的答案更好,可以其打勾。我对古斯塔沃(Gustavo)表示歉意,并不是想让他成为一名代表:)但是,这些网站的重点以及投票和复选标记的目的是强调问题的最佳答案。另外,尽管您确实接受了一个答案是很棒的,但是不必如此快地接受一个答案-在您发布问题一个小时后不久。在接受答案之前,我通常至少需要等待一天,甚至更长的时间。看看出现了什么。
独眼巨人

@Cyclops-是的,我没想到这个问题会如此受欢迎。下周我会复习。到目前为止,感谢所有人的出色回答。
2012年

感谢您提供的所有出色答案。我已将接受的答案移至投票最多的答案。我这样做是为了反映社区的意见。希望您能理解@Gustavo
Ste

Answers:


54

游戏开发就像结构工程

对功能有最低要求。最低要求并不是特别具有挑战性,许多人可以学习如何实现这些要求。那就是功能部分。这是一小部分。这是决定使用哪种语言,开发平台或使用哪种库的地方。

下一部分是重要部分。该表格的一部分。形式是真正将优秀游戏与优秀游戏区分开来的地方。这是游戏开发的艺术。我不是在谈论感官资产(图形,声音等?)。我说的是打造一种体验。这是困难的部分。

功能部分来自教程,库和一些时间。任何人都可以做到。

表单部分来自您。这就是让您首先想要制作游戏的热情。这就像讲一个故事,一个虚构的故事(或者您修饰的真实故事很多)。您讲的故事越多,就越好。在软件开发中,我们称之为迭代。你的故事就是你的代码。第一次告诉您,情况不会很好。事情将会错位,您将意识到这一点应该放在那儿,而这里要放在那儿。您会发现,如果以这种方式安排或对此进行扩展,事情可能会更好。因此,就像一个好故事一样,您将告诉它,评估它的良好程度,然后对其进行修改。这需要奉献精神,需要时间。如果您生产的第一件东西不是黄金,请不要担心。我在游戏的许多部分上做了很长时间的努力,后来才将它们淘汰,因为我想到了很多更好的方法。不用担心,这都是学习过程的一部分。您总是从错误中学习,经常犯这些错误才是导致您采取更好的做事方式的原因。

因此,您应该从中得到的是:

  • 经常进行测试。
  • 现在不要陷入功能上。不用担心优化,从长远来看,哪个库是最好的。只需获得最少的功能,然后进行迭代即可。
  • 一旦功能完成,恭喜您,您只是完成过程的一小部分。
  • 擦防晒霜
  • 这是一项需要花费时间才能发展的技能,您知道通过学习乐器,这没有什么不同,您会变得更好。
  • 记住您的目的是创造的乐趣!如果事情变得无聊,请切换到其他位置(尝试进行一些游戏阻塞来破坏您的开发时间)。但是不要仅仅因为很难就退出。
  • SE上的游戏开发社区很棒。您会在这里找到所需的一切。您可以发布问题或跳入聊天并讨论您的想法。

互联网上充斥着诸如此类的博客文章,教程和社区中的信息。总的来说,我认为这是一个不错的选择。基本上,危险并不严重。您可能会用“错误”或困难的方式做一些事情,但是最终您将学习。您似乎有丰富的编程经验,所以我认为您会很快开始学习功能部分。游戏开发和“常规”开发中的错误重叠很多。您的经验将帮助您避免新游戏开发人员遇到的许多常见问题。我想你会做的很好。祝好运。


6
+1令人敬畏,我的帖子中缺少的所有内容都在这里找到:D
Gustavo Maciel

1
“防晒霜”是什么意思?成语“戴防晒霜”?
Lukasz Madon

4
这是根据Mary Schmich的文章“ Wear Sunscreen”开的一个玩笑。基本上,“科学家已经证明了防晒霜的长期益处,而我的其余建议没有比我自己的mean回经历更可靠的依据了。” 也许以这首歌的形式更广为人知。
MichaelHouse

4
嗯,实际上防晒霜不是很好 2。只是呆在室内并继续编程。
bobobobo 2012年

28

是的,没有人去过之前对您说怎么做,如何修复等可能是您最糟糕的事情。但是不用担心!您仍然可以阅读很多曾经去过那里的人的博客的博客,他们分享他们在行业中的经验,如何取得成功,以前的游戏如何失败以及为什么等等。

很好的例子是:

还有更多!

我的最后一句话是:不要害怕。我也是自学成才的,我已经被游戏开发者介绍了4年,遇到了很多障碍,但是没有什么是您解决不了的谷歌搜索和阅读一些文字的。祝你好运 :)


3
除此之外,甚至专业人士也经常遇到这个问题。只要您能和Google一起学习,就可以弄清几乎所有东西。
ashes999'5

很奇怪,您链接2Dboy。据我所知,他们除了在Goo的端口上移植到过去两年中存在的所有平台上所做的事情很少。自从我在那里读到有关gamedev的东西以来已经很长时间了。
TravisG 2012年

毕竟,@ TravisG的release游戏过程不仅与开发游戏有关。无论如何都是很好的阅读。我发布了更多链接作为参考,而不是关注博客。如果您回过头来,这里有一些原型示例,所有这些示例都有助于它们与goo和其他“少一点”的原型一起出现:D
Gustavo Maciel 2012年

18

这种态度。这种“不要碰它,直到您知道如何完美地做到”的态度。那真的会让你退缩。

您会在各种初学者中看到这种态度-不仅是游戏。网站也是如此。嘿,网站是一个带有html前端和一些javascript的数据库。您可以通过任何方式学习技术,并且可以将您的第一个站点放在一起。这不会是梦幻般的,但是以次优的方式做事并不是什么大不了的事情!如果您第一次“长途跋涉”,那么第二次总是可以做得更好。 我的意思是,没有危险。除了这种态度,也许。这种态度会阻止您做任何事情,因为您将始终不肯执行任务,并说“我还不知道该怎么做”。

有一种“正确方法”做事的态度。没有。事情看起来完全一样。您必须在屏幕上放置像素,并在事情发生时发出声音。


3
如此真实。这仍然让我退缩很多。尽管我以某种方式不同意,但从术语上说,还有更多的“正确方法”,还有更多的“错误方法”,但是,完美主义和分析性瘫痪确实是一个问题。好答案!
彼得·阿卜杜林

6

取决于您是否以后想将此作为您的职业(我只是假设您正在考虑这一点,而这并不是业余爱好),这是我发现非常有效的方法:

  1. 从小开始

之前已经说过,但是我会再说一遍-从一点点开始,熟悉一下引擎,框架,工具或程序。一旦掌握了基础知识->扩大规模。

  1. 学习一切

这似乎有些极端,但是我的意思是,您要尽可能多地学习游戏开发的各个方面-无论您是编码员,美术师还是设计师。了解管道是以最有效的方式构建事物的关键。如果您要实施武器->设计,概念,建模,实施,编码!您显然不需要成为A级概念艺术家,设计师和管道书呆子-但您应该熟悉该过程的所有工具,并理解创建的每个步骤。另外,请访问游戏网站以获取业务中的新闻和更新-gamasutra.com,kotaku等都拥有有关业务和技术主题的出色文章。不要将自己局限于一个开发领域-吸收所有可以获得的知识:)

  1. 经常失败,努力失败。

您会在做自己的事情。在一开始的时候。总是那样(相信我,我知道。:D),但是只有继续前进,它才会变得更好,并且永远不要停止寻找改善工作的方法。互联网是教程,参考资料和帮助的绝佳来源。您将永远不会真正陷入困境,因此请拥抱最疯狂的想法,失败,从错误中吸取教训,并在此过程中变得更糟。

  1. 与人交谈!

尽管互联网是一个很好的来源,但是要获得面对面的反馈是很多工作中必须处理的事情。因此,提高您的软技能也很重要。如果您还没有导师,或者通常不认识太多从事该行业的人员,那么您应该环顾四周以进行独立开发人员聚会,参加会议并检查其他可以开始建立的活动个人的知识和联系网络。它也有助于与其他人一起建立东西-自学成才,但是游戏开发是基于团队的游戏,因此请查看论坛中的爱好项目-例如针对EDK项目的Epic论坛,Unity论坛甚至CryEngine论坛-所有这三种引擎都广泛使用,那里有一大批从事副项目的人才,他们

我认为这几乎是我所能提供的所有建议。我希望这对您有所帮助:)


您的所有观点都非常重要,在此列表中排名第一!:)
bobobobo 2012年

3

我完全没有C#和XNA的经验,但是我认为在以下声明中不会错:

不用老师学习编程就可以了。如果您的代码有效*,那么编码的方式并不重要。好吧,它适用于协作编程,但是那样的话,您将不再一个人编码了,对吧?将来,这也可能会使您的代码不易理解,从而难以使用旧组件或调试新错误,但从长远来看,所有错误都是您的强项。学习OOP和MVC设计中最难的事情是理解为什么我应该以“那样”的方式进行“这个”。如果您已经有制作不良程序的经验,您将了解模式的优势并利用它们来发挥自己的优势。如果您总是按照别人教给您的模式制作好的程序,那么您将继续制作(在有效代码的意义上)程序,但是您将不会受到模式的限制,因为您对它们的理解不足以进行有用的修改。最后,最重要的是您练习而不是练习,因此在这两种情况下,您迟早都会获得非常相似的经验。

* 一件事很重要!为了安全起见,您确实应该向经验丰富的人询问您的代码是否做得很好,因为安全漏洞不会弹出错误警报。


3

不知何故,这是一个很大的问题!:-)

我不久前开始了我的gamedev活动,这是第二次了,所以我可以分享自己的想法。您实际上是对的,拥有一位导师是一件好事。这位导师将是互联网。因此,在互联网上共享的信息越多,为您学习的内容就越容易。因此,XNA / C#是一个很好的选择。业余和专业独立游戏开发者中都有很多人正在网上共享文章。其他要提及的内容:

  1. 开源!Codeplex,GitHub,Google.Code,Bitbucket。那里有很多有价值的东西。
  2. 去社区!您在这里,这是一件好事。但是,还有一个大型的Microsoft XNA社区,其中包含一些不错的官方资料Codeproject也是很好的资源(但是gamedev的活动在那里很少)。
  3. 您可能需要阅读/ 观看很多东西。之前已经提到过。游戏开发不仅仅是编码。游戏设计也很重要。热情很重要。
  4. 像往常一样,不要试图一次咬很多东西,写自己的俄罗斯方块副本或突破实际上是一个好主意。
  5. 一开始可能会很困难,游戏开发不仅实际上很困难,而且与“企业”应用程序也有很大不同。有很多新的方面,例如韵律,声音等。您走得越多,就越容易(通常)。
  6. 写一个博客。表达您的开发过程(在此过程中,您将找到自己的问题的答案),并存储带有有价值文章评论的链接。
  7. 不要以为您的代码是您见过的最糟糕的事情。游戏代码更难控制,总是比它的漂亮“企业”代码更脏。但我向您保证,在那里我已经看到了一些可怕的作品(就源代码质量和游戏组织而言),它们都是成功的独立游戏。因此,尤其是对自己不要苛刻。开始时。

1

这适用于与创意产业有关的任何学科:

最大的危险是试图在大门外建造“太大”或“史诗般”的东西。

例如,如果您开始制作一些音乐,那么您就不会尝试制作50首2小时的交响曲。

在关卡设计中,这表现为试图制作“有史以来最大的地图”,或者使用游戏系统来构建游戏引擎能够处理的最大,最复杂的事情。在编程中,这可以归结为“从零开始编写自己的整个游戏”。从零源入手,您确实需要大量的经验和纪律,即使如此,这也很难做到,而在整个设计过程中,要对所有内容进行设计决策都是很困难的。如今,即使是简单的游戏也需要使用现代OS和语言进行大量的编程。同样,如果您从其他人的代码开始,则可以了解什么有效,什么无效,因此,尽可能多地使用引擎也是一大优势。

因此,从一开始,我将建议以下计划:

  • 关卡设计:建造一个小房间,建造一半建筑物,建造一座完整建筑物等
  • 艺术:在进入骨骼或变形网格并弄清楚如何在zbrush中很好地对其进行动画处理或绘画之前,请为TF2或类似的东西制作一顶帽子,或者为Skyrim或某些其他咬合大小的任务替换一些纹理。
  • 编程:采用现有的可修改或开源游戏引擎,并修改其中的某些部分(例如武器),然后制作新武器。如果您最终不喜欢游戏代码,则可以开始入侵图形引擎。

最好的办法是采用现有的成品引擎(可修改的引擎或某些开源的引擎)并开始对其进行黑客攻击,然后对多个不同的引擎进行几次操作,直到找到您喜欢的引擎为止。

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.