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

📄 g1.htm

📁 PC游戏编程
💻 HTM
📖 第 1 页 / 共 2 页
字号:
      的游戏底层接口,在我们的游戏中使用了它作为底层接口。关于它的使用想必大家已经很&nbsp;<br>
      熟悉了,现在已经有中文的书籍出版,我不必赘述。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;有的书上讲在编译和调试程序时最好使用Windows&nbsp;NT或双显示器,尤其因为&nbsp;<br>
      DirectDraw中独占显示器。可是我试过之后发现都不实用。对于WindowsNT,它的4.0版只&nbsp;<br>
      支持DirectX&nbsp;3.0,&nbsp;听说5.0版才支持DirectX&nbsp;6.0,但我总不能等到NT5.0出了之后才开&nbsp;<br>
      始编吧。对于双显示器,我一直耿耿于怀,外国人都很阔,每个人可以配备两台机器,可&nbsp;<br>
      是,就算我找到两台计算机,程序装入的速度实在让我不耐烦,调试一遍时间太长,等不&nbsp;<br>
      起。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;我们应该重视的倒应该是计算机的兼容性问题。为我们提供测试的计算机是很少的,&nbsp;<br>
      如何找到更多的条件才测试我们的程序是后期应该注意的问题,千万不要以为在&nbsp;<br>
      Windows95时代计算机硬件的差别已经没有了,它们出起错来更危险。 &nbsp;<br>
      &nbsp;<br>
      1.1.3&nbsp;&nbsp;语言 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;在任何一本写游戏编程的外文书籍里都会提到编程语言主要有两种,汇编和C。有的&nbsp;<br>
      书里甚至不提倡使用C++。不使用C++的原因我猜有两个:第一,速度。据说C++代码比C代&nbsp;<br>
      码慢10%。这个数字我没有测试过,但C++比C慢大概应该是对的。因为用C++比直接用C编&nbsp;<br>
      写代码要方便和简单,所以速度应该会慢。第二,便于移植,移植这个词可很时髦,什么&nbsp;<br>
      PC到PS啦,PS到Saturn啦,Saturn到N64啦,N64到Mac啦,Mac到PC啦之类,一个游戏必须&nbsp;<br>
      要在所有地方出现才过瘾。如果使用C++就难了,因为象次世代游戏机上的开发环境,一&nbsp;<br>
      般不支持C++,N64虽然说是支持但仍然建议使用C。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;使用汇编的理由也是很简单的,那就是快!因为游戏编程中表现最明显的地方就是游&nbsp;<br>
      戏的速度。汇编比C快的道理也是很明显的,那就是汇编要比C难写多了,速度自然快些。&nbsp;<br>
      &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;那么速度就那么重要么?过去上学的时候,用汇编写出来的程序编译出来的一般十几k&nbsp;<br>
      ,后来用C写的小程序大的有几十k,而现在编译windows程序,一上来就有一百多k。过去&nbsp;<br>
      的游戏就是绿色屏幕上几个字符,而现在都是真彩色的图象和实时三维。过去的游戏一个&nbsp;<br>
      人就可以“搞定”,而现在必须分工合作。这些给我的感觉就是游戏越做越大,程序越写&nbsp;<br>
      越长。是不是有一些方面开始变得与游戏速度一样甚至更加重要了呢? &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;有!这其实就是大家经常谈论到的一个问题:程序的Bug。一个程序如果越来越复杂&nbsp;<br>
      ,越来越长,而且多个人共同编写,这时候就越容易出现程序中的臭虫。我认为,以我们&nbsp;<br>
      目前的程序编写水平而言,程序的正确性要远远高于它的效率。实际上,我在后面的主要&nbsp;<br>
      篇幅都在讲如何提高程序的正确性上,而只有很少的篇幅介绍程序的优化。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;所以我选择编程语言主要是从其正确性和效率两个方面来考虑的。目前我选择C++。&nbsp;<br>
      &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;这不仅仅因为我对这个语言最熟悉,更因为它的特点,对两个方面都符合得很好。程&nbsp;<br>
      序是人写出来的,如果程序越容易写,就越容易正确,这方面汇编语言显然不是候选者,&nbsp;<br>
      Pascal虽然好,但是那些Begin和End写起来也太累。&nbsp;C语言要省事得多,C++更进一步,&nbsp;<br>
      而且有了封装,继承,多态的概念。可是编写最方便的首选应该是Visual&nbsp;Basic,Delphi&nbsp;<br>
      和Java了。程序的框架都已经被准备好,只要在里面填东西就可以了。只是因为它们的效&nbsp;<br>
      率比较低,而不能成为游戏编写的最佳语言。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;现在很难想象一个游戏整个都是用汇编写的,因为一个10000行的C程序改用汇编写至&nbsp;<br>
      少需要50000行,那其中出错的机会至少要多出5倍,而且汇编代码太过抽象,很难读懂。&nbsp;<br>
      所以应该只在非常需要效率的地方才需要使用汇编语言。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;C语言与C++的差别不大,而且我认为C++所带来的封装的概念足以弥补它们的速度差&nbsp;<br>
      异。关于移植,有消息说Sega最新一代的游戏机DreamCast要使用Windows&nbsp;CE作为操作系&nbsp;<br>
      统,那么C++应该也会支持的了。大融合的时代总会到来,不同担心。我的C语言代码也主&nbsp;<br>
      要用于程序的底层。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;那么,现在大家对我所使用的语言应该有所了解了。使用C++作为主要语言,同时辅&nbsp;<br>
      助以C和汇编。 &nbsp;<br>
      &nbsp;<br>
      1.1.4&nbsp;&nbsp;编译环境 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;Microsoft&nbsp;Visual&nbsp;C++2.0/4.0/5.0/6.0是我一直使用的编译器。虽然Borland&nbsp;C++和&nbsp;<br>
      Watcom&nbsp;C++也可以编译Windows程序,我仍然认为Visual&nbsp;C++是最好的。没有别的理由,&nbsp;<br>
      就是因为习惯了。如果你已经习惯使用Watcom&nbsp;C或Free&nbsp;C什么的,也没必要改。如果从来&nbsp;<br>
      没有编过Windows程序,倒是可以先从这里开始。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;我听说谁如果不会使用SoftICE调试程序就没有达到编程的顶峰,我一直以此为遗憾&nbsp;<br>
      。我不会使用SoftICE。我也远远没有达到编程的顶峰。“竟然这样的人也编起游戏来了&nbsp;<br>
      ”,也许有的人会这样想,我想这没关系,因为本来谁都可以编游戏的嘛。 &nbsp;<br>
      &nbsp;<br>
      1.1.5&nbsp;&nbsp;背景知识 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;编程序到底需不需要是专业人才,这也是个大家争论的话题。我还是那个观点,这只&nbsp;<br>
      是一个起点的问题,它只表明入门时候的速度而已。但这并不是说你什么都不需要学。有&nbsp;<br>
      许多东西需要我们学,甚至需要我们不停地学。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;·硬件知识: &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;你总不能连自己的计算机是什么CPU都不知道吧。虽然我们不需要知道每个芯片的内&nbsp;<br>
      部构造,但如果我们知道了Pentium&nbsp;CPU有两条并行流水线同时处理指令的话,我们就会&nbsp;<br>
      特别注意这方面的优化了。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;·操作系统: &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;我们的程序不一定需要多任务,多线程,但是了解我们的程序何时被调用是很重要的&nbsp;<br>
      。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;·数学: &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;数学是我最头痛的科目了。好在我们在这里所接触的大多是离散数学(我也很头痛!)&nbsp;<br>
      。最基本的要算是数理逻辑,就是程序中最普通的判断语句中的那些“与”,“或”,“&nbsp;<br>
      非”。其次是那些图论,概率。知道这些编写二维游戏就足够了。如果编写三维游戏,那&nbsp;<br>
      就赶快复习一下线性代数吧。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;·专业课: &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;这是计算机系中学到的有关课程。虽然数据库,网络的概念在游戏编写中都可能会用&nbsp;<br>
      到,但是因为都是间接的,就不在这里说了。数据结构大概是最重要的课程了,这里所提&nbsp;<br>
      到的数组,队列,堆栈,链表,表,树,图等概念在我们的程序中几乎都会或多或少地用&nbsp;<br>
      到。另外,对于三维编程,还有一门叫计算机图形学,也是很重要的。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;·文件: &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;与游戏密切相关的文件有图象文件,声音文件,视频文件等。这些知识越丰富对我们&nbsp;<br>
      编写游戏就越有用。可是,这也并不是绝对的,我在刚开始写游戏时连BMP图的格式都不&nbsp;<br>
      知道。 &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;·美术: &nbsp;<br>
      &nbsp;&nbsp;&nbsp;&nbsp;大概每个游戏程序员都有过当“助美”(助理美工)的体验吧。当我们做程序测试,或&nbsp;<br>
      美术师们没有时间完成裁图,切图等“体力”劳动时,自然由我们来做这些工作。但是,&nbsp;<br>
      请记住,程序员永远是程序员,就算我们画得再好,也比不过他们的。 &nbsp;</td>
  </tr>
</table>
<p align="center">&nbsp;</p>
</body>
</html>

⌨️ 快捷键说明

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