C# C或C++制作游戏引擎(深入) < >什么是最好的C或C++来制作游戏引擎?我现在是.NET C开发人员,并且真的想使用C。虽然我知道C++确实支持内存管理,这就是为什么很多大公司都会这么做的原因。也就是说C在开发过程中更快,我非常熟悉。在任何人建议之前,是的,我使用了团结。我喜欢这项运动,但我想进行漫长而艰苦的额外拉伸,以拥有100%的我自己打造的比赛 我不会因为C++而失去什么?我使用什么样的库,用于图形和其他东西?这就是DirectX的用途吗?在C++中,创建C++游戏引擎是一个很大的挑战。 C比C更令人愉快++

C# C或C++制作游戏引擎(深入) < >什么是最好的C或C++来制作游戏引擎?我现在是.NET C开发人员,并且真的想使用C。虽然我知道C++确实支持内存管理,这就是为什么很多大公司都会这么做的原因。也就是说C在开发过程中更快,我非常熟悉。在任何人建议之前,是的,我使用了团结。我喜欢这项运动,但我想进行漫长而艰苦的额外拉伸,以拥有100%的我自己打造的比赛 我不会因为C++而失去什么?我使用什么样的库,用于图形和其他东西?这就是DirectX的用途吗?在C++中,创建C++游戏引擎是一个很大的挑战。 C比C更令人愉快++,c#,c++,graphics,game-engine,C#,C++,Graphics,Game Engine,为什么? 在C++中,指针是强大的,需要知道指针如何工作以及如何使用指针。 在C++中,查找库不像拉NuGET包那么简单。 在C++中,创建和重构头文件和源文件是恼人的。 在C++中,需要编译每个CPU架构 在C++中,语法在开始时可能比较难掌握。 在C++中,使用编译器和优化它本身就是一个主题。 但是如果你想让你的游戏/游戏引擎更快,那么你应该选择C++ 当我看到人们在C++中编码游戏时,他们主要使用OpenGL,但这是一个常见的错误,因为大多数非控制台玩家都是Windows用户。 我的建议是

为什么?

在C++中,指针是强大的,需要知道指针如何工作以及如何使用指针。 在C++中,查找库不像拉NuGET包那么简单。 在C++中,创建和重构头文件和源文件是恼人的。 在C++中,需要编译每个CPU架构 在C++中,语法在开始时可能比较难掌握。 在C++中,使用编译器和优化它本身就是一个主题。 但是如果你想让你的游戏/游戏引擎更快,那么你应该选择C++

当我看到人们在C++中编码游戏时,他们主要使用OpenGL,但这是一个常见的错误,因为大多数非控制台玩家都是Windows用户。
我的建议是,首先用DirectX开始创建一个小游戏,如果你觉得它很舒服,那么下一步,创建自己的游戏引擎

< P>在C++中创建一个游戏引擎,而学习C++是一个很大的挑战。 C比C更令人愉快++

为什么?

在C++中,指针是强大的,需要知道指针如何工作以及如何使用指针。 在C++中,查找库不像拉NuGET包那么简单。 在C++中,创建和重构头文件和源文件是恼人的。 在C++中,需要编译每个CPU架构 在C++中,语法在开始时可能比较难掌握。 在C++中,使用编译器和优化它本身就是一个主题。 但是如果你想让你的游戏/游戏引擎更快,那么你应该选择C++

当我看到人们在C++中编码游戏时,他们主要使用OpenGL,但这是一个常见的错误,因为大多数非控制台玩家都是Windows用户。 我的建议是,首先使用DirectX创建一个小游戏,如果您对它感到满意,然后采取下一步,创建您自己的游戏引擎

我需要一些意见

也许我不应该冒昧地告诉你你需要什么,但我认为你最好能得到形成自己观点所需的信息。寻求自以为是的答案注意,在我看来,这里的讽刺通常不可取

C和C++都是非常强大的通用编程语言。任何一种语言都能100%创造出成熟的高性能游戏。尽管如此,有一些主要是客观的差异可以指出,可能会影响你的决定

垃圾收集 这是赞成还是反对,由你自己决定。有些人想节省自己的工作,而不得不花很少的时间来处理记忆。显然,C在这方面很出色。C++可以拥有优雅和容易的内存管理,如果你知道如何正确地使用智能指针,当然,这仍然比垃圾收集更费力。如果你非常担心对资源的严格控制,那么C++可能是你更喜欢的东西。 图书馆 当你想在不改造轮子的情况下编写软件时,你应该知道一种语言的库和语言本身一样重要。对于这两种语言来说,这都不是一个明显的优点,因为它们都有很多支持游戏的库。如果你必须选择一个赢家,我会说它可能是C++。多年来,这种语言基本上一直是游戏程序员的母语,在这个领域已经相当成熟。C++可以直接将API作为OpenGL的低级别,并与OGR3D一样高。但是,没有一个保证,你的游戏实际上会受益于C++库而不是C库。这取决于您的用例

