编写一个新的 3D 引擎很有趣,但我有很多。程序员开始一个新的程序员是否理智?有需要的行业板块吗?
4 回答
这样做的理由:
- 您想了解如何制作 3D 引擎,并且并不真正关心除了您自己之外是否有人使用它。
- 现有的引擎都没有做你想做的事,修改它们的源代码太麻烦了(如果你能得到它的话)。
- 你有这么棒的想法,没有其他引擎做过,所以你需要这样做,因为你正在做的任何事情都不存在。
不这样做的理由:
- 您没有足够的这些资源:时间/预算/专业知识。
- 现有引擎完全符合您的需求。
构建新的 3D 引擎有很多原因(不分先后):
- 旧的是第一人称射击游戏,但你想要一个飞行模拟器。
- 旧的可以,但是不好用或者bug太多
- 别人拥有旧的
- 新硬件特性 XYZ 与旧引擎根本不兼容
- 有人付钱给你建造一个
- 你以前从未建造过。
- 你的游戏(模拟)只需要 χ,但旧引擎提供 χ、ψ、ζ、α、β、γ、δ,甚至 π。
我现在正好在空闲时间构建一个基于 OpenGL 的 3D 引擎。通过自己实现它,我扩展了我对 OpenGL 的基本知识,而不是通过编程到其他人的接口(比几年前我实现自己的软件仿射纹理映射引擎时所做的更多)。缺点是我可能永远不会完成它:)
这与我是否应该编写自己的程序/技术/框架 X 而不是使用现有的问题非常相似?”这已经被问了很多,所以我不会讨论通常的样板原因。
虽然这个问题的答案总是有些主观,但很大程度上取决于提出问题的背景。
如果有人问我想了解游戏引擎和渲染,那么编写自己的游戏引擎总是有益的,因为开发代码可以说是最好的学习方式。但是,也可能已经存在可供学习的良好的开源良好文档引擎。
如果这是一项商业努力,那么它更多的是一个现有引擎是否提供所需的问题。现代商业引擎是由一些真正聪明的人编写的,包含所有最新的花里胡哨,所以它们很可能就足够了。使用两个最流行的游戏引擎开发的游戏数量之多就证明了这一点:idTech 和 Unreal 引擎。但是,可能仍然没有与技术相关的禁止因素来使用现有引擎,而编写自己的引擎会更好。例如,是否可以负担得起,发动机是否可以获得足够的许可,以及是否可以提供许可。
通常,如果您需要一个并且还没有适合您需要的一个,则您编写一个。
是否有人需要为他们制造的引擎,因为不存在适合他们需求的引擎?大概。