游戏开发—图形图像篇 |
||||
游戏开发--开篇 记得我第一次玩的PC game 是KKND(绝地风暴),当时的游戏平台是DOS,我只是觉得很好玩,经常和几个小学同学一起厮杀到12点。可是现在回忆起来,KKND无论是从智能设计还是在游戏画面与操作上都是非常出色的。他的音效同样是很棒的,而且全中文配音让当时很多不懂英语的玩家找到了许多的亲切感。这真是一款很棒的游戏。It is great! 我想,这样的感觉是许多游戏开发者或者梦想成为游戏开发者的人们所共同经历的感受。一款好游戏会带给人们很多东西,会带给社会很多东西。 在人的层面上,无论是"大富翁"让我们娱乐,还是"文明"让我们感受科技发展带来的成果与思考,在我们玩一个游戏的时候,我们读到的故事,经历的坎坷,解决的问题,无时无刻不在让我们感受着游戏之外的很多东西。 在社会的层面上,游戏产业就本身而言,市场不断扩大,需求不断增多;更重要的是,他带动了出版、通信等相关产业的迅猛增长。游戏与相关产业增长的比值有时甚至是1:100。现在看看韩国政府对于游戏产业的支持,就有"醉翁之意不在酒"的感觉了。 中国的游戏产业将在2005年左右达到10美元的市场,我们国人绝不应放弃这个发展的大好机会。其实,我们可以看到现在有很多的游戏公司,看起来像是一片欣欣向荣、蓬勃发展的场面,但是这里面又有多少是搞游戏开发的呢?是少之又少。很多公司都是代理国外的游戏,这样一来,国外很多的游戏开发厂商获得了大量的利润,而我们在为小蛋糕争得你死我活时,别人已经各自享用着自己的大餐了。资金不足无疑是各个公司搞游戏代理的最主要理由。但是我们可以看到,像CS这样成功的Garage Game,我们为什么做不出来?答案很多,问题很多,我们要做的事情很多。 于是,本着从我做起的原则,还是应该不断以提高自身的能力为主。毕竟我们和外国走的路不同,我们要找到适合自己的发展道路,走出一条具有中国特色的产业发展路线。当然,在路上我们还要不断的学习。 所以,在我学习游戏开发的过程中,看到了我们中国学生的很多文章,有很多都是很有水平的。于是自己也提起笔来,把自己学习的经验和心得写下来,和大家一起讨论和提高。 这一系列的文章主要是面向想学习游戏开发的朋友,文章是从实际开发源代码的角度去介绍游戏开发的各个方面(文章中的示例代码用C++编写),但是瓦文章并不是完全地教学,更像是一个游戏开发的学习索引。它告诉初学者,做什么游戏需要什么技术,指引他们去学习某项技术,从而真正回归到自己学习的乐趣中来,为最终游戏的设计和实现奠定基础。 游戏开发--图形图像篇(一) 一个游戏的好坏谁说了算? 玩家。 玩家如何看一个游戏? 用眼睛。 那么这款游戏怎么样? "画面真棒!" … … 你的游戏做得再好,如果没有一个很好的图形效果,那展现在玩家眼前的东西将大打折扣。而且,你的游戏也不会得到很好的支持。为什么呢?因为你的游戏无需使用很好的显示设备和图形加速设备,硬件厂商不会理睬你的游戏。这也就和开篇所说的"游戏促进相关产业的发展"的职责相悖了。所以,在写一个游戏之前,想一想开发这个游戏需要什么技能,"磨刀不误砍柴工"。让我们开始吧,先学一学游戏的图形开发。 一. Windows 绘图接口 1.GDI/GDI+ 在开始前先让我们看一个具体的例子。 这个小程序的图形显示部分就是用GDI编写的。 GDI+的C++接口中包括大约40个类、50个枚举和6个结构。听起来虽然不多,但是这也足够胜任大多数应用了。 这个程序是用DirectDraw开发的,看到它的威力了吧,滚动的平滑,丝毫没有跳帧的感觉。要是使用GDI编写一个需要重绘直线的程序,其重绘的图形将惨不忍睹。 在演示这个程序之前,需要调整一下Windows窗口显示设置。首先鼠标右键点击桌面->属性->外观->效果,将"托动时现实窗口内容"选项选中。这样可以保证在托动窗口的时候,屏幕使用GDI不断刷新。 |