从哪里开始游戏开发?[关闭]


65

我之前在stackoverflow.com的这个线程中问过。早期的评论之一将我重定向到gamedev.stackexchange.com,所以我在这里重新发布。

在搜索相关问题时,我发现了许多非常具体的问题,但我担心这些具体问题对我毫无用处,并且在Google上工作了4个小时之后,我距离开始的路程不远,所以我觉得接触社区可能为了。

首先,我的目标:尽管我数次迷失了可能性,但我从未做过游戏。我决定最终坐下来,开始学习如何编写游戏代码,使用游戏引擎等。所有这些使我有一天(希望很快)就能制作功能性(尽管很简单)的游戏。稍后,我可以开始添加复杂性,现在,我很高兴拥有一个键盘控制的相机在3D世界中移动,除此之外没有任何交互。

我的背景:我曾经使用过几种编程语言,从PHP到C ++到Java到ASM。我不害怕学习新语法或新语言固有的限制会带来任何挑战。但是,我过去的所有编程经验都完全是非图形的,并且在执行过程中通常很少或非常简单地进行交互。我创建了广泛而出色的算法,用于解决逻辑和数学问题以及图形问题。但是,在每种情况下,输入都可以在文件中定义,从HTML表单传递或在控制台中键入。我没有经验,无法与用户进行实时互动。

我的问题:我应该从哪里开始尝试制作游戏?更好的是-我应该从哪里开始尝试创建可在键盘上导航的3D环境?在在线搜索中,我发现了一些链接到游戏引擎,图形引擎和物理引擎的资源。这是我对尝试过的几种引擎的经验的简要总结:

Unreal SDK:教程视频假定您已经具有3D建模,图形引擎,动画等方面的深入知识。“入门”页面未提供游戏开发的正式解释,但跳入Unreal如何简化您假设的流程已经很熟悉了。下载SDK并启动它以查看工具是否如他们所声称的那样直观之后,我迎接了大约60个按钮和3D建模的空白。单击“添加体积”(尝试添加基本多维数据集)时,出现了包含30个选项的菜单。惊慌失措,我关闭了编辑器。

Crystal Space:该网站似乎很有帮助,解释了Crystal Space仅用于图形,而配套软件CEL提供了制作游戏的实体逻辑。提供了一个演示游戏,该游戏是使用“ CELStart”构建的,这是他们的简单工具,适用于不了解游戏编程的人们。我启动了该游戏,以查看可能会创造的东西。它冻结了好几次,菜单有错误,有成千上万的图形故障,敌人没有对伤害做出反应,当我关闭游戏时,它被锁定了。放弃那个引擎。

IrrLicht:本教程假定我具有Visual Studio 6.0(具有Visual Studio 2010)。按照他们的指示,我无法将库正确导入Visual Studio,也无法调用他们一直使用的任何函数。手动将头文件,类文件和DLL复制到我的项目的文件夹中-该项目无法正确编译。

显然,我并没有一个好的开始,而且我会盘旋。有人可以指出我正确的方向吗?我应该从下载Blender之类的程序开始并学习3D建模,还是应该学习如何使用图形引擎?我应该寻找一个包罗万象的游戏引擎,还是尝试编写自己的游戏逻辑更好?如果有人真正制作了自己的游戏,我希望听听他们是如何开始的。

也不能在我的学校上课。没有提供任何东西。


3
+1良好的编程背景,正在寻求特定需求。
Will Marcouiller 2011年

6
+1,这是有关如何开始游戏开发的深思熟虑和研究好的问题。另外,我对Unreal SDK感到痛苦。
詹姆斯

我建议查看Raven67854的 UDK 教程。它们被列在视频下,人们似乎喜欢它们。
杰西·多尔西

我的建议是开始做一些事情。通常,问这类问题的人都希望线性地铺平道路(因为我曾经问过同样的问题)。但是,根据我过去的经验,游戏开发学习曲线是非线性曲线。我通常会从一个问题到另一个问题---如果我被卡住了,那么我会要求/寻找答案。因此,只需尝试一下,从反复试验中学习即可。通常,我从教程开始。但是,这些教程从未提供足够的详细信息,因此我必须询问/搜索/实验以获取答案。
user1542

