经常有人问我,没有编程经验的人该如何开始开发游戏。在此之前,我总是一个个的尽力回答。然而,后来提相同问题的人数增长到难以处理的地步。我决定,是时候把我所有的建议写成文章,作为一个大概。
     这 篇文章是针对那些想要开发自己游戏,但几乎没有编程经验的人。事实上,我假设读者没有任何编程经验。我主要讨论游戏开发的程序和设计方面,而不是艺术性。 我也不准备讲述如何进入游戏行业(这方面已经有足够的资料),而只是让你逐步的开始开发自己的游戏。最后,我所指出的这条道路也并不能作为唯一的,或是最 好的路径来学习开发游戏,但至少对我和一些人很有用。
     选择一门语言
     你要做的第一件事就是选择一门开发语言。你有很多选择,包括 Basic,Pascal,C,C++,Java, 等等。也经常会有人争论对于初学者那一门语言是最好的。对于这一系列流行语言的讨论,你可以参看 John Hattan 的著作, What Language Do I Use? (我用什么语言?)
     我的建议是以 C 和 C++ 开始。有些人会说这些语言对初学者来说太高级了,但因为我自己就是学 C++ ,我并不同意这一说法。而且, C/C++ 是当今使用最广泛的语言(译者认为应该是汉语。。。),所以你可以找到大量学习资料和帮助。你先学 C 或 C++ 都无所谓,因为只要学了一个,再学另外一个就很容易。但是,如果你先学 C++ ,请保证在学习面向对象编程之前能理解和使用过程编程(等编程熟练再去学习类)。(译者: C 是过程性语言, C++ 是面向对象语言)
     如果你开始学习 C/C++, 发现太难,那再学一个简单一点的也没关系,比如 Basic 或 Pascal 。但是我真的认为,如果你坚持努力,而且有好的资料,学 C/C++ 应该没有太大问题。
     你的下一个问题可能会是: “ 我该怎么学 C/C++?” 我很高兴你这样问。最好的办法是上课。有老师可以回答你的问题,帮助你产生很大进步,编程练习作业也可以保证你能用到所学的东西。
     如果你不觉得上课是个好主意,那最好的办法就是买一些好书。不要花太多时间去选一本什么 “ 超级宝典 ” 或 “ 万用全书 ” ,因为你最终可能会买几本。我建议你去一家书店,然后拿几本比较入眼的 C 或 C++ 书看,直到找到一本或几本你能看懂,并且可以拿来学习的。同时,你可能会想要一些更深入的,或者一些材料,但是你一旦对于这门语言有了一些了解,我相信你应该有自己更好的选择。
     在这里,我有必要花一些时间,来说我看到很多初学者所关心的一个事情,特别是年轻人:没有钱买书和其他东西。首先,有很多免费资源可以利用,图书馆, Macmillan Computer Publishing(www.mcp.com/personal), 有成千上百的编程书籍。但是如果你真的想要成为一个好的程序员,还是应该投入一部分资金。应当想方设法(合法的)帮助你弄到一些钱。
     网上也有很多 C/C++ 的学习指南。但是我认为那只能作为补充而不是你自学的主要资源。
     选择正确的编译器
     你写的程序,或者代码,是以文本方式储存的,你甚至可以用记事本写 C/C++ 程序。但是总需要有东西把他们转换成为可执行文件。对于 C 和 C++, 那就是编译器。
     可 用的编译器有好多种,包括很多免费的。选择一款自己适合的编译器很重要,免费的编译器就有这样的好处,你可以把它们试个遍,然后从中选择自己最喜欢的。然 而,免费编译器比起商业版,可能会缺失一些功能和大部分服务。幸运的是,多数商业版编译器也兼售介绍版或学习版,这要便宜得多,通常功能却不见得少,唯一 的限制是你不能发布用它编译的程序(短时间内你也根本用不着)。
     总之,选择编译器取决于你能花多少钱,用什么操作系统,和为什么平台开发。如果要为 windows 开发,我强烈推荐 Microsoft Visual C++ 。他强大的开发环境使得很多事做起来更方便,毫无疑问没有其他编译器更适合开发 windows 应用程序。如果你是个学生,你还可以折价买到。(译者:爽!)如果你在 DOS 平台开发,你最好的选择可能是 DJGPP, 免费的哦 ~ 。
     选择开发平台
     尽管最终你很可能为好几个平台开发 , 总要先选择一个来学。当你在学这门语言,还没有接触到图像的时候,你可能会想使用非图形用户界面的操作系统,比如 DOS,Unix. 这样可以避免接触高层,比如 windows 编程,让你集中精力学习语言本身。
     一旦你做好开发游戏的准备,那么,应该考虑是否改变平台,让我们来看看每个选项的特征。
    windows :如果你想成为游戏行业的专家,或者如果你想让许多人来玩你开发的游戏,那么,这就是你要选择的平台。因为多数你的用户使用 windows ,而且现在我也看不出有什么改变的迹象。当今大多数的 windows 游戏都是由一种你可能听说过技术 ---DirectX--- 开发的。你可以 DirextX 这个库直接访问硬件,这意味着你可以开发高性能的游戏。
    DOS : DOS 过去是占统治地位的游戏平台,但是已经一去不复返了。尽管可能有一些特殊爱好者还在为 DOS 开发游戏,现在没有一个为 DOS 开发的商业游戏,他也将继续衰落,直到微软不再支持。如果你只是想开发游戏,还是不要选择 DOS ,如果你非要这么做,也不要太久。记住:由于存在大量 DOS 游戏开发的书,可能还有人辩护从这些书中学习 DOS 游戏开发。但是, windows 游戏开发的书越来越多,那些辩解也变得越来越无力。
    Linux:Linux 是 Unix 的一种,由于很多原因后来变得流行,包括稳定性,价格,和反微软情绪。尽管 Linux 用户还是相当少,但是围绕着他的热情和不断增长的市场潜力使其也成为不错的选择。
    Macintosh:MAC 有大量忠实粉丝并不能说明什么,几乎每一个和我讨论的 MAC 狂热者都需要更多更好的游戏。我没有见过多少 MAC 游戏开发资源,但我相信还是有的,因此这也是一个选择。
    consoles : console( 就是 PS,N64,DC 等等 ) 的游戏市场十分巨大,当然 console 游戏开发的前景也不错。然而以非商业的形式开发 console 游戏,出于各种原因,在现在似乎行不通。如果你开发 console, 很可能是在被商业游戏开发组雇用之后。
     开始进入主题
     现在是时候讨论开发游戏了。简单起见,我假设你选择用 C/C++ 在 windows 平台开发,可能你选择别的,但大多数我说的还是有用的。
     首先,甚至在你打算开始开发游戏之前,你必须很好掌握 C 和 C++. 你应该懂指针,数组,结构体,函数,可能还有类。如果你精通他们,就可以开始做游戏了。
     这篇文章可能不能教会你所有关于开发游戏的东西。幸运的是,也没有这个必要。这方面有很多书,网上也有很多指南。 GameDev.net 应该有所有你想要的东西,这里我建议你怎么开始:
     找一本或几本书 。对于 windows 游戏开发初学者, Tricks of the Windows Game Programming Gurus 是个完美的开始。除此之外,还有许多好书 . 读透这些书,试试所有的例子,不懂得部分多读几遍。
     网上指南作为补充 。除了弄清书上读到的,他们还涉及一些书上没有谈及的主题。
     向专家寻求帮助 。如果你不能在书上或指南找到问题的答案,好好利用我们的论坛和聊天室。那里有好多专家愿意帮助别人。
     这并不是要你按照顺序执行的,而是可以同时并且不断的重复执行。
     光学习还是不够的,你必须运用你所学到的 。从一个小游戏开始,然后在这个基础上前进。你可以看一下 Geoff Howlands  的著作:  How do I Make Games? A Path to Game Development.
     开始,自己独立工作 。不要急着加入团队,那样只会减缓学习过程。而且一旦你有了自己的几个游戏,你可以为团队做出更大的贡献。
     还 有关于书,你应该不仅仅看游戏开发的书。为了能够开发出你看到商店出售的游戏,你应该钻研比大多数游戏开发书籍更高级的一些主题。有一些可以在网上找到, 但你也应该选一些图形学,人工智能,网络,物理学等方面的书。计算机科学学位看来唾手可得,但因为你被迫上这些课的时候可能认为他们和游戏开发无关 ---- 你错了!
     包装
     这里有一些提示很有用
     不要只积累知识

