编程游戏和应用程序/操作系统

5

我对游戏编程很感兴趣。我正在使用Lua作为脚本语言,与Shiva一起构建iPhone游戏。然而,在这之后,我不确定接下来应该做些什么或者学习哪种编程语言。我的目标是继续制作游戏,但我也想建立自己的游戏机。当然,那需要多年的时间,但现在我需要学习一些编程知识。我知道编写游戏和普通应用程序是完全不同的,所以我需要帮助。你有哪些编程语言或方面的建议可以推荐给我学习?我还想能够创建应用程序,但编写应用程序和游戏又是完全不同的领域。


你目前会哪些编程语言? - Jonathan
我正在学习C语言的基础知识,并且也在学习Lua。 - Austin908
7个回答

6
我写的第一个游戏是用Turbo Pascal编写的贪吃蛇游戏。我试着让一条线(使用一系列点)在屏幕上移动。一旦我做到了这一点,我就让这条线改变方向。我把它连接到箭头键上并感到兴奋。两个小时后,我在屏幕上放置了一个不同颜色的点作为“食物”,这就成了一款贪吃蛇游戏。我编写的每个游戏都推动我更进一步,迫使我学习新的东西(想法往往会从一个想法滚动到另一个想法)。
  • 尽量坚持街机风格的游戏。打砖块、乒乓球、贪吃蛇等等。制作《光环》需要的时间不值得计算!
  • 不要担心学习哪种语言。你将在未来学习很多种语言。现在是问哪种语言最容易开始编写游戏的时候。如果你已经掌握了C的基础知识,那么这就是你的答案。
  • 如果你不知道从哪里开始,请先做动画而不是游戏。一旦你熟悉了工具,想法就会出现。
编写一个程序,在屏幕中央画一个笑脸。更改屏幕模式和使用大型图形引擎可能过于复杂,保持简单。让那个笑脸四处移动,改变颜色,变成不开心的脸等。在你意识到之前,你会逐渐掌握一些好的势头。
需要问的问题是如何在屏幕中央绘制笑脸,而不仅仅只是在控制台的下一行。在我的第一个贪吃蛇游戏中,答案是编写大量空格字符' ',直到我到达想要的位置。更好的答案显然是ncurses。如果您使用的是Windows XP,则可以免费获取MingGW编译器(非标准)conio.h库。这就是我在第二个贪吃蛇游戏中使用的内容,它将使您快速入门。
祝旅途愉快!

5

了解修改游戏。

我发现QuakeC(制作Quake1 mod的语言)非常容易上手,而且你已经有很丰富的游戏内容可以使用,这样你可以专注于游戏玩法等方面。与其从制作3D盒子演示或其他过于简单但需要低级编程步骤开始,不如从一个有趣的游戏开始添加自己的元素,这样更容易保持兴趣。

虽然Quake1相当老了,但它的优点是几乎所有相关内容都是开源和免费扩展的。你也可以轻松地开始修改任何其他新游戏。

今天许多大型游戏公司都是通过制作Quake或Halflife mod而起家的。


2

我同意亚当的观点,如果你想做严肃的游戏开发,C++是首选。 - Jonathan
我也想能够创建应用程序,但编写应用程序和编写游戏是完全不同的事情。 - Austin908

2

作为一个在该行业工作多年的人,这是我能找到的最好的总结:

http://gamesfromwithin.com/so-you-want-to-be-a-game-programmer

我的建议:

彻底学习C++。每天都要进行编程。如果你已经开始进行iPhone开发,请学习OpenGL。如果有机会接触PC,也不妨学习Direct3D(同时也可以看一下XNA)。如果图形不是你的强项,请确保你知道路径查找(A *算法)或碰撞检测的工作原理。

继续构建自己的项目,并寻找一个良好的在线社区,以支持你解决问题。雇主想看到你聪明,但更重要的是,你必须专注——游戏编程非常困难,不要让任何人告诉你不同。

你可以在此处下载免费的Windows开发工具:http://www.microsoft.com/express/download/

你需要的是Visual C++ 2008 Express Edition。


学习OpenGL需要了解Objective C吗?我在我的电脑上使用Windows XP,可以用它来编写C++程序吗? - Austin908
如果你在使用iPhone,那么你需要一些Objective C - 你可以在PC、iPhone或Mac上使用OpenGL。你可以在PC、iPhone或Mac上使用C++。在iPhone和Mac上,你可以混合使用C++和Objective C,这可能会让初学者感到困惑。我更新了答案,并附上了Windows开发工具的链接。 - Justicle
是的。抱歉我没有表达清楚 - 我应该说“Windows”,而不是PC。 - Justicle
是的,但我应该在我的装有Windows XP的Mac上安装Windows开发工具吗?还是? - Austin908
Xcode 用于开发 Mac OS 应用程序,仅在 Mac OS 上运行。Visual Studio 用于 Windows 应用程序,仅在 Windows 上运行。你选择哪个取决于你想让应用程序在哪个操作系统上运行。 - Justicle
显示剩余2条评论

1
你应该去看看Unity3D网站。他们现在有一个免费版本(名为Unity)可供个人和商业使用。你可以使用C#(可能是任何.NET语言)、JavaScript和Boo进行脚本编写。
XNA也是一个不错的选择。

与ShiVa相比,Unity就像是涅磐。 - elmattic
嗯,我喜欢Shiva,因为你可以在其中编写Lua程序。如果我要使用Unity,我就不知道如何在其中编程了。 - Austin908

0

游戏程序员的优先级顺序。

任何需要分析思考和逻辑问题解决的主题。 以下领域的必要知识。

  • 数学
  • 数据结构
  • 计算机图形学
  • 物理
  • 人工智能
  • 计算机网络
  • Web 技术

0

当你刚开始学习编程时,C、C#和C++可能会有点复杂。如果你想要认真地开发游戏,最终你可能需要学习C++,但如果你只是想快速完成一些任务,那么使用lua已经是正确的选择。

Javascript是另一种语言,它在许多方面与lua非常相似(在其他方面则非常不同)。 Javascript的一个优点是世界上每个人都安装了javascript。另一个优点是它很容易学习。当然也有缺点,但它们并不像大多数“专业”程序员认为的那样糟糕。Javascript受到了不应有的批评。

这里有一个非常好的学习javascript的教程: http://eloquentjavascript.net/

不幸的是,它没有涵盖游戏编程-但它确实涵盖了对游戏编程和应用程序编程都相关的概念。

这里有一个涵盖游戏编程的javascript教程:

http://billmill.org/static/canvastutorial/index.html

为了跟随该教程,您需要一个网络浏览器。这不包括Internet Explorer,因此您可能希望使用Safari、Firefox或Opera。

一旦您熟悉像JavaScript或Lua这样的简单语言制作游戏,学习在像C或C++这样的困难语言中制作游戏就不会那么难了。

另一方面,您可能只是愿意在简单的语言中制作游戏,这也没关系,没有规定说您必须学习C或C++才能制作好游戏。好游戏来自好的创意,而不是困难的编程。


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