免费的游戏开发语言?[关闭]


19

因此,我正在尝试向我的堂兄传授一些编程方面的知识。我最初的想法是像ScratchAlice之类的,但是有一些缺点。

  • 每个人似乎都非常喜欢游戏编程和开发视频游戏(因为每个人都喜欢玩视频游戏,而且就玩视频游戏而言,玩自己的游戏可能是最有意义的)-但是Alice和Scratch似乎都不能适应游戏发展

  • 爱丽丝(Alice)和斯克拉奇(Scratch)似乎太幼稚了,虽然我敢肯定我的表弟会喜欢它,但我想他会很快厌倦它的

  • 我想要一种可以用来开发非常酷的东西的语言,以打动他的朋友们。我记得那天回写BASIC并邀请我所有的朋友来炫耀我的创作,我觉得Alice和Scratch不会以同样的方式吸引人

  • 我想要一种需要我堂兄编写代码的语言。现在,这不仅是因为我认为输入代码是其他编程语言的良好准备,而且还因为它使他有机会实际练习打字,并且可能习惯了键盘上一些较深奥的字符

现在,这就是为什么我不想选择Alice或Scratch。

我也不想为此选择一种语言,例如C或Java,甚至Python或Ruby。我的堂兄已经向我表明,他喜欢玩视频游戏,想自己做,他喜欢使用计算机。在我看来,即使是像Python或Ruby这样的简单语言,也要花费很长时间才能构建出色的东西。理想情况下,他会坐下来,花费大约一两天(甚至可能长达一周的时间,但希望少于一周),并拥有一个可以正常工作的二维游戏。我并不是说您无法在Python或Ruby中做到这一点,而是对新手程序员来说很难。另外,我不想让他沉迷于所有计算机科学知识,因为以后可能会出现。我只想帮助他制造火花,然后让他继续进行其余的工作。

我研究过类似Lua的语言,虽然在游戏编程中似乎很常见,但我不确定这是否是最佳选择-但是如果你们认为不是,请告诉我。

我也看过像Blitz这样的语言,它看起来非常有前途(再加上,几年前我尝试过,确实很棒)。缺点是我必须付钱,这是我绝对反对的。

我已经看过SmallBasic,它看起来很有前途,我将继续研究。但是我并没有做很多事情(实际上,我在输入安装程序时正在运行安装程序,因此我将在短期内报告我的想法)。

更新:我快速尝试了SmallBasic,它似乎很有趣,但是与某些其他语言相比,它似乎也有很大不同-这不是一件坏事,但这是不寻常的。从我看过的东西中,闪电战仍然是我的最爱,但由于费用原因,我拒绝去那里。

但是基本上,你们如何看待我到目前为止所说的话,以及我所看过的语言,您是否知道其他任何不错的选择?


更新:这是我选择要做的...

我已经意识到,尽管我很想帮助我的表弟,但我不能一直和他在一起,并且每次他需要帮助时我都无法帮助他。因此,我想选择具有良好文档说明,良好社区和他可以遵循的好书的东西。

无论如何,我选择了Python和Pygame。Python是我相当熟悉的一种语言,而且我知道Python周围有一个相当不错的社区(而且很大)。此外,我知道Python文档相当完整且易于浏览。Pygame还提供了出色的文档和教程集。我还让他使用/跟随使用Python发明自己的计算机游戏,这似乎是一本非常不错的书,我给他买了一份印刷版作为圣诞节礼物,而且我知道他的显示器并不大,而且不方便在文本和编辑器之间不断切换。

我认为应该顺利!

编辑:我不想暗示我的选择是最终的或正确的。我只是认为这是最适合这种情况的方法。我认为每个想要教年轻人的人都应该浏览选择内容,并考虑到年龄,技能水平和兴趣等因素,为每个人找到最佳解决方案。


15
+1 I want a language that can be used to develop really cool stuff that will impress his friends.这是我编程的主要动力,经过25年的努力……
yannis 2011年

2
+1用于在教导年轻人时知道在哪里停下来。没有无聊的计算机科学,只有很酷的结果。“制造火花,然后让他继续燃烧其余的火焰。”
安迪·亨特

1
@Bob我从事网络开发人员已有十多年了,但是直到最近才涉及人们实际直接使用的东西。我从事深层后端工作已经太久了。尽管我的官方回应是我的动力是我对解决问题的热爱,等等,但是过去的一年是我职业生涯中的第一年,我有幸听到随机的人说他们实际上正在使用我正在建造的东西,它在某种程度上帮助了他们。感觉真棒!希望您的堂兄能像我们一样感到编程令人兴奋……
yannis 2011年