Answers:


38

我加入GD时曾问过这样的问题。以下是您可能感兴趣的一些链接,希望它们可以指导您实现目标。

简而言之,我会XNA Game Studio着手进行游戏开发。然后,前进到您希望以知识/技术实现的目标。XNA教会了我关于使用Sprite的知识,并允许我从学习曲线的一开始就立即应用我的一些知识,这样我就可以足够快地掌握知识,以了解如何设计游戏以在使用类时使用类依赖注入等等。所以,我让您不再等待。

  1. 从哪里开始写游戏,任何教程之类的?
  2. 游戏开发的基本原理是什么?(有趣的问题,恕我直言)
  3. 将物理和游戏逻辑与UI代码分开
  4. 使用类在XNA中移动我的Sprite

您为什么要问XNA?仅仅是因为您的Java背景。XNA在某些方面使用与Java类似的C#,它也是一个简单的框架,可用来抽象化游戏循环和内容,以便您专注于重要的事情。

我确实希望这能帮助您入门。=)


1
抱歉,延迟的响应=)我正在阅读您将我重定向到的每篇文章(此外,其中一篇文章链接到有关使用XNA制作3D游戏的MSDN页面,这对我很感兴趣,因为XNA游戏引擎页面最初看起来像它严格用于2D游戏)。我绝对认为这是一个很好的起点。谢谢。我打算今晚下载XNA并上床睡觉,然后希望明天我可以尝试制作Pong之类的东西。
stevendesu 2011年

@Steven:没问题!我发布此答案是为了帮助像我这样寻求指导的发烧友开发人员!我真的希望您会喜欢的!我的第一个也是仍然面临的挑战是开发一个简单的类似Arkanoid的游戏,我必须按照自己的方式进行碰撞检测,同时为航天器,能量球和积木分别编写类。然后,我的Game1班级被用作游戏控制器,我认为该班级将控制并告诉其他班级该做什么,等等。我在这方面向#4和#5进行了一些解释。
Will Marcouiller 2011年

我可能很快就会问另一个问题(明天)。xx下载XNA Game Studio 4.0,并安装它。...而且下一步没有明显的说明。整个XNA官方网站都只说“为Windows Phone 7制作游戏”,这与为Windows制作游戏无关。我会在早上弄清楚,或者在这里问是否可以。上床时间=)
stevendesu 2011年

1
使用Visual Studio创建一个新项目,然后在可以选择项目类型的地方选择XNA。然后,开始制作Windows游戏!您的XNA游戏项目模板(新项目)将在Windows上本地编译并运行。XNA是用于游戏开发的Microsoft库,因此,您可以为Windows和XBox开发游戏。
Will Marcouiller 2011年

1
为了将来,值得指出的是XNA本质上已被弃用,但Monogame仍然存在。在大多数情况下,相同的代码将起作用。
Magus 2014年

8

您可以尝试Unity 3D,因为

  • 可以用JavaScript,C#或Boo编程
  • 它在这里有一个很好的教程
  • 它的学习曲线并不那么陡峭
  • Unity Answers,您可以在其中找到更多资源。

(免责声明:我与Unity的开发者毫无关系,我只是自己使用它,发现它是学习基础知识的好工具)。

但是,是的,您可以自己完成一些任务。我现在在第6个学期学习游戏设计,但我仍然觉得自己从表面上抓不到更多。难怪该行业在创建游戏过程的各个方面都有专家。

编辑:关于Unity被视为不是“适当的”游戏引擎的评论,正如我所说的那样可能会被误解–因此产生了下面的评论。相反,我无意暗示不能将Unity用来进行适当的游戏设计。我自己使用它,我喜欢它。;)


3
有什么不当之处吗?
lathomas64 2011年

我也很好奇
杰西·多尔西