用它你永远不会知道会理解一些东西知道你是用他们。用你学的东西作些演示。做作书上的练习。
    多玩游戏
   这样做会使你做出更好的游戏。而且可以减轻编程的枯燥。
    帮助别人
    能帮别人的地方尽量帮助别人,教别人的过程中自己会学到更多。
    有始有终
    不要有这样的想法:“我能够完成这个游戏了,但是我又有一个新的想法,那就直接做下一个。”你可以学得更多如果你完成他,你也可以用事实证明你不是只会空谈。所以,尽量不要做很大很复杂的游戏,直到你有了一定经验。
    开始吧!你现在可以开始准备QUAKE4了。可能你不是不是很了解,但是至少应该知道如何开始这条道路,找多些资料,加上多年努力工作,他一定会实现!

来源:http://bbs.gameres.com/showthread.asp?threadid=27933

转载于:https://www.cnblogs.com/TCrow/archive/2007/08/07/4216686.html

[译]游戏编程入门(by David Astle)(转载)相关推荐

  1. [译]游戏编程入门(by David Astle)

    经常有人问我,没有编程经验的人该如何开始开发游戏.在此之前,我总是一个个的尽力回答.然而,后来提相同问题的人数增长到难以处理的地步.我决定,是时候把我所有的建议写成文章,作为一个大概.      这篇 ...

  2. 《C++游戏编程入门(第4版)》——1.11 问题讨论

    本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.11节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区& ...

  3. 《Python游戏编程入门》——1.2 初识Python

    本节书摘来自异步社区<Python游戏编程入门>一书中的第1章,第1.2节,作者[美]Jonathan S. Harbour ,李强 译,更多章节内容可以访问云栖社区"异步社区& ...

  4. .netframework游戏编程入门——模拟魔兽学院永远的羁绊

    相信有很多和我一样摸索着编游戏的自学者,自学是辛苦的,一没明确的引导,二没正确的工具,我就谈一下自己的经验,也许可以让你少走一点弯路.3D 的先不谈,2D作为基础还是有必要研究,然后把地图模型一换(换 ...

  5. 【SDL游戏编程入门第一卷】配置SDL环境

    一.前言 这段时间正好使用 SDL,所以打算开一个新的系列,作为经验分享 -- SDL 游戏编程入门. 这也是 AnnihilateSword 在此站的第一个系列,文中可能有许多不足,还请多多包涵,如 ...

  6. DirectX游戏编程入门——前言

    本系列文章由 net_assassin 编写,转载请注明出处. http://blog.csdn.net/net_assassin/article/category/1100363 作者:net_as ...

  7. 《Android4游戏编程入门经典》读后感

    <Android4游戏编程入门经典>读后感 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 对于程序员来说,游戏编程并不是一件容易的事情.很多 ...

  8. 《Pygame游戏编程入门》学习——第4章 用户输入:Bomb Catcher游戏

    <Pygame游戏编程入门>学习--第4章 用户输入:Bomb Catcher游戏 第4章 挑战[^1] 问题1. Bomb Catching游戏太小了,玩起来不是很过瘾.毕竟,它只是一个 ...

  9. 《Pygame游戏编程入门》学习——第3章 I/O、数据和字体:Trivia游戏

    <Pygame游戏编程入门>学习--第3章 I/O.数据和字体:Trivia游戏 第3章 挑战[^1] 问题1. 修改Trivia游戏,使用已有的代码来扩展你的背景,加入自己的用户输入和问 ...

最新文章

  1. HandlerSocket client for java——hs4j正式发布0.1版本
  2. (网页)SQLserver中在上线的项目中遇到科学计数法怎么办?
  3. linux安装tomcat_【零基础学云计算】详述Linux系统中Tomcat部署及优化
  4. web开发入门_Web开发人员和设计师的自由职业入门
  5. canvas 判断哪个元素被点击_监听 Canvas 内部元素点击事件的三种方法
  6. antd 日期选择框如何提交_基于Ant Design的Modal组件来实现一个可拖拽的React模态框...
  7. 学python可以做什么职业-Python可以做的5大功能和就职5大高薪职业
  8. android Fragment详解三:实现Fragment的界面
  9. Android 色彩设计理念
  10. Unable to instantiate application com.honjane.app.MyApplication
  11. java (apache POI 组件) 操作 excel 插入批注
  12. 基于I2C协议的AHT20温湿度传感器的数据采集及OLED屏显示
  13. web系统变慢了,怎么排查原因
  14. 后端学习 Java Web 上半部分(MySQL~RequestResponse)
  15. 【线性代数】P1 行列式基本概念
  16. day2学python 数据类型+深浅拷贝+循环
  17. 软件实习项目2——贪吃喵(猫吃鱼版贪吃蛇)(实验准备与设计)
  18. 华为v9play有计算机吗,华为荣耀v9play好用吗,华为荣耀v9play参数配置
  19. 马尔萨斯模型的分析和应用
  20. Go微服务实战2:了解微服务

热门文章

  1. 【慕课学习】JAVA核心技术-初级课程
  2. SuperSlide、TouchSlide 解决网站大部分特效展示问题
  3. js中promise原理及手动基本实现_V2
  4. 嘴尚绝卤味为什么会受到欢迎?
  5. 戳穿Windows XP的经典谣言
  6. Windows电脑查看当前连接的wifi密码(以往连接过的)
  7. C++获取系统图标方法
  8. 正式接触编程有感(个人向)
  9. 解决Windows Server 2008 System进程占用80端口
  10. 宝石甲壳虫害怕什么?