1
@MahmoudHossam我一定会让您知道
Bob

Answers:


12

似乎没有人抛出Python + Pygame。根据您表亲的年龄/成熟程度,当然会打开很多酷炫的东西的可能性。当然,这已经足够入门了,但是凭借其庞大的标准库,您真的不会对Python感到无聊。


19

我认为现代BASIC相当于Javascript。给他一个简单的HTML页面,该页面具有一个嵌入式脚本,该脚本创建一个画布并在其上绘制形状,将其指向一些教程,然后看看会发生什么。快速周转(保存更改并刷新页面)和良好的调试支持。


另外一个
好处

HTML5游戏因其(未来?)可移植性/平台独立性而成为移动游戏行业的热门话题。另一个是WebGL,我相信它不太常见。每天都会出现针对它们的新工具包。
mctylr 2011年

这是一个有趣的想法,我认为Web开发绝对是一项不错的技能。我必须考虑一下,但这似乎很有趣。
鲍勃,

5
我并不完全同意。Java语言比Basic语言要难得多(请记住,我并不是说Basic),如果要将Javascript与网页结合起来,还必须学习HTML和Web技术。更简单的开始(我认为)是从服务器端Javascript开始的,例如与NodeJS结合作为轻量级执行环境,或与另一个命令行JS解释器结合。
克苏鲁

为JavaScript +1 –是的,HTML(5)部分是另外的学习工作,但HTML仍然很简单-我记得学会了制作HTML按钮并在学习GWBasic时炫耀它:)
yati sagade

12

不是显式用于游戏的编程语言,而是可以使用很少的代码进行处理就可以实现非常酷的图形效果。另外,它是免费的,而且相对容易学习。恕我直言,这是学习编程基础知识的理想语言,特别是因为本教程讲授了许多基本概念,例如变量,数组,数学运算等。


我认为关键是教程的可用性。我使用Dave Ahl的101 BASIC Computer Games的副本自学了编程,而对我来说,关键是一起看代码和示例输出。我发现,从输出中倒退去弄清楚事情是如何做的,要比被告知“去做,然后观察会发生什么”要容易得多。
TMN

11

我有一两年没有玩过它,但是将C#与XNA一起使用可能是一个不错的起点。据我所知,入门非常容易。尽管该链接可能比他更适合您。


1
我实际上对C#和XNA都有一些第一手的经验(我在过去的工作中曾使用C#)。我认为这是一个不错的建议,但是我不确定这对他来说是否太先进了。他也许可以做到,但是大多数孩子都希望能以最小的努力和“学习开销”获得真实的结果。
鲍勃,

由于它是一个.NET库,因此我认为它也可以在VB中使用,这将减少C#的“学习开销”。
安迪·亨特

3
@AndyBursh当我被迫学习VB时,这让我头疼,直到我停下来。从那以后我再也没有碰过它。
codesparkle

@codesparkle我完全同意,VB作为一种语言令人讨厌。但是,它很容易读写简单的东西,因此它通常是一种很好的入门语言。可悲的是,该语言具有一些可怕的特性,例如,您必须编写从A到B转换的可怕代码!
安迪·亨特

XNA确实确实有点先进。我这么做了,直到找到了Unity,它使用相同的语言,但是具有更直观的方法,并且结果更快。@AndyBursh:不适用于VB.NET,仅适用于C#.NET
Simon Verbeke

11

试试Greenfoot

图片http://www.greenfoot.org/images/screenshot.png?1310995619

它基于Java,并在YouTube上使用了所有这些教程。

greenfoot为初学者提供了一种很好的自上而下的方法

看到这个stackoverflow答案,我注意到的事情是“孩子实际上是学习最快的孩子,他们通过模式匹配,外推,插值等来做到这一点。”

因此,在greenfoot中使用Java一段时间后,由于感觉熟悉,以后的概念将更易于理解。


Greenfoot看起来很漂亮。我不是Java的第一语言的忠实拥护者,但是Greenfoot实际上使它对年轻的程序员来说足够简单。我仍然在玩它,但我认为可能是这样。
鲍勃

@bob任何使您能够编写代码并快速解决有趣的问题的方法都是不错的选择。
Siamore 2011年

这看起来像是一个非常酷的项目
KallDrexx 2011年

