什么是青少年游戏程序员的良好入门平台?[关闭]


32

我儿子(15岁)决定要从事游戏程序员的职业。我说过,他现在应该从一个简单的游戏开始。他还没有编程经验,但是我是一名程序员(业务应用程序,而不是游戏),所以我可以教他编程,但是对于他来说,什么是一个好的平台?最初,我正在寻找可以提供快速结果的产品,以保持他的热情。

你有什么建议?


13
关闭?你一定是在开玩笑!我在前一年问了这个问题,它至少有19个投票,它的投票回答至少有86个投票,有5个人将其标记为收藏。答案确实涉及事实,参考或特定的专业知识。最后,它对我非常有用,我也建议其他人使用。我该如何对这个决定提出上诉?
gkrogers 2012年

1
如果您确实愿意,可以在meta上发布相关信息。meta.gamedev.stackexchange.com
四分

Answers:


30

对于相当自信的程序员,XNA是一个很好的解决方案。将来目标是一个很好的目标。

虚幻开发工具包是一种方法,更快速,轻松地得到结果,而且可能是一个良好的开端。评论表明,UDK实际上是一个非常糟糕的选择,因此我不推荐使用。

Unity是一种替代方案,它将在手机上运行,​​这是UDK无法做到的(据我所知)。因此,如果他正在为手机编程游戏,那么团结会更好吗?


4
我同意这一点。Unity是UDK的替代品,尽管我认为要弄清楚一点。看看是否可以让他惹上一些UnrealScript(虚幻开发工具包的脚本语言)。XNA绝对是他应该使用的第一种真正的从零开始的游戏编程语言。它是最简单的(相对而言;不是绝对的初学者),我喜欢它作为原型制作,因为您可以很快地开始在屏幕上画图。
莉吉特

2
XNA建议+1。如果他努力学习得很好,并且有很好的想法,他可以轻松地为Zune播放器/ WP7 / XBOX 360的一些零用钱畅销游戏

2
Unity可在iPhone和浏览器上运行,因此是一种分发游戏供人们测试并习惯于早日被淘汰的好方法
Chris S

4
避免使用UDK。它可能非常强大,但也很痛苦。它充满了“陷阱”和未记录的限制。
彼得Ølsted11年

4
我也是15岁,首先在10岁时学会了Pascal,然后是C,然后是C ++。试图在12岁以上以C ++和Allegro编程某些游戏的方式,但收效甚微,我可以做很多事情,但是我无法考虑如何构建整个游戏。这让我不寒而栗。使用XNA,事情变得容易得多,而且,在调试时显示的C#异常的简单错误处理也可以帮助您了解在哪里做错了什么。当然,另一种语言也有,但是我认为Visual C#具有最好的调试工具。
Gustavo Maciel

20

我也15岁,所以我想这可以帮忙吗?:P

我最近开始学习Python(从事C ++一年左右),并且发现它比C ++容易学习。陷阱少了很多,您只需要很少的代码就可以在屏幕上显示某些内容-我发现您想要继续。

在图形方面,有通过SDL / OpenGL封装的Pygame和Pyglet。

在他开始制作简单游戏之前,我建议至少学习几个月的语言。(当然,基于文本的游戏(例如猜测数字和子手)在这段时间是不错的练习)


9
在用C编写游戏多年之后,Python和Pygame给我带来了新鲜的空气。我认为在Python中大约有10%的时间可以完成相同的事情,因为所有方面都具有更高的水平。
dash-tom-bang 2010年

我知道,我也有相同的感觉(并且我从事C ++已有一年了)。
共产主义鸭子

+1。我不得不说,尽管只对Python有点熟悉,但这是我对初学者的第一个建议。现在我们只需要一个python机器人!对于good子手也很好的建议。=)
莱安德

杜德,您应该学习.net语言(我不太喜欢C#,F#,vb.net可以。VisualStudio中的boo isnt支持:()。这些语言比C ++少出错,并且在执行某些操作时会出现异常)错误(很好的事情。C++应该做更多的事情。)并且您可以学习如何使用调用堆栈,观察变量,断点(我假设断点在python IDE中起作用?),并且您将能够快速调试当你写的不稳定初学者码这是伟大的。

13

这里有一个不合常规的答案:

星际争霸II银河编辑器。

您几乎可以在《星际争霸2》中制作任何游戏。

它还以GUI为中心的方式教授大多数编程结构,例如循环和if语句。

一旦他对基础有了信心,就可以让他编写脚本。

如果他擅长并发现有趣的事物,他将喜欢适当的游戏编程。


3
我正要建议《魔兽争霸III》。使用简单的脚本语言入门确实是一个不错的方法。《魔兽争霸III》和《星际争霸II》都具有可用来使人感到舒适的GUI,以及将代码作为原始脚本查看以查看内部工作原理的功能。
William Mariager

2
正确的轨道。从ANY级编辑器开始是最好的方法。他可以跳过所有的脚手架和难度,直接进入编织场景和设计关卡的有趣部分。
bobobobo

到目前为止,这是我从未见过的关于此类问题的最佳答案之一,当我很少通过超链接使用MS powerpoint并玩名为“机器人俱乐部”的游戏时,我就开始制作游戏。在其游戏玩法中,可以教给您很多编程基础知识Giantbomb.com/the-robot-club/3030-29776
Jim Jones

10

我将游戏开发工具大致分为三大类:

  1. 易于学习和使用,但功能有限。游戏制作者,游戏沙拉,角色扮演游戏制作者,冒险游戏工作室都属于此类。
  2. 功能强大,但学习曲线陡峭。C ++和其他“硬核”编程语言适用于此。
  3. 中间语言,通常是脚本语言,例如Lua,Python和ActionScript,它们通过要求您实际编写一些代码但要照顾一些更晦涩的细节(例如为您提供内存管理)来消除差异。

对于没有编程经验的人,我通常建议他们从第一类开始,只是为了开始做某事。当他们对给定的创作工具感到满意,但实际上却觉得局限性超过了收益时,就该学习下一类知识了。


9

我知道这会和我约会,但是长大后我真的很喜欢P-Robots。有一个非常简单的目标(击败其他机器人),一个简单的API,并且在更改代码和查看结果之间花费的时间很短。它涉及到AI,设计模式,甚至是更大规模的代码结构(其中一些机器人会变得很大-以及如何在机器人之间共享代码?)。如果您可以找到类似但较新的内容,那么这将是获得“入门编程”部分的好方法。意见建议:

完成此操作后,请考虑使用一款非常简单的2D滚动射击游戏,平台游戏或类似的“街机风格”游戏-您可以使用SDL或XNA或任何最熟悉的东西。即使在这些环境中建立并运行pong克隆也不一件容易的事。这使您略微回想了构建“基础”的感觉。

之后,探索:对现有3d游戏(新对象,机器人或其他东西)的修改,以对大型引擎有所了解。

从我所看到的来看,这些键似乎是:

  • 快速迭代:快速查看结果的能力
  • 原型:许多小型实验,以获取经验和信心的广度(好吧,我们将如何进行大理石游戏?太空侵略者又如何?等)
  • 探索:学会热爱研究其他人的游戏的构建方式,进行调整等

2
+1为头脑风暴,但我将使用ROBOCODE(robocode.sourceforge.net)代替P-Robots。
卡勒姆·罗杰斯

@Callum:太棒了,将更新答案=)
leander

我会用LegoMindstorms与NXC
的人乔

6

我的建议是制作基于网络的游戏。为什么?好吧,首先,JavaScript是一门优美的语言,它将教给他所有编程的基本概念,并且您实际上可以使用它来编写出色,胜任的跨平台游戏。除了使自己玩游戏外,这还将使他有更多的资格……如果由于某种原因,您不希望您的儿子从事网络开发,那么我建议您使用Python,并将其与PyGame模块一起使用。我也有经验,我很棒。我建议从C / C ++入手,这就是我所做的,而且很糟糕,可能会使他一无所知地进行编程。

另一方面,恭喜您,您可能是一位了不起的父亲!


1
好建议。就是说,我从C入手(当时不是真正的替代品),但实际上并没有那么痛苦。当然,由于存在高级语言,因此这不是使用它的原因。
o0'。

1
谢谢!另外,我不是从游戏开始的,我的意思是他在学习了高级语言之后,将对通用编程概念有更好的理解,并且不会耗尽他的动力。当然-我在那儿有点夸张;)
jcora 2011年

1
在那个时代,能够与朋友轻松分享我的创作是一种动力。网络游戏更容易共享。您将URL发布到Facebook,并请您的朋友尝试一下。Actionscript / Flash或Javascript / HTML5可能是您最好的选择,因为它可以轻松地与Java或Unity共享。
amitp 2012年

5

Mindstorms Roboter真的很棒。我们在学校里有一些NXT,上周我们开始编写诸如遵循一行之类的东西。您可以轻松获得结果。

我也在不久前找到了www.3dgamestudio.de。我没有更多的兴趣,但这确实很有趣。您可以使用lite-C编程:

Lite-C是用于多媒体应用程序和计算机游戏的编程语言,它使用C编程语言的语法子集和C ++编程语言的某些元素

http://tutorial.3dgamestudio.net/上可以找到它。还有一个关卡,模型和地形编辑器。

ps:我16岁,从一个朋友开始为网站编程和自定义编程的游戏服务器开始。所以这对于他来说也可能很有趣。


+1非常简单的文档处理方式,似乎确实很容易处理。
Prix

4

我不能提出足够的建议,而是为自己喜欢的选择游戏建立自己的关卡

对于这个年龄/技能水平的人,他们应该从选择自己喜欢的游戏引擎的水平开始。

许多出色的游戏都附带一个允许多个自由度的关卡编辑器。

RPG黑曜石的NWN 2电子工具集系列上古卷轴

RTS:《 魔兽争霸III》的关卡编辑器是一款出色的RTS编辑器,甚至可以脱离自己的游戏英雄联盟新世界英雄)。

FPS:半条命 2。《反恐精英》最初是半条命mod。

从这里开始。为自己喜欢的游戏构建关卡可能是最好的起点。



3

尽管此处提供的所有信息都对您有所帮助,但我想提一下STEM挑战赛(由白宫和ESA发起的全国性游戏竞赛)对平台http://www.stemchallenge.org/about/Default.aspx提出了一些建议

Gamestar技工,Gamemaker,Kodu,Scratch,PBS KIDS准备学习流

我觉得这些平台上有很多与STEM相关的社区资源。

另请参见关于python和pygame的出色教程(这也是在线书籍)http://inventwithpython.com/chapters/这是该书 的续集PDF,专门关于pygame http://inventwithpython.com/blog/making -python-pygame游戏/

这是纽约时报的另一篇文章http://www.nytimes.com/2011/11/10/technology/personaltech/computer-programming-for-children-minus-cryptic-syntax.html?_r=2&sq=mitchel+resnick&st=cse&adxnnl= 1&scp = 1&adxnnlx = 1322489239-tMp1Wjl9FUcI8rLaJ6cbOw

更新:这是一个斜线讨论http://ask.slashdot.org/story/11/12/27/152228/ask-slashdot-tools-for-teaching-high-school-kids-how-to-make-games


2

对于没有编程经验的人,Game Maker是一个绝佳的选择。它有一个免费版本和一个相对便宜的付费版本。它允许您通过拖放界面快速制作游戏,但包括对更高级脚本的支持。


5
我不会对此进行否决,但是GameMaker和Visual Basic都是教错误语法(VB)的工具,而且GameMaker并不是真的很棒。首先,您无法访问VS等出色的IDE,拖放式游戏制作并不能真正教授任何内容。
的人Joe

1
我不确定你为什么要提到VB。游戏制作者大致基于C语言。无论如何,Game Maker是一个让您一无所知,逐步了解游戏开发人员所必需的思维方式的好方法。响应事件,维护游戏循环,利用图形资源和代码之间的关系,使项目从构思到发布;这些都是通过拖放式开发可以了解的所有知识。我确实同意GML是一种有限的语言,但是整个系统是一个很好的起点。
格雷戈里·艾弗里·威尔

1
我之所以提到VisualBasic是因为DarkBASIC,这是另一个可怕的编程工具。

Game Maker绝对是注重结果的教学的好方法。无需学习物理或渲染。只需使用内置功能。而且向C ++的迁移很容易,因为您可以先制作dll并在Game Maker中使用它们,然后再完全抛弃Game Maker。
William Mariager

永远不要向11岁以上的人推荐GameMaker ...如果他15岁,他不妨将头转向编程。
jcora 2011年

2

正如Martin所提到的,UDK可能是使某些东西正常工作的最快方法,因为它带有许多预制的东西,例如AI,模型以及大量书籍。它具有非常好的地图编辑器,并且语言是Java风格的(和ECMA-script一样)。

另一种选择是尝试在Flash或Silverlight中进行游戏-从简单的2D游戏开始。他喜欢的游戏类型决定了工具包。


1
没有!不是UDK!它是:越野车,缓慢,容易出错,复杂等。请改用Unity。

@ firedude67 UDK越野车,容易出错?开玩笑吧?
Quazi Irfan

根据我的经验,它的性能令人难以置信地落后,我制作的任何东西都给了BSOD,而且我找不到任何有用的文档。甚至没有示例项目运行。

1
我从来没有发现UDK越野车,但是我强烈不建议游戏程序员使用它。艺术家,是的,但是程序员,不是。“文档”是个玩笑,要找到您必须子类化的类,您实际上必须打开父类,因为他们决定不给您API参考。另外,制作不同类型的游戏还需要大量工作,因为它本质上是FPS引擎。
DMan 2011年

1

来自14岁的这个建议可能有用。我发现,选择平台的最佳方法是最适合该目的的平台。我以前曾多次发表过这篇文章。

书签交易 -

选择适合您目的的语言。大多数游戏玩家都不在乎用什么语言编写游戏。他们在乎是否可以玩。他们关心它是否可以在计算机上快速运行。他们关心游戏的大小是否不是10gb。他们不在乎它是exe还是jar。

看一下Minecraft之类的游戏。确保使用Java编写,该语言在游戏开发行业中的市场份额很小。消费者在乎吗?不。他们关心功能。

但是,由于您的儿子没有任何编程经验,所以我建议您学习一种可以快速编码的语言(例如Python)或使用现有平台(例如XNA)。我个人很喜欢Java的Slick2D,但我想那是我的偏爱...


0

我在很小的时候(不到15岁)就开始学习编程,而我的父亲决定使用VB(1.0)。我们使用计时器对象和GDI绘图制作了扭曲版本的pong。我之所以喜欢它,是因为我们从一块空白的画布开始,就能够在尝试使事物有趣的同时学习编程结构的基础知识。

今天,我想我会选择XNA并选择一个简单的2D游戏。C#和XNA相当简单,它们为您留出了很大的成长空间,并且它们是免费的。


-4

如果他只是想做游戏,那么他应该使用XNA,Unreal,Unity等。如果他想成为游戏程序员,那么他应该首先学习C / C ++和OpenGL / SDL或D3D。

XNA,Unreal,Unity等非常适合制作游戏,但对您做得太多却真的很不利。我敢肯定,人们对此会持不同意见,但是这些基本上会使您变成一个懒惰的程序员,而当需要学习C ++中的点之类的东西时,将变得更加困难,因为您首先选择了更简单的选项。

通常,如果您想成为游戏程序员,我永远不会建议将其他C / C ++作为学习的第一语言。主要原因是,即使您去学习C#/ XNA,如果您认真地成为一名游戏开发人员,您也必须在某个阶段了解C或C ++,因为没有人会雇用您。因此,如果他们对专业很认真,那么您只会延迟学习对您的期望。


10
到15岁准备开始专业工作时(从现在开始八年),我认为没有理由假设每个人都将使用C ++。八年前,C ++才开始在游戏中投入使用并获得了第一个真正实用的标准,并且大多数人都在使用C。八年前,C ++对于游戏开发和当今的发展处于令人发指的糟糕状态。是C和asm。从现在开始的八年中,大多数游戏编程看起来可能比现在的C ++ 03更像XNA。(续)

8
关键是要成为一名优秀的程序员,而该程序员应独立于任何单独的语言。对于新程序员来说,C#将使他们更快地受到激励。他们会回过头来学习更详细的内容,如果他们想做点什么,但是您需要将它们钩住足够长的时间才能到达该阶段。

5
游戏编程中的重要细节是SIMD,而不是SSE。缓存行,而不是C ++标准布局;散列,而不是std :: unordered_map; 多态性,而不是虚函数。后面这些事情是分钟,是偶然的,不是根本。当您知道前者时,后者往往会紧随其后。

2
通常,从C ++开始不是一个好主意。这是一门艰难的语言,而且是头一回。
共产党鸭子

4
我从15岁开始使用C ++,虽然我对自己现在的状况感到满意,但从简单的事情开始可能会减轻很多痛苦,并让我专注于实际的游戏开发人员,而不是指针和段错误...
赖利·亚当斯(Riley Adams)2010年
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.