从头开始-如果我重新发明方向盘,这是一个错误吗?


31

通常,每当我想开始游戏时,我都会认为它具有良好的渲染基础架构和从头开始的更好的游戏循环。我通常不想使用现有的引擎。其背后的原因是我想自己实现它以学习知识。

但是许多博客和开发人员表示,重新发明轮子不是一个好选择。

我想念什么吗?


您实际上多久一次“开始游戏”?如果您正在快速迭代想法,请采取任何可行的措施。如果您要花大价钱在错误的步伐上或时间有限的地方,那为什么要浪费时间重新发明轮子呢?如果您有兴趣学习事物的工作原理,为什么不编写自己的技术呢?您的目标是什么?
克里斯(ChrisE)2011年

Answers:


16

不,这根本不是一件坏事。学习和学习能力绝对是成为一名优秀程序员的基础。

但是
,从头开始构建某些东西时,重要的是将其完成。多么hacky和未优化都没关系,如果您完成它,就会有一种与众不同的满足感。所有这些都将为您提供宝贵的经验,并且您可以始终在使某些功能正常运行时使代码更优雅,或在以后更好地执行。归根结底,只有优秀的程序员和平庸的程序员才是经验和实践。

当然,当您完成某些工作并想要创建更多游戏时,就没有理由重复使用旧的代码库。

如果您想开始从事游戏开发或任何类型的开发工作,那么经验将带给您非常非常的帮助。但是,如果您想快速轻松地制作游戏(与编写自己的东西相比相对容易),请使用现有引擎。

老实说,结合使用自己的代码和使用各种不同的库和引擎的经验,可以使您成为更好的编码器。


谢谢雷,这是有帮助的!但您能否也列出游戏机制...
Ayyappa

没问题。我不确定您在原始问题中的意思。你到底在追求什么?
Ray Dey

好的,我将其作为一个单独的问题。由于未与上下文相关,本文中的另一个问题已被删除(编辑)。
2011年

+1 完成线-实际完成一个项目是很好的经验。
独眼巨人

36
i want to implement it on my own to learn stuff.

那可能是最重要的。如果您的目标是学习,那么从头开始编写自己的渲染和游戏循环引擎就可以了,这是一种完美的学习体验。如果您的目标是快速轻松地制作完成的游戏,请使用现有的框架。


3
+1。仅仅因为API或第三方库可以抽象出所有实现细节,并不意味着您不需要了解它们。使用“现成的轮子”将帮助您更快地编写完成的代码;但是制作自己的车轮将帮助您确定哪些预制的是最好的,并且最重要的是,当辐条开始弹出时,如何对其进行优化和调试...
sebf 2011年

4
+1除非您正在学习制作轮子,否则请不要重新发明轮子。
zzzzBov 2011年

4
请记住,这将提高您在游戏引擎设计中的技能,但不会提高您在游戏设计中的技能。
Dave O.

这也是一个值得回答的问题...谢谢...但是我无法标记两个答案很糟糕:(
Ayyappa


5

取决于您的追求。如果您想学习,请重塑尽可能多的轮子。我知道有人写过自己的JVM或PNG加载器。

大多数博客可能会就如何快速获取可支付的费用提供建议,但我不知道这是否是一个好的长期策略。如果您不知道自己在玩什么,怎么知道它是一个不错的选择?您遇到问题,在论坛上抱怨或会自己解决时,您会怎么做?


4

在通用编程社区中,对此短语有很多劝阻,但我想我们都知道,我们许多人只喜欢重新发明轮子并找到一种使其旋转得更好,更快,更酷的方法。

新技术一直在涌现,需要人们重新发明轮子。OpenCL和其他GPU计算语言就是一个很好的例子。

您可以使用确实包含今年新功能的框架,但如果您真正进行研究并对现有功能进行改进,则可以自己进行构建,..您确实可以在性能和实用性方面开拓新的领域。

一旦发明了几个轮子使您滚动,您就会非常了解自己的东西并获得丰厚的奖励!

加上它真是有趣。


1

有人声称他们是因为他们重新发明了轮子而提高了生产率。

恰当的例子:《爱的世界》的创造者埃斯基尔·斯坦伯格(Eskil Steenberg)(精彩视频,他讲述了他的游戏,他的引擎和令人敬畏的工具以及他的理念:http//vimeo.com/18423305


1

如果这是您的初次学习,甚至只是为了学习,那么最好还是使用某种引擎,因为您将学习该引擎可以为您提供什么。

隐喻中使用的“轮子”是概念,而不是实现。即使您不会重新发明轮子,您仍然需要选择要购买还是自己制造一个。因此,创建自己的引擎甚至不需要重新发明轮子,只是出于某种目的创建自己的轮子,这可能是出于学习目的,低成本,小尺寸或任何特定用途或要求。


0

问题是,进行游戏需要花费大量时间才能真正地进行内容,资产的创建和测试,而不是编写代码。这可能就是为什么很容易跳过该部分并使用现有引擎以便能够在内容,游戏设计和更高级别的错误上花费更多时间的原因。

我认为,从头开始学习,会给现有引擎背后的工作带来良好的感觉,并提高以后选择引擎的能力。

为了娱乐和学习,请做任何您想做的。如果我必须从头开始编写内容管道类,处理文件系统和资产加载器的所有烦人的细节和边缘情况,我会发疯的-只要我学到了足够的知识来真正掌握如何做,如果某人已经做得很好,我倾向于避免这样做(尽管确实如此,但是许多框架和引擎不适合我自己的“好”构想,这可能会导致重写某些东西)。如果我不知道该怎么做,我真的很喜欢至少完成一次,只是要掌握它的所有细节,就像雷迪(Ray Dey)所说的那样。


0

如果您没有时间学习,那只是一个错误。如果您有时间,那就去吧。如果不这样做,那就不要这样做。

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.