也许事实(例如Flash或Java)需要容器程序才能运行,所以他认为它“不合适”,因为它不能只是被编译并分发给大量受众而没有麻烦?无论哪种方式,我现在都在研究XNA。如果XNA太困难了,我可以检查Unity3D。
stevendesu 2011年

好吧,我听说有人说对于“适当的”游戏设计,Unity不应被认真对待。如前所述–我自己使用它,对此我感到非常满意。在某些情况下,我想...;)在某些情况下,Unity会使事情变得容易地变得容易。也许这导致了投票否决?
xeophin 2011年

@steven_desu:实际上,您只需要Webplayer的容器程序。可以在Windows或Mac上运行的游戏完全是独立的。
xeophin 2011年

2

好吧,如果您在使用irrlicht时遇到问题,也应该尝试Ogre3D;它并不容易,但是如果您花一些时间,它可能会更好。您需要了解的重要内容是什么是框架侦听器,如何获取自显示上一帧以来的时间,并且如果要制作此应用程序,这几乎是您唯一需要了解的内容。

我在使用irrlicht时也遇到了一些困难,这些教程不是最新的,但是您应该尝试示例!

一开始我也玩了很多圈,玩弄了panda3d和其他诸如pygame之类的东西。尝试着重于一些游戏创意,一次实现一件事。

并尝试记住一些矩阵数学,它将在3D中有一定用处!


2

我最近开始了与您相同的追求。我遇到了一个名为jMonkeyEngine的纯Java引擎,它带领我完成了一套很棒的教程。我不知道它能否在很大程度上解释游戏设计,但确实可以帮助您从图形方面入手。

它建议/链接到您可能用于建模的工具,并具有可复制和粘贴的,描述良好的示例,以逐步引导您在屏幕上放置一个框来设置物理引擎。

绝对值得一读-仅几个小时后,我就对自己的工作有了一个很好的了解。


即使您没有使用引擎,这些教程也值得一读。还有一些3D数学的不错的教程。
DMan 2011年

2

您应该真正尝试Flixel http://flixel.org/。 我使用flixel制作了我的第一个“演示”游戏。不错的社区,不错的教程。

它不是3D的,但是它确实具有许多不错的功能,使您轻松进入游戏编程环境的第一步。

这样:显示成千上万个移动物体对象
之间的基本碰撞
为简单起见,将物体 归为一组
轻松生成和发射粒子
使用图块贴图创建游戏级别
文本显示,保存游戏,滚动
鼠标和键盘输入
数学和色彩实用程序

而且它是免费的商业用途,真是太棒了。


1

如果您根本不使用图形,那么在开始学习open gl或direct x之前就已经开始了。我以这种方式编写了第一款游戏。我们公司的引擎位于内部,大多数系统都以某种形式支持open gl。我在上班时学习了通过开始工作之前编写的代码。您可能想看一下一些开源项目,以了解游戏结构的设置方式,并开始对其进行修改,直到您对开始自己的事情感到满意为止。我还建议使用“完整的游戏编码”作为您未意识到的所有游戏编程细节的参考,例如适当的文件结构和资源管理。


1

尝试使用Source Engine。在上面开发游戏很容易,如果您与Valve Corportaion签订协议,则可以免费获得发行平台(Steam)并免费出售游戏。


1

我建议从Flash游戏开始,因为您确实拥有制作简单游戏所需的所有功能。有大量带有演练的博客,例如Emanuele Feronato的博客。他甚至还了一本书,其中包含10款完整的游戏。

我一直在使用FlashDevelop,足以进行开发。

克里斯·穆勒(Chris Moeller)的“创建小行星Flash游戏”就是一个很好的例子,它使用Flash开发提供了完整的分步方法。

对于基于Tile的游戏,Ironcoding上有一个很棒的教程。

有了这些准备,我的建议是找到一个存在视频游戏挑战的地方,并邀请一群人来开发游戏。每月制作一个视频游戏,专注于在完成下一个项目之前可以完成,润饰和展示的小物件。我参加每月的视频游戏挑战这里

保持较小尺寸,以便完成并释放它。

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.