我是一名业余程序员,对 Python 有一定的了解,目前正在学习 C。最近我和一位也想学习编程的同事聊天。就他而言,他希望学习 C++,以此作为使用 DirectX 进行 Windows 游戏编程的途径。就我个人而言,我觉得直接进入 C++ 因为你的第一语言有点太多了 - 在一种更简单的语言中保持动力已经够难的了,我认为最好学习另一种语言来了解大部分基本概念,然后再深入了解像C++之类的东西。

我发现 Python 作为我的第一语言效果很好,因为我对 Linux/Unix 平台上的网络和 Web 编程更感兴趣,但对于主要对 Windows 游戏编程感兴趣的人,我认为 C# 可能是更好的选择,因为他可以使用 Visual 进行学习C# Express Edition 和 XNA,然后在他准备开始学习 C++ 并因此已经处于熟悉的环境中时切换到 Visual C++。我认为内存管理需要了解很多内容,而 C# 至少可以处理这些问题,因此他可以将其推迟到开始学习 C++ 为止。

其他人如何看待 C++ 作为此类应用程序的第一种编程语言?我应该建议他改用 C# 吗?

有帮助吗?

解决方案

C ++应该没问题。我认为他最好不要学习内存管理,指针等。然后再跳到C#,因为他将了解程序如何更好地工作。否则,他只会将记忆视为神奇而垃圾收集器将没有任何实际意义。了解基础语言(C,C ++,汇编等)以生成最佳代码总是好的。

其他提示

C ++是用于大多数“严重”的主要语言。游戏标题。如果为一个主要的游戏工作室编程,那么他需要知道C ++的脏东西。

从C ++开始对于一个完整的新手来说可能有点多。我会推荐C作为一个很好的起点。在添加C ++的复杂性之前,您已经熟悉了内存管理和其他低级内容的概念。

由于C#是托管代码,因此他无法获得低级内存管理的见解。不得不处理C ++时,这对他不利。在这种情况下,从金属开始接近将有助于他长远。

C ++游戏编程很棒。但除非你在学习编程时喜欢完全痛苦,否则你可能会从XNA开始。这将允许您处理游戏内容和逻辑,而不是与您的引擎代码作斗争。

现在,如果您喜欢痛苦,请使用DirectX和C ++路线开始。

我认为在使用C ++之前彻底学习Java或C#等语言会更好。我说这个的原因是因为你很容易陷入C ++的细节和错综复杂的境地。

我几年来一直在和C ++一样苦苦挣扎(作为一种爱好),然后在Uni我学习了Java,停止了做任何C ++,找了几年做Java的工作,然后转入C ++ dev。我很快就选择了所有内容,因为我已经知道我想要应用哪些模式和概念,这只是学习语法和怪异以及再次习惯指针的问题。我只是必须学习如何而不是为什么。将C ++作为第一种主要语言,同时学习HOW和WHY,这可能会让人非常困惑!

XNA是一个很好的建议。

Python擅长游戏编程。请参阅我想学习游戏 - 发展 - 这 - 语言应该-I-使用。考虑学习 Pygame

  

Pygame是一组专为编写游戏而设计的Python模块。 Pygame在优秀的SDL库之上添加了功能。这允许您使用python语言创建功能齐全的游戏和多媒体程序。 Pygame具有高度可移植性,几乎可在所有平台和操作系统上运行。 Pygame本身已被下载数百万次,并且已经有数百万次访问其网站。

如果他想进入这个行业,那么了解C ++至关重要,因为大多数游戏引擎都使用C ++。 (我也是开发人员应该某点精益C或C ++)
但是,如果他想写游戏(比如完成游戏的话),那么C ++可能就没有了。它非常复杂并且有很多陷阱使它成为一种缓慢的语言开发。它不仅仅是内存管理,而是像可怕的stl相关的编译错误等,这使得在第一次尝试时很难完成任何事情。编程。
看看像C#或Python这样的东西会是一个更好的选择,因为它们的语言要简单得多,而且每个都有一些好的游戏库。

如果他认为C ++是正确的方法,那么我建议至少使用一个渲染库。像 Ogre3D 这样的东西至少是这样的。本文介绍了编写游戏而非引擎的原因。虽然从基础API编写(或尝试编写)引擎将是一个很好的体验,但游戏不太可能完成。

您必须考虑的是现有的 SDK,您可能不想编程 一切 你自己。例如,有一些非常好的 3D 引擎,具有不同类型的许可,可能很适合您。

因此,您应该检查现有的库和 SDK,以及您想要同时使用的几种语言。适应C++或C#并没有那么困难,前者更严格,要求更高,但它给你更广泛的内存控制,后者让你专注于主要开发领域,但负责内存管理(大部分),这意味着您可能会遇到实时问题。

归根结底,您在构建应用程序时获得的帮助总是会超过这些 OO 语言之间的微小差异(在某种程度上)。

游戏引擎有很多,大部分都列出来了 在本页. 。在自由世界中,特别令人感兴趣的是:

非免费套餐包括 统一, , 和别的。

如果你这样做 不是 想要这些引擎中的任何一个,仍然有非常好的库,例如 Qt 对于 C++,它允许编写脚本(虽然不是直接使用 Python,您必须自己嵌入它),而对于 C# 则允许编写其他脚本,但列表可能会变得相当长。

通常情况下,人们在完成第一场比赛之前就会失去动力。因此,除非您的朋友有坚定的记录,否则我建议使用最高级别的选项。如果你在C ++和C#之间做出选择,那就是C#。

我更喜欢XNA和C#进行快速而轻松的介绍。我会在使用C ++和DirectX这样的库之后进行游戏编程,然后对这个主题有一些经验。大多数最成功的游戏都是用C ++编写的。 / p>

如果您的目标是获得乐趣,并且实际上自己(或小团队)完成范围相对较小的游戏,那么我会说C#和XNA。

如果您的目标是在行业中工作,那么与巨型团队一起进行超级大预算游戏......那么C ++ ......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top