⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.html

📁 游戏开发者很好的参考
💻 HTML
📖 第 1 页 / 共 5 页
字号:
                苹果机拥有一群数量不多但非常忠诚的追随者,几乎每个我见过的苹果机爱好者都有一个强烈渴望更多苹果机游戏的愿望。我没有看过多少在苹果机上开发游戏的资料,但我确信确实有,因此,这也是个合理的选择。<br>
                <br>
              </li>
              <li><b>家庭游戏机</b><br>
                游戏机(如PlayStation、N64、Dreamcast等等)游戏市场非常巨大,前景可观。然而,由于种种原因,开发非商业性的游戏机游戏在目前来说是不太可能的。你为游戏机开发的游戏大多都会被商业游戏公司买走。</li>
            </ul>
            <p><b>4、充足电</b><br>
              <b> </b>   是讨论真正做游戏的时候了。虽然我所说的大部分内容适用于其他语言,为简单起见,我将假定你选择了C/C++来进行Windows编程。<br>
              <span class="EtoC"> </span>   首先,在你考虑如何开始做游戏之前,你应该能很好的掌握C和C++。你应该了解并精通指针、数组、结构体、函数,以及类等。做到了这一点,你就可以开始制作游戏了。<br>
                本文无法教授你关于制作游戏所该了解的一切。幸运的是,这也不是必要的。有很多关于这方面的书,网上也有数以百计的教程。<a href="http://www.gamedev.net" target="_blank" class="cLink"><font face="Times New Roman"><i>GameDev.net</i></font></a> 
              应该会有目前你所需要的一切。下面是我对你起步的一些建议:</p>
            <ul>
              <li><b>学习一本或几本书</b><br>
                对于 Windows 游戏的初学程序员,《<a href="http://www.huachu.com.cn/asp/book/brow.asp?lbbh=A03127521" target="_blank" class="cLink">Windows游戏编程大师技巧</a>》是一本极好的Windows编程入门教程。在这个站点里拥有许多本站 
                <a href="http://www.gamedev.net/columns/books" target="_blank" class="cLink"><font face="Times New Roman"><i>Books 
                Section</i></font></a>里所列出的好书。阅读这些书籍,运行所有的例程,反复研读你不理解的章节。<br>
                <br>
              </li>
              <li> <b>使用网上教程补充书本的不足</b>。<br>
                书本除了阐明一些你阅读的东西外,通常也会包含一些书本上没有涉及的主题。<br>
                <br>
              </li>
              <li> <b>找专家进行咨询</b>。<br>
                如果你无法从书上或教程中找到答案,到本站的留言版或聊天室来,这里有许多乐于提供帮助的人。<br>
              </li>
            </ul>
              不要把上面几点当成是个有序的过程,而应当看作是一个循环往复的并行过程。仅仅是学习、思考是远远不够的,你应当把你所学的东西付诸实践。从一个简单的游戏开始,逐步发展。你可以阅读一下 
            Geoff Howland的文章《<i><font face="Times New Roman"><a href="http://www.gamedev.net/reference/design/features/makegames" target="_blank" class="cLink">How 
            do I Make Games? A Path to Game Development</a></font></i>》。<br>
              首先,为自己的工作制定一个计划。不要急于加入一个团队,因为那只会减缓你的学习进程。当你囊中拥有数个游戏时,你将为一个团队作出更大贡献。<br>
            <span class="EtoC"> </span>   关于书本,有件事我要提醒一下:你需要阅读除了游戏编程外的其他书籍。为了制作出你在商店货价里看到的各种游戏,你将不得不钻研那些比大多数游戏编程书籍所授内容更高深的话题。有些可能你能从教程中找到,但是,你还是有必要买几本关于图形、人工智能、网络、物理等等方面的书。这是获得计算机科学学位的必经之路,因为你将被要求学习一些你认为与游戏编程无关的课程,而实际上它们是相关的。<br>
            <br>
            <b>5、总结</b><b><br>
            </b>   这里有一些能产生巨大差别的技巧:<br>
            <span class="EtoC"> </span> 
            <ul>
              <li><b>要只知道聚集知识,应用是关键</b><br>
                除非你使用了,否则你无法确实知道和理解这些东西。做一些小的测试程序来应用你所学的东西,并切实完成书上每个章节后的习题。<br>
                <br>
              </li>
              <li><b>玩大量的游戏</b><br>
                你会因此找到灵感,从而帮助你制作更优秀的游戏。当然,这也是一种受欢迎的解除编程压力的调剂方式。<br>
                <br>
              </li>
              <li><b>帮助别人</b><br>
                在你帮助别人的过程中,你会学到更多东西。<br>
                <br>
              </li>
              <li><b>完成你的作品</b><br>
                不要陷入这样一种思想的圈套中:“我知道我可以完成这个游戏,但是我有个更好的主意,我要换做这个好的项目。”如果你能坚持有始有终,你会学到更多的东西,并且你有作品证明你不仅仅是空谈。在你具有丰富的经验之前,做得简单一点,不要尝试制作一个又大又复杂的游戏。<br>
                <span class="EtoC"> </span></li>
            </ul>
              出发吧。你该动手制作Quake 4了。当然,可能不那么容易,但至少你可以从这个方向出发,并且知道去哪里查找更多的信息。经过多年的努力工作,你会成功的。<br>
            <span class="EtoC"> </span> <br>
            <hr noshade width="95%" size="1" align="center">
            <br>
              <b>作者简介</b><br>
              Dave Astle从1984年开始制作电脑游戏。白天他在ROI Systems公司任软件工程师,晚上他领导Myopic Rhino游戏开发小组。有时他也抽空来帮帮GameDev.net,使其成为同行中的佼佼者。有时间他也需要休息了。 
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="8" width="100%" bgcolor="#993399">
  <tr> 
    <td width="78%"> <font color="#FFFFFF"><b>[ <font color="#CCCCCC">业界星空</font></b> 
      - 专访与杂谈<b> ]<a name="CGD-1.2.4"></a></b></font></td>
    <td width="20%"> 
      <div align="center"><b>责任编辑</b>:<span class="English">Mays</span></div>
    </td>
  </tr>