您所指的“ stackoverflow答案 ”已被删除,链接不再起作用,您介意更新答案吗?
蚊蚋

4

听起来像是典型的改装案例。从出色的Quake I(具有QuakeC语言)到TES IV Oblivion或许多可以用Lua扩展的游戏,许多游戏都非常灵活和可扩展。

另一个选择是“ 第二人生” -这是一个非常灵活的世界,在这里,人们可以使用优美而干净的脚本语言来构建游戏,仿真,演示等。


大多数情况下,我都同意,但是我认为他想创建自己的游戏。我认为这是逐案的情况,但是我的堂兄和他的朋友们并没有进入可以很好地进行改装的游戏中……另外,我认为乐趣的一半是(从头开始)构建一些东西。说“嘿(爸爸或朋友)看看我自己制作的这款游戏”与说“嘿,我制作了这款我几乎不会玩的游戏的mod”不同
Bob

我要说的是,孩子们想为自己的工作感到自豪,从头开始制作东西,并轻松地制作出可以产生非常酷效果的东西。我认为游戏改装可能更适合青少年。
鲍勃

@Bob,通过《第二人生》,您可以使用所需的尽可能多的可用功能来创建自己的游戏。它只是一个平台。而且它是免费的。而且某些游戏模块是全新的游戏,与其基础平台几乎没有共同点。
SK-logic

@Bob,关于完全从头开始构建某些内容,应该选择语言。平台和库将更为重要。在这种情况下,我建议使用XNA(在其之上可以选择任何.NET语言)。
SK-logic

好吧,第二人生的想法实际上听起来很酷。我一定会看一下。谢谢你的建议!作为一名前.NET开发人员,我当然考虑过,但是我不想为年轻的读者选择过于复杂的内容。但我一定会调查一下。
鲍勃

4

我目前是Game Maker的狂热用户。-虽然完整版不是免费的($ 40),免费版足以品尝游戏设计的基础知识。对于新手来说,它有足够的“内容”来保持几年的忙碌。如果必须将其放置在某处,则可以将它们放置在改装和python等语言之间。

它有几种编写方法。您可以使用“拖放图标”和更高级的“脚本语言”(GML)。我从来不明白为什么人们这么想“编写代码”-我看到拖放只是一种可视化代码的方式。

游戏制作人的另一个优势-以及在学习其他语言之后以及我坚持10年的经验后才坚持使用游戏制作人的原因-它有助于组织游戏:它具有多种资源,事件系统等。
它不是创建游戏的理想工具下一个魔兽世界,但是要打动其他人,创造一些东西就更重要了。

我不能真正推荐其他选择-因为我个人对游戏开发者感到满意,并且如今对学习通用语言越来越感兴趣。


+1我在高中时发现了Game Maker,并从中获得了很多乐趣。尽管并不需要很多代码,但是您可以轻松地使用它,因为它使您可以接触到变量,并且可以设置公式以在发生某些事件时更改这些变量。仅内置的碰撞事件就可以承载大量创意游戏。内置的模板游戏允许进行有用的修改。我制作了原始的侧卷轴游戏,自上而下的游戏,块突破式游戏……很有趣。
joshuahedlund 2011年

3

成千上万的人正在开发游戏的是Flash。Adobe的“官方” Flash开发包需要花钱,但是有免费的替代品。FlashDevelop用了不到一个小时的时间来查找,下载,运行和运行“ Hello World”闪存。该Flixel库提供了良好的配套功能的游戏,包括物理,粒子,容易水平创造了平台游戏,有很多的样品,并且易于设置。


2

FWIW,我为此目的购买了堂兄“ LISP之地 ”。这本书以卡通插图进行了说明,全都涉及用LISP创建游戏。虽然我的堂兄只想创建基于文本的游戏,但是我认为这本书将为他提供很好的编程入门。


我读过《 Lisp的土地》,这是一本很棒的书,但是我不知道Lisp是否始终是年轻人的最佳起点。该语法主要由看起来很简单的括号组成,但我认为它很快就会引起混乱,尤其是在您还是小孩的时候。
鲍勃

对于基于文字的游戏,您应该将表哥介绍给InformTADS
2011年

@ user16764感谢您的建议,我认为这将是他建模想法的好方法!
鲍勃

2

我开始使用的语言是Dark Ba​​sic Pro。我之所以很快退出,是因为游戏开发不是我的功课,而是一门强大的语言。我已经有好几年没有弄乱它了,所以我不确定它现在有多好(我上次使用它是在DirectX 9是新的和最先进的时候)。但是,它使您能够快速开始编写代码,并仅需一点点代码就可以制作精美的3D图形(而且,这是纯代码)。


Dark Ba​​sic看起来很整洁,在目标上与Blitz相似,但是您仍然需要为此付出代价。
鲍勃

2

尽管在二维游戏开发中不那么普遍,但是关于游戏开发的最困难的部分之一就是创建图形。因此,假设您的表弟不需要处理艺术创作,或者恰好擅长2D艺术,那么我认为目标是可以实现的。

我建议您将python和pygame一起使用来开始使用。我知道您对python有所保留,但是请听我说。Python是一种非常简单的语言。我认为缺乏严格的类型输入使其成为比C#之类的更好的选择。

基于原型的语言很酷,有些人发现它们很容易上手,但是我不认为人们真的像理解类/对象范例那样容易地理解对象在基于原型的语言中如何工作的概念。

Pygame还提供了许多示例,您的表弟和您可以继续学习基础知识,并且在许多方面都是非常简单的框架,不会对您隐藏太多,以至于您必须学习很多框架才能做得更复杂的东西。

也许在用pygame编写游戏之后,您可以继续编写与2d物理引擎(如box2d)集成的游戏,该引擎具有出色的python绑定。

至于教你的表弟python,我会偏离让他先学习语言的方法,这可能是班级/对象思想的速成课程。然后是该语言的一些基本语法,然后再深入探讨,并在需要时让他/她查询语法和/或库。

最后,关于python的另一个好处是,您可以轻松地转向3d游戏引擎,同时保持对panda3d甚至是统一等引擎的掌握(Boo与python非常相似)。


2

Lua和LÖVE。Lua是可用的最简单的语言之一。LÖVE框架针对2D游戏进行了优化。它还具有OpenGL后端,具有带来的性能和其他优势。


1

您可能要尝试使用虚幻开发工具包(功能)。了解该接口可能有点困难。但是,这样做的好处在于它还具有可视化脚本引擎,因此您无需进行编程就可以制作东西。然后,他可以制作某些东西并自己编写一小部分。不利的一面是它使用自己的脚本语言。

我真正喜欢的另一个引擎是Unity3D(功能)。Unity没有可视化编程,但是使用两种通用语言:C#和JavaScript。它还支持称为Boo的Python方言。这三个可以互操作。Unity还附带了许多完成的脚本。


如果目标是他们自己的3D图形游戏,则这是IMO的最佳方法。许多/大多数主要游戏工具包都有免费版本(有些需要您拥有其主要游戏的注册版本)。大多数都从改装扩展到创建全新的游戏环境。几个(不是全部):PlaygroundHavokValue Source。我现在想不出更多的东西。
mctylr 2011年

Unity和Unreal都非常酷,但是我认为目标年龄是从十几岁开始的,这太老了。
鲍勃,

@Bob:我认为您没有提到任何年龄,所以我不确定要提出什么建议:)
Simon Verbeke


0

我知道您正在寻找免费语言,其他海报也有一些不错的建议。由于您担心获得有趣的结果,因此速度很快,而且由于Blitz看起来像您想要的那种东西,除了成本之外,我想建议Phrogram。以前是KPL(免费)。它不是免费的,但是比Blitz便宜,并且它具有许多我认为非常适合用作教学语言的功能,尤其是对于青少年而言。

您可以使用Phrogram做一些非常复杂的事情,并且Phrogram和KPL用户已经建立了相当完善的社区,这些社区已经发布了很多代码供您学习。


Phogram看起来很酷,我并不是真的反对付费,但我更喜欢免费选项。我将进行试用,看看它与DarkBasic和Blitz相比如何。
鲍勃,

0

这里有很多好的建议,我只是向RoboCode鸣谢。有许多示例需要调整,您可以在几分钟内启动并运行。这会给他的气息的节目,但他不太可能去学习的实际从头开始编写程序的螺母和螺栓。它也基于Java,这是值得的。


0

我不明白没有人谈论游戏工厂!这是无需编程即可快速构建计算机游戏的最佳资源之一。
http://www.clickteam.com/website/usa/downloads/index/7
它由故事板编辑器-带框架组成。您放置了可以由播放器通过各种方式控制的不同对象(平台移动,8方向等)
。最重要的方面是事件编辑器-它是一个巨大的矩阵,您可以使用它来定义预定义的规则(例如-object(1)移动到屏幕末端,对象位置> 100,依此类推)。



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.