标准库 <> P>继续讨论图书馆主题,这可能是C和C++的两个语言,它们有大量的图书馆可用。如果你只计算他们的标准LIB,那么情况就会改变。有些人不介意,甚至喜欢这样。然而,人们可能还需要一套更广泛的标准功能。C++没有任何一个小的或不可操作的标准库,但是C的功能更丰富。 站台 除非您打算使用Mono,否则C是不可移植的。单声道是一个很好的选择,但它确实有缺点,你必须自己研究。C++不能像一次构建一条线,在任何地方运行,但是它做的都是一样的,如果你要这样做的话,它的可移植性就好。使用OpenGL渲染器或更高级别的包装器API(如SDL) /几乎可以为任何桌面环境构建SFML。如果你只是担心为微软平台制作游戏,那么这一点可能是沉默的

虚拟机或本机

这就像垃圾收集只是一个需要考虑的因素。这将由你来决定它是否适合你使用。虚拟机有时在游戏程序员中有一个污名,这似乎是因为假定的性能问题。没错,如果C++智能地使用,它可能是一个更好的游戏。然而,C的表现并不值得嘲笑。今天编写的许多游戏都可以用C实现来执行。使用C++真的是一个优势,如果它意味着450 fps vs 400 fps?当然,有一个可测量的差异,但它并不意味着任何人玩你的游戏,即使他们有一个144hz的显示器。内存开销与此类似。通常C++直到你开始进入重量级游戏才是必要的。 学习

最后但并非最不重要的是,考虑一下你有工具和不知道的工具这一事实。你已经知道C了,如果你选择通过C++,那么你必须投入学习的时间可能会少得多。C++与C语言和java语言相比,有更多的概念和责任。有些事情你可以选择忽略。C++不会用枪口来支持你,强迫你使用多重继承,嘿,这很可能会被放弃。你会放弃析构函数吗?这些都很重要。STL的总体情况如何?如果你想使用C++,那就不太好了,你最好学STL。如果你认为这是值得做的,那就千方百计去做吧。尽管如此,这只是一个需要权衡的问题

我需要一些意见

也许我不应该冒昧地告诉你你需要什么,但我认为你最好能得到形成自己观点所需的信息。寻求自以为是的答案注意,在我看来,这里的讽刺通常不可取

C和C++都是非常强大的通用编程语言。任何一种语言都能100%创造出成熟的高性能游戏。尽管如此,有一些主要是客观的差异可以指出,可能会影响你的决定

垃圾收集 这是赞成还是反对,由你自己决定。有些人想节省自己的工作,而不得不花很少的时间来处理记忆。显然,C在这方面很出色。C++可以拥有优雅和容易的内存管理,如果你知道如何正确地使用智能指针,当然,这仍然比垃圾收集更费力。如果你非常担心对资源的严格控制,那么C++可能是你更喜欢的东西。 图书馆 当你想在不改造轮子的情况下编写软件时,你应该知道一种语言的库和语言本身一样重要。对于这两种语言来说,这都不是一个明显的优点,因为它们都有很多支持游戏的库。如果你必须选择一个赢家,我会说它可能是C++。多年来,这种语言基本上一直是游戏程序员的母语,在这个领域已经相当成熟。C++可以直接将API作为OpenGL的低级别,并与OGR3D一样高。但是,没有一个保证,你的游戏实际上会受益于C++库而不是C库。这取决于您的用例

标准库 <> P>继续讨论图书馆主题,这可能是C和C++的两个语言,它们有大量的图书馆可用。如果你只计算他们的标准LIB,那么情况就会改变。有些人不介意,甚至喜欢这样。然而,人们可能还需要一套更广泛的标准功能。C++没有任何一个小的或不可操作的标准库,但是C的功能更丰富。 站台 除非您打算使用Mono,否则C是不可移植的。单声道是一个很好的选择,但它确实有缺点,你必须自己研究。C++不能像一次构建一条线,在任何地方运行,但是它做的都是一样的,如果你要这样做的话,它的可移植性就好。使用OpenGL渲染器或更高级别的包装器API(如SDL/SFML),您可以为几乎任何桌面环境构建。如果你只是担心为微软平台制作游戏,那么这一点可能是沉默的

虚拟机或本机

这就像垃圾收集只是一个需要考虑的因素。这将由你来决定它是否适合你使用。虚拟机有时在游戏程序员中有一个污名,这似乎是因为假定的性能问题。没错,如果C++智能地使用,它可能是一个更好的游戏。然而,C的表现并不值得嘲笑。今天编写的许多游戏都可以用C实现来执行。使用C++真的是一个优势,如果它意味着450 fps vs 400 fps? 当然,有一个可测量的差异,但它并不意味着任何人玩你的游戏,即使他们有一个144hz的显示器。内存开销与此类似。通常C++直到你开始进入重量级游戏才是必要的。 学习



