我儿子(15岁)决定要从事游戏程序员的职业。我说过,他现在应该从一个简单的游戏开始。他还没有编程经验,但是我是一名程序员(业务应用程序,而不是游戏),所以我可以教他编程,但是对于他来说,什么是一个好的平台?最初,我正在寻找可以提供快速结果的产品,以保持他的热情。
你有什么建议?
我儿子(15岁)决定要从事游戏程序员的职业。我说过,他现在应该从一个简单的游戏开始。他还没有编程经验,但是我是一名程序员(业务应用程序,而不是游戏),所以我可以教他编程,但是对于他来说,什么是一个好的平台?最初,我正在寻找可以提供快速结果的产品,以保持他的热情。
你有什么建议?
Answers:
对于相当自信的程序员,XNA是一个很好的解决方案。将来目标是一个很好的目标。
在虚幻开发工具包是一种方法,更快速,轻松地得到结果,而且可能是一个良好的开端。评论表明,UDK实际上是一个非常糟糕的选择,因此我不推荐使用。
Unity是一种替代方案,它将在手机上运行,这是UDK无法做到的(据我所知)。因此,如果他正在为手机编程游戏,那么团结会更好吗?
我也15岁,所以我想这可以帮忙吗?:P
我最近开始学习Python(从事C ++一年左右),并且发现它比C ++容易学习。陷阱少了很多,您只需要很少的代码就可以在屏幕上显示某些内容-我发现您想要继续。
在图形方面,有通过SDL / OpenGL封装的Pygame和Pyglet。
在他开始制作简单游戏之前,我建议至少学习几个月的语言。(当然,基于文本的游戏(例如猜测数字和子手)在这段时间是不错的练习)
这里有一个不合常规的答案:
星际争霸II银河编辑器。
您几乎可以在《星际争霸2》中制作任何游戏。
它还以GUI为中心的方式教授大多数编程结构,例如循环和if语句。
一旦他对基础有了信心,就可以让他编写脚本。
如果他擅长并发现有趣的事物,他将喜欢适当的游戏编程。
我将游戏开发工具大致分为三大类:
对于没有编程经验的人,我通常建议他们从第一类开始,只是为了开始做某事。当他们对给定的创作工具感到满意,但实际上却觉得局限性超过了收益时,就该学习下一类知识了。
我知道这会和我约会,但是长大后我真的很喜欢P-Robots。有一个非常简单的目标(击败其他机器人),一个简单的API,并且在更改代码和查看结果之间花费的时间很短。它涉及到AI,设计模式,甚至是更大规模的代码结构(其中一些机器人会变得很大-以及如何在机器人之间共享代码?)。如果您可以找到类似但较新的内容,那么这将是获得“入门编程”部分的好方法。意见建议:
完成此操作后,请考虑使用一款非常简单的2D滚动射击游戏,平台游戏或类似的“街机风格”游戏-您可以使用SDL或XNA或任何最熟悉的东西。即使在这些环境中建立并运行pong克隆也不是一件容易的事。这使您略微回想了构建“基础”的感觉。
之后,探索:对现有3d游戏(新对象,机器人或其他东西)的修改,以对大型引擎有所了解。
从我所看到的来看,这些键似乎是:
我的建议是制作基于网络的游戏。为什么?好吧,首先,JavaScript是一门优美的语言,它将教给他所有编程的基本概念,并且您实际上可以使用它来编写出色,胜任的跨平台游戏。除了使自己玩游戏外,这还将使他有更多的资格……如果由于某种原因,您不希望您的儿子从事网络开发,那么我建议您使用Python,并将其与PyGame模块一起使用。我也有经验,我很棒。我不建议从C / C ++入手,这就是我所做的,而且很糟糕,可能会使他一无所知地进行编程。
另一方面,恭喜您,您可能是一位了不起的父亲!
Mindstorms Roboter真的很棒。我们在学校里有一些NXT,上周我们开始编写诸如遵循一行之类的东西。您可以轻松获得结果。
我也在不久前找到了www.3dgamestudio.de。我没有更多的兴趣,但这确实很有趣。您可以使用lite-C编程:
Lite-C是用于多媒体应用程序和计算机游戏的编程语言,它使用C编程语言的语法子集和C ++编程语言的某些元素
在http://tutorial.3dgamestudio.net/上可以找到它。还有一个关卡,模型和地形编辑器。
ps:我16岁,从一个朋友开始为网站编程和自定义编程的游戏服务器开始。所以这对于他来说也可能很有趣。
尽管此处提供的所有信息都对您有所帮助,但我想提一下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游戏/
对于没有编程经验的人,Game Maker是一个绝佳的选择。它有一个免费版本和一个相对便宜的付费版本。它允许您通过拖放界面快速制作游戏,但包括对更高级脚本的支持。
正如Martin所提到的,UDK可能是使某些东西正常工作的最快方法,因为它带有许多预制的东西,例如AI,模型以及大量书籍。它具有非常好的地图编辑器,并且语言是Java风格的(和ECMA-script一样)。
另一种选择是尝试在Flash或Silverlight中进行游戏-从简单的2D游戏开始。他喜欢的游戏类型决定了工具包。
来自14岁的这个建议可能有用。我发现,选择平台的最佳方法是最适合该目的的平台。我以前曾多次发表过这篇文章。
从书签交易 -
选择适合您目的的语言。大多数游戏玩家都不在乎用什么语言编写游戏。他们在乎是否可以玩。他们关心它是否可以在计算机上快速运行。他们关心游戏的大小是否不是10gb。他们不在乎它是exe还是jar。
看一下Minecraft之类的游戏。确保使用Java编写,该语言在游戏开发行业中的市场份额很小。消费者在乎吗?不。他们关心功能。
但是,由于您的儿子没有任何编程经验,所以我建议您学习一种可以快速编码的语言(例如Python)或使用现有平台(例如XNA)。我个人很喜欢Java的Slick2D,但我想那是我的偏爱...
如果他只是想做游戏,那么他应该使用XNA,Unreal,Unity等。如果他想成为游戏程序员,那么他应该首先学习C / C ++和OpenGL / SDL或D3D。
XNA,Unreal,Unity等非常适合制作游戏,但对您做得太多却真的很不利。我敢肯定,人们对此会持不同意见,但是这些基本上会使您变成一个懒惰的程序员,而当需要学习C ++中的点之类的东西时,将变得更加困难,因为您首先选择了更简单的选项。
通常,如果您想成为游戏程序员,我永远不会建议将其他C / C ++作为学习的第一语言。主要原因是,即使您去学习C#/ XNA,如果您认真地成为一名游戏开发人员,您也必须在某个阶段了解C或C ++,因为没有人会雇用您。因此,如果他们对专业很认真,那么您只会延迟学习对您的期望。