Windows下的游戏编程(使用C++或C#)

3

我刚学习了c++和c#的基础知识,只是语言的简单基础。我想追求游戏编程,有人可以告诉我该从哪里开始吗?我在某处读到Direct-X用于游戏编程,然后我从微软网站上下载了它,但我就是不理解它。你们当初作为初学者时是从哪里开始学习游戏编程的?我是否需要对这种语言有深入的了解,或者现在就可以开始学习呢?请给我一些建议。我现在正在攻读计算机科学本科学位的第一学期。


看看这些答案,它们谈论引擎、书籍、网站、资源、书籍等等,因为你没有具体说明你要找什么。 - Moayad Mardini
我对引擎不是很了解,因为我只学过基本的类和其他东西。我忘记问了,我应该先从2D游戏编程开始吗?因为我认为这对于初学者来说会更好,请告诉我关于2D编程的一些内容,类似于《GOO世界》。我想从这种类型开始。 - user212920
1
@Moayad Mardini:“请问有人可以告诉我从哪里开始吗?” - Partial
2D游戏更简单,您不需要太多的美术支持。一旦您开始使用3D,您需要学习更多知识;至少要足够了解如何导出您的3D模型。更不用说纹理、骨骼、网格等等。您只需使用Photoshop即可完成2D游戏。 - Byron Whitlock
8个回答

10

现在就开始编码吧。如果不进行编码,你就无法获得深入的知识!我强烈推荐使用XNA。XNA基本上是DirectX的.NET封装器。它非常干净且思路清晰(当然是指C#语言)。

祝玩得愉快!


1
-1:大多数视频游戏之所以不使用XNA,是有原因的。C#和XNA不能用于严肃的游戏开发。.NET会耗尽你的RAM,而C#并不像C++那样允许你自由发挥! - Partial
2
大多数视频游戏都不是独立游戏。 - zfedoran
[kirugan] 又一个被吹嘘然后被抛弃的微软技术。微软,你在干嘛?Silverlight、COM、DAO、ADO、XNA等等,这个列表还可以继续下去... - Byron Whitlock

4

C++游戏编程入门是个不错的开始。

alt text

《用C++进行游戏编程入门》探索了以C++为重点的游戏开发世界。本书首先解释了数学基础与游戏编程的关系,介绍了C++的基本知识,并描述了许多常用于游戏中的算法。此外,它还讨论了几个库,可以帮助您管理图形、添加音频和创建安装软件,以便您开始制作2D和3D游戏。
如果您想从C#开始,这是推荐给初学者的语言,您可以使用XNA,它相当容易学习,一本好书是Beginning XNA 2.0 Game Programming: From Novice to Professional
你想创造自己的游戏,但没有时间研究多媒体编程细节吗?现在你不用了!XNA使创建在PC和Xbox 360主机上运行的游戏变得简单。即使你不知道如何进行编程,从新手到专业人士的入门XNA 2.0游戏编程将会教你C# 2005编程的基础知识。不要被你不需要知道的细节所压倒,只需学习你需要立即开始创建自己的游戏的内容!快速介绍XNA和C#语言为专业开发人员提供了一个快速入门指南来使用XNA创建商业产品,同时为家庭爱好者或业余爱好者提供了他们需要开始利用空闲时间组装游戏的一切。您将发现和理解在各种游戏类型中创建平稳、专业外观结果所需的所有关键概念。每个读者都将拥有一个坚实的基础,可以在此基础上构建更高级的想法。

4
阅读您对原问题的评论,似乎您已经陷入了设定目标过高的陷阱。游戏《小球物语》并非一夜之间就产生的。它花费了很长时间使用许多第三方库来完成视频/音频/物理/游戏玩法元素,并且需要对编程有很好的工作知识以及对做游戏时常见限制的理解。
现在,这可能看起来像是一个消极的回应,但关键是取得小的成就比失败于大的目标更好。失败通常会让人们放弃他们真正想做的事情。
拜伦·惠特洛克的建议“现在开始编码”是最好的建议。但是,从简单的东西开始:例如猜颜色的基于文本的版本,然后是一些简单的、非实时的图形,如奥赛罗/翻转棋/滑动拼图,然后尝试一些实时的东西,如俄罗斯方块,然后再分支到物理、音频、3D等方面。
成为优秀程序员的关键在于完成可运行的代码(发布是一种功能!),从代码中学习——看看是否有更好的方法来完成任务等。从小事做起,完成一些程序,获得士气提升,巩固基础,逐渐增加复杂度。

3

如果您懂一点C#,我建议您开始学习XNA,这是进入游戏开发并学习其他库中的重要概念的绝佳途径。您可以前往creators.xna.com观看多个视频和教程,而且在为PC编程时所有内容都是免费的。


2

0

我不建议使用XNA来学习游戏编程。它隐藏了许多你需要了解其内部工作原理的概念,这对于建立扎实的理解非常重要。

首先,彻底学习如何使用C++编程并理解组件对象模型(COM)的工作原理,因为这是您需要使用的内容,以便调用DirectX SDK中的不同方法。完成此操作后,学习如何在Win32中使用C++创建窗口。接下来,找一些关于DirectX 9 SDK、游戏引擎和架构、多线程应用程序和设计模式的书籍。我建议阅读Alan Thorn的DirectX 9 Graphics The Definitive Guide to Direct3D,以了解Direct3D。这本书不是权威指南,而是一个非常好的入门指南,可以获得坚实的基础。当然,这本书有点老了,但概念仍然非常相似,它将成为以后的参考书(而且价格便宜...您的预算可能很紧张,因为您必须支付大学的所有费用:P)。此外,查看SDK的文档和示例。哦,我差点忘了,您需要一些数学概念(线性代数和向量代数)!

2
-1 XNA的开发旨在帮助新手程序员学习游戏编程,并降低独立开发者创建游戏的门槛。初学者使用XNA将更加高效并快速地看到结果。当他们准备用10名程序员和25名艺术家制作AAA游戏时,就需要使用C++了。 - Byron Whitlock
我不相信你正确地阅读了我写的内容... 在进行任何DirectX之前必须学习某些概念,而我已经清楚地写了出来。如果你没有很好地理解我提到的不同概念,就不应该开始学习DirectX。 - Partial
事实上,这正是我的观点,无论如何他都必须学习使用DirectX的非托管C++。通过拥有一些好书、互联网和来自他大学的一些老师,我相信学习并不难。这可能需要一些时间,但这是一个正常的过程。即使你花时间学习C#和XNA,学习非托管C++和DirectX后也不会更快。 - Partial
2
他正在攻读计算机科学学位的第一学期。他需要快速获得成果和鼓励,这将使他保持动力。当你处于起步阶段时,放弃是非常容易的。我记得当我还是大一学生时想要制作游戏,但那时候没有XNA,所以我放弃了。8年后,我在Stormfront Studios制作AAA游戏。 - Byron Whitlock
你又在抄我的东西了!用C#和XNA编程会让他错误地认为自己擅长DirectX。而在游戏行业中,情况则完全不同。如果你在一开始就放弃了,那么要么是因为你不适合计算机科学,要么是因为你不喜欢编程,或者是因为你对制作视频游戏的过程有一个错误的想法。如果你喜欢编程,那么至少应该自己去搜索相关主题的信息。学习的方式是逐步进行,而不是一次性掌握所有知识。 - Partial
显示剩余2条评论

0

我建议您尝试使用Silverlight作为游戏平台。

请查看此网站http://dobbschallenge2.com/。它具有完整的2D平台游戏引擎,包括源代码和图像。您可以学习视差滚动等内容。

这样,您就可以修改游戏源代码并逐步了解其工作原理。游戏引擎非常简单,但游戏很有趣,还包括令人惊叹的配乐:)


-1

看看扭矩引擎。它价格便宜,可以帮你处理很多制作游戏的繁琐工作,让你专注于让游戏更有趣。它价格便宜,你可以使用C#编码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接