最后但并非最不重要的是,考虑一下你有工具和不知道的工具这一事实。你已经知道C了,如果你选择通过C++,那么你必须投入学习的时间可能会少得多。C++与C语言和java语言相比,有更多的概念和责任。有些事情你可以选择忽略。C++不会用枪口来支持你,强迫你使用多重继承,嘿,这很可能会被放弃。你会放弃析构函数吗?这些都很重要。STL的总体情况如何?如果你想使用C++,那就不太好了,你最好学STL。如果你认为这是值得做的,那就千方百计去做吧。不过,这也是一个需要权衡的问题。

你的意思是C的开发速度更快,对吗?这个问题在这个网站上是离题的。但要回答你的问题:想要快速游戏吗去C++。这个主题怎么办?这里有一个游戏引擎的标签。@MistaGoustan您没有提出您所面临的特定编程问题,这就是StackOverflow的用途。你所提出的是一个很有可能引发争议的讨论话题,而且它的范围太广,无法给出答案。你在某个论坛上的运气会好得多。我没有投反对票,但主要问题是这主要是一个基于观点的问题。你是说C的开发速度更快,对吧?这个问题在这个网站上是离题的。但要回答你的问题:想要快速游戏吗去C++。这个主题怎么办?这里有一个游戏引擎的标签。@MistaGoustan您没有提出您所面临的特定编程问题,这就是StackOverflow的用途。你所提出的是一个很有可能引发争议的讨论话题,而且它的范围太广,无法给出答案。在某个论坛上,你会有更好的运气。我没有投反对票,但主要问题是这主要是一个基于意见的问题。这是非常有用的。你已经证实了我的直觉告诉我的,我也知道DirectX和OpenGL到底是什么,它是一个引擎,而不是一个库。这是我的主要困惑之一。谢谢你的帮助和花时间。我不会打电话给OpenGL和DirectX引擎。它们只是通过代码访问图形卡的一种方式。在屏幕上画东西只是游戏引擎的一小部分。当我看到人们在C++中编码游戏时,他们主要使用OpenGL,但这是一个常见的错误。OpenGL和DirectX一样好,OpenGL拥有Linux兼容性。@ MichaelB。我还没有给他们打电话engines@user2262111如果您想要跨平台的兼容性,那么这是非常有用的。你已经证实了我的直觉告诉我的,我也知道DirectX和OpenGL到底是什么,它是一个引擎,而不是一个库。这是我的主要困惑之一。谢谢你的帮助和花时间。我不会打电话给OpenGL和DirectX引擎。它们只是通过代码访问图形卡的一种方式。在屏幕上画东西只是游戏引擎的一小部分。当我看到人们在C++中编码游戏时,他们主要使用OpenGL,但这是一个常见的错误。OpenGL和DirectX一样好,OpenGL拥有Linux兼容性。@ MichaelB。我还没有给他们打电话engines@user2262111如果您想要跨平台兼容性,则为True。这非常详细,非常有用。真的,谢谢你。我想即使我失去了声誉,我也应该继续这样做。我想在将来参考它,我想其他人也会。你说得对,我需要一些意见,这似乎是个触发语。感谢您以适当的方式发出呼吁,在那里我可以编辑、学习和成长,而不会泄气发表文章。我很高兴这对你有帮助。记住,如果有人否决了你的问题,那不一定是因为他们认为这是一个糟糕的问题。我不认为是这样,否则我可能不会给出答案。Stackoverflow只是在问题上有一些规定,而要求给出有观点的答案并不符合这些规定。够公平的朋友。由于一开始缺乏解释,我确实比我应该的更个人化了。虽然我接受理性,但对这个问题的糟糕回答阻止了我删除这个问题。这非常详细,非常有用。真的,谢谢你。我想即使我失去了声誉,我也应该继续这样做。我想在将来参考它,我想其他人也会。你说得对,我需要一些意见,这似乎是个触发语。感谢您为我提供了一种合适的方式,在这里我可以编辑、学习和成长,而不必成为di
他急忙去邮局。我很高兴这对你有帮助。记住,如果有人否决了你的问题,那不一定是因为他们认为这是一个糟糕的问题。我不认为是这样,否则我可能不会给出答案。Stackoverflow只是在问题上有一些规定,而要求给出有观点的答案并不符合这些规定。够公平的朋友。由于一开始缺乏解释,我确实比我应该的更个人化了。虽然我接受理性,但对这个问题的糟糕回答阻止了我删除这个问题。