</table>
<table width="100%" border="0" cellspacing="1" cellpadding="2" bgcolor="#993399">
  <tr> 
    <td class="BGGrayMain"> 
      <table border="0" cellspacing="0" cellpadding="10" width="100%">
        <tr> 
          <td valign="top" colspan="2"  class="WhiteBG"> 
            <table border="0" cellspacing="1" cellpadding="2" align="right" bgcolor="#000000" width="33%">
              <tr> 
                <td valign="top" class="BGRed" width="20%"> 
                  <div align="center"><font color="#CCCCCC"><b>原 文</b></font></div>
                </td>
                <td class="BGGrayMain" width="80%"> <i><font face="Times New Roman"><a href="%20%20http://www.unrealities.com/web/johncchat.html" target="_blank" class="cLink">unrealities.COM</a></font></i></td>
              </tr>
              <tr> 
                <td valign="top" class="BGRed" width="20%"> <font color="#CCCCCC"><b>译 者</b></font></td>
                <td class="BGGrayMain" width="80%">  <span class="English">zhangyan_qd</span></td>
              </tr>
            </table>
            <font face="楷体_GB2312" size="6"><b><br>
            <br>
              <font size="5">与<font face="Arial">John Carmack</font>一席谈</font></b></font><br>
            <br>
            <br>
              [<b>译者的话</b>:John Carmack是谁,不必我介绍了吧?虽然从文化、社会的角度讲,Quake还处在一种边缘和颇具争议的位置,但从CG技术角度讲,Quake绝对是个里程碑。大约就是从Quake,从id,从John 
            Carmack开始,CG抹下了神秘的面纱,走下学术的神殿,走进芸芸众生的日常生活中。从此谈论Z-buffer、反走样、纹理映射、消隐技术的,不再限于象牙塔中的专家学者了。是Quake使CG走向大众,走向实用。作为一个CG的专业研究者,这样的现象是我所乐见的。<br>
              作为一个专业研究者,令我汗颜的是:在这篇已经算是“旧闻”的文章里,充斥着许多闻所未闻或不知其详的新名词、新术语。但这篇文章的两位主角,一是普普通通的游戏爱好者,二是自学成材的技术天才,二者都不是名满天下的前辈耄宿,却都能就这一领域的前沿动态侃侃而谈。作为身处象牙塔内的学子,我不由反省,千万不能有井蛙之见哪!]<br>
            <br>
              <b>作者</b>:Rob Jellinghaus<br>
            <br>
              星期一早上(11月16日),我收到了John Carmack对这篇文章的两处勘误,一是关于Java授权(是Kaffe而不是Cafe),二是C语言游戏DLL代码的长度(是30K而不是3K)。这两处错误我都已经进行了修改。星期一下午,我又增加了两个部分,分别是John的“光栅矢量”模拟,我加入到了“3D的未来”这一部分,以及对多分辨率的书的介绍。<br>
              昨天我在我旧金山的公寓里上VoodooExtreme.COM网(也可能是bluesnews.com),突然我看到一条消息,说John 
            Carmack将在15分钟后在职业玩家联盟锦标赛上发表讲话,讲话地离我住的地方相隔大约十二个街区。机不可失,山地车伺候!十分钟后,我已经在观看星际的决赛了,恰好赶在这个大人物出场讲话之前。<br>
              在网上其他地方不难找到关于这场决赛和John的这次讲话的内容介绍,但我排除万难争取到一个机会,在John发表完他的官方讲话之后和他谈了一会,并且问了他几个只有像我这样求知欲旺盛的技术迷才会感兴趣的问题。(顺便说一句,如果你看了网上的John的讲话录象,第一个提问的观众--那个问“你是不是仍然认为基本上所有的解析曲面表示法都是垃圾?”的家伙 
            — 就是我:-) 现在您看到的就是我们之间谈话的记录。所有这些记录都是我根据回忆整理的,包括一部分额外的说明性文字 — 我当时既没有录音机也没带笔记本。如果有所偏差,全部责任在我 
            — 如果你发现什么东西让你想骂John的话,请先来骂我,因为可能是我搞错了。<br>
            <br>
              <b>内容提要</b><br>
              1 Java与Quake的联姻 — 为什么还没有实现<br>
              2 3D图形技术的未来<br>
              3 Quake架构逸闻<br>
              4 关于John的讲话的一些要点<br>
              5 我的个人感受<br>
              6 致谢<br>
            <br>
            <hr noshade width="95%" size="1">
            <p><br>
              <b>1、Java与Quake的联姻 — 为什么还没有实现</b><br>
                据说John曾经与一个Kaffe小组进行过谈判,后者希望能随Quake 3发行一个他们的Java虚拟机(John甚至说这个小组“很有说服力”)。但最终John还是强烈反对这一计划,他主要是基于下面几个理由:<br>
            </p>
            <ul>
              <li><b>移植性</b><br>
                虽然Java对可移植性吹嘘得挺厉害,但事实上还没有一个Java虚拟机能稳定的通用于所有可以运行Quake 3的“关键性”平台(包括Mac、Windows和Linux)...每种平台都有各自最好的Java虚拟机,但这些虚拟机在跨平台的兼容性方面都不容乐观(例如在与本地代码的集成方面)。John说(这些虚拟机)虽然在向其他平台,如Irix或BeOS上移植方面确实做得不错,但尚不能博得市场的青睐。<br>
                <br>
              </li>
              <li><b>效能</b><br>
                作为一种内置垃圾收集机制的语言,Java在运行时的效率不象C那样可以预测。(我现在在为一个使用Java的“互连网广播”视频动画系统工作,因此我得以发现这个问题还是有方法可以解决的。不过这些方法确实尚存在一些问题)。 
                *稳定性:Java正在全面实现其所有特性的道路上举步维艰(看Sun花了多久才推出Java 1.2就知道了)。而Quake 3也还存在大量悬而未决的顶尖技术难题。John不希望再添进另一个不成熟的东西来搅和了。<br>
                <br>
              </li>
              <li><b>调试难度</b><br>
                Java的调试器仍然落后于人们的期望值。(不过我在VJ++ 6.0的使用中得到了很大的乐趣......没错,它是微软这个恶魔的产品,但这个开发环境实在是“太”棒了!)[译注:<b><font face="Arial">me 
                too</font></b>:)安迪尔森确实是天才,为什么微软不调他去VC项目?]。<br>
                我想尽办法也没有问出John具体是怎么在运行时解释器里调试他的C语言库的--显然你可以把代码在本地编译,然后用任何一种标准C的调试器来调试,但调试C语言编译器(以及它的“字节码”解释器)就是另外一回事了,至于在这个环境下调试C代码则具有双重的难度。我猜解决方法不外乎“首先确保编译器和解释器是可靠的”:) 
                [<b>译注</b>:这里指的是Quake自带的被称为Quake C的一个扩展工具,用户可以用标准C代码来扩展Quake的功能。我只见过一代的QC,唔...感觉可以用一个成语概括:“神乎奇迹”]<br>
                <br>
              </li>
              <li><b>John还提到了一个</b>(的确)<b>次要的问题</b><br>
                为了支持Java,他不得不重写并重新调试超过30,000行的游戏成品DLL库代码。不过从长远看来,John还是认为Java要比C优越,而且他也在以极大的兴趣关注Java在实时3D游戏方面的进展。</li>
            </ul>
            <p><b>2、3D图形技术的未来</b><br>
                早在四月份,John在一份plan里声称,“基本上所有的解析曲面表示法都是垃圾。”直到现在,我还是念念不忘这个论断。于是我问他关于这个论断的问题。这里是他的一些观点(以及我用我为数不多的一点3D图形方面的知识进行的解释):<br>
            </p>
            <ul>
              <li>(平面)多边形和曲面都是解析表达法,二者都面临共同的“尺度敏感”问题[<b>译注</b>:这是我杜撰的名词,原文是Scalability,意指随着被表示物体复杂程度的增加,数据量急剧膨胀的问题。<b>]</b>。如果用多边形构筑你的世界,“屏幕上可见多边形数量”的噩梦将如影随形。采用曲面建模可能会在一开始有所帮助,但很快你又会陷入“屏幕上可见曲线(曲面)数量”的泥淖之中,迫使你不得不求助于四次曲面[<b>译注</b>:CG中常用的曲线曲面多是三次的,故有此说]。<br>
                <br>
              </li>
              <li>John实际上寄希望于未来3D硬件将使用“多分辨率”表示法,采用这种方法后,整个世界将以某种特定的数据结构表达,这种数据结构能够从根本上保证从任意视点处渲染场景的时间都接近常数。<br>
                <br>
              </li>
              <li>Voxel可能就是这类数据结构的一个例子。John提到他实际上是写了一个voxel渲染机,并为之重建了整个Quake 2的关卡,数据量多达3G之巨!但John说,如果你能用智能化的数据流技术调度voxel集合的不同部分出入显存,那么即使如此大的数据量也不会超出现有的硬件处理能力太多[<b>译注</b>:这一段不太理解,这么先进的技术,以后要多花点时间研究研究才行]。John还说,对整个世界采用“唯一”的数据结构进行记录是比较理想的 
                — 不要有那么多的点、面、BSP树[<b>译注</b>:表示空间形体的一种数据结构]...只要用一个oc树节点(以及它的同型子节点)就可以表示一切。<br>
                <br>
              </li>
              <li>包括频率空间表现技术(比如小波压缩方案)在内的另外一些新技术也有可能使用。(可以把小波压缩想象成类似分型压缩的一种先进的渲染技术,它是应用于整个3D空间的。但John完全没有提到分型压缩;他只是谈到了“频率空间”这个词,然后在我说出“小波”的时候频频颔首:-)John提到有一本关于多分辨率图形技术的书,其中包括了一些频率空间3D建模和渲染技术的介绍,但他没有说具体是哪一本书;我猜可能是Tony 
                DeRose的Wavelets for Computer Graphics。[<b>译注</b>:匪夷所思,这一段里牵涉的技术太深奥了。分型压缩是知道的,小波分析就只闻其名了。至于“频率空间”(<span class="English">frequency 
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -