第1章 高瞻远瞩一一游戏开发面面观

来源:互联网 发布:拼多多是淘宝旗下的吗 编辑:程序博客网 时间:2024/04/28 19:47

1.1 逐梦——梦想让我们不孤单

1.2 游戏产业的黎明

        在1993 年的冬天,大名鼎鼎的Id 游戏公司发行了作为《德军司令部3D 》(最早的3 D 共享游戏软件之一,也是出自Id 公司之手)的续作《DOOM 》。在DOOM 热潮的冲击下,微软(Microsoft )公司才开始重新评价自己在游戏和游戏编程中的地位。这位巨人终于认识到娱乐产业的强大力量,而且这股力量,正在日益醇厚。于是,做软接着便制定了庞大而有条理和野心的计划,使自己能在这个日渐成长的产业中分一杯羹。
       于是接下来, Windows 操作系统图形技术的日益成长, DirectX 的日益壮大一-PC 游戏产业的黎明,应声到来。

1.3 游戏产业的分类——六大游戏市场

        按照游戏领域的产业类型来分,游戏开发领域可分为六大类型。他们分别是:

        • AAA 级游戏开发领域
        • 社交和休闲游戏开发领域. 移动游戏开发领域
        • 功能型游戏开发领域
        • 学术型游戏开发领域
        • 独立游戏开发领域

1.3.1  3A 级游戏开发领域

AAA 级(游戏业界通常称其为“ Tripl e-A ” , 即3A )游戏是我们经常在评价一款游戏是否为大作的衡量标准,是游戏业界“酷”的代名词。AAA 级游戏通常都指的是游戏平台像XBOX360/Pl ay Station 或者PC 上的游戏作品,通常团队规模50 人以上,开发周期在2-5 年之间,有着不菲的开发预算。

例如:《暗黑破坏神3》《星际争霸》《上古卷轴》《使命召唤》

            《战地3 》《战争机器2 》《巫师》《求生之路2 》《最终幻想》

            《鬼泣》《火炬之光》《刺客信条》《孤岛危机》《暗黑血统》

            《真三国无双》《生化危机》《波斯王子》《极品飞车》等等

AAA 级游戏一直以来不断地推陈出新,这就是PC 和主机游戏产业为何经久不衰的最大原因。
AAA 级游戏具备的特质有如下这些: 

1.高投入. 高品质. 高销量. 

2.极少的BUG . 良好可上手性. 广阔市场前景. 经过完善的测试. 图形用户界面友好. 

3.规模庞大的研发团队. 大规模市场宣传和炒作.

4. 将艺术与技术完美结合. 高表现的视觉与听觉效果. 让玩家在玩上的最初5 分钟入迷. 愉悦的体验连续、均衡、贯穿整个游戏过程

1.3.2 社交和休闲游戏开发领域

社交和休闲( Social and casu al )类游戏与AAA 级游戏相比, 有着更小的开发团队(5~25 人),更短的开发周期( 4-8 月), 更少的开发预算。社交和休闲类游戏主要依附着社交网络(国内如QQ 空间、人人网、新浪微博, 国外如facebook, twitter )而存在。老少咸直的QQ 农场就是一款在国内风靡一时的典型社交和休闲类游戏。

1.3.3 移动游戏开发领域

移动游戏市场包括普通移动手机,智能手机以及平板电脑。目前该平台由Android 、iOS 以及Windows Phone 这三大智能移动平台主导。这个市场与社交和休闲类游戏市场有着很大的交集,与社交和休闲类游戏相比, 有着更小的开发团队(甚至是个人), 更少的预算以及更短的开发周期。

《会说话的汤姆猫》、《愤怒的小鸟》、《神庙逃亡》( Temple Run )、《无尽之剑》( Infinity Blade )等等游戏就是这个领域的佼佼者;

1.3.4 功能型游戏开发领域

功能性游戏( Serious game )是开发出来用于响应特定的企业或者机构的需求的游戏作品。比如, 国外一款名叫《Remission》的游戏, 就是用于帮助孩子们理解什么是化疗以及化疗的作用和重要性的。
又比如,我国解放军开发的FPS 大作《光荣使命》系列游戏,就是为我国的军队量身打造的,进行专门的高科技军事训练的一流游戏作品。

1.3.5 学术型游戏开发领域

学术型游戏开发领域是近年来新出现的游戏产业分支。现在越来越多的机构开始资助大学或者研究所的游戏开发团队, 促进了这种新生的游戏开发领
域的发展。

1.3.6 独立型游戏开发领域

独立型游戏开发领域是游戏产业的命脉所在,随着近年移动平台与社交平台的火热崛起,独立游戏开发者们的舞台越扩越宽。
有着这样一群独立游戏开发者,他们视游戏开发为梦想,他们是独立游戏开发领域的主角。
独立开发者是一个游戏背后的唯一创造力量和经济力量。没有外部的发行商为独立游戏提供资金,也没有其他的实体发挥对游戏内容的创造性控制。独立游戏大多是自己发行的, 但多数独立开发者也愿意与发行商一同协作。发行商不提供开发资金或者控制游戏的开发过程。在这种情况下,独立开发者将首先开发游戏, 仅当游戏开发完成时或者快要完成时才让发行商介入。同时,通常独立开发者工作室都非常小,常常仅有l ~2 人。

1.4 游戏平台与游戏开发编程语言的认知

目前,游戏平台基本上都依附着操作系统平台而存在。按平台来分的话, 上规模的桌面游戏平台有Windows 、Linux ( Linux 衍生操作系统太多了,这里算是一个统称)、Mac OS ,移动平台方面有iOS 、Android 、Windows Phone 、BlackBerryOS 、Symbian ,专业的主机游戏平Xbox、PlayStation 、Wii 等等。

对于高品质的3A 游戏,也就是那些PC 平台和主机平台上的游戏大作,通常都是采用C+十进行开发的。而社交与休闲类网页游戏往往都是用flash 开发的。移动平台上的游戏就因平台而各异了,但基本上都是由C/C++衍生出来的编程语言, 基本思想还是没变的。比如说, Android 平台使
用Java , iOS 平台用的Objective-C. Windows Phone 平台采用C#。
另外,很多游戏都使用了脚本语言,最常见的是Python 与Lua 这两种脚本语言。脚本语言与传统的C/C++之类的正统编程语言还是有着一定的形式上的不同,但是脚本语言也逃不出编程语言的那种固定的模式,编程思想是共通的。

1.5 对游戏类型的认知

相信大家对游戏的分类都有所了解, 这里只是一个比较简单的分类介绍。

1. RPG=Role-playing Game : 角色扮演游戏

由玩家扮演游戏中的一个或数个角色, 有完整的故事情节的游戏。玩家可能会与冒险类游戏混淆,其实区分很简单,

RPG 游戏更强调的是剧情发展和个人体验。一般来说, RPG 可分为日式和美式两种,主要区别在于文化背景和战斗方式。

日式RPG 多采用回合制或半即时制战斗, 如《最终幻想》系列, 大多国产中文RPG 也可归为日式RPG 之列,如大家熟悉的《仙剑奇侠传》《轩辗剑》《古剑奇谭》系列等等: 美式RPG 如《暗黑破坏神》系列。

2. ACT=Action Game : 动作游戏
玩家控制游戏人物用各种武器消灭敌人以过关的游戏,不追求故事情节, 如熟悉的《超级玛丽》、可爱的《星之卡比》、华丽的《波斯王子》等等。

3. AVG=Adventure Game :冒险游戏
由玩家控制游戏人物进行虚拟冒险的游戏。与RPG 不同的是, AVG 的特色是故事情节往往是以完成一个任务或解开某些迷题的形式出现的,而且在游戏过程中刻意强调谜题的重要性。如:《生化危机》系列、《古墓丽影》系列、《恐龙危机》、《神秘岛》系列。

4. SLG=Simulation Game : 策略游戏
玩家运用策略与电脑或其他玩家较量, 以取得各种形式胜利的游戏,或统一全国,或开拓外星殖民地。如:《命令与征服》系列、《帝国》系列、《模拟人生》《模拟城市》《过山车大亨》《主题公园》等《沙丘》等。

5. RTS=Real币me Strategy Game :即时战略游戏
本来属于策略游戏SLG 的一个分支,但由于其在世界上的迅速风靡,使之慢慢发展成了一个单独的类型,知名度甚至超过了SLG ,有点像现在国际足联和国际奥委会的关系。代表作有《红色警戒》系列、《魔兽争霸》系列、《帝国时代》系列、《星际争霸》系列等等

6. FTG=Fighting Game : 格斗游戏
由玩家操纵各种角色与电脑或另一玩家所控制的角色进行格斗的游戏。按呈画技术可再分为2D 和3 D 两种, 2D 格斗游戏有著名的《街霸》系列、《侍魂》系列、《拳皇》系列等; 3D 格斗游戏如《铁拳》《高达格斗》等

7. STG= Shooting Game :射击类游戏
这里所说的射击类,并非是类似《VR 特警》的模拟射击(枪战),而是指纯的飞机射击,由玩家控制各种飞行物(主要是飞机〉完成任务或过关的游戏。此类游戏分为两种, 一叫科幻飞行模拟游戏( Science-Simulation Game ),以非现实的想象空间为内容,如《自由空间》《星球大战》系列等;另一种叫真实飞行模拟游戏( Real- Simulation Game ),以现实世界为基础,以真实性取
胜,追求拟真,达到身临其境的感觉, 如《Lockon ))系列、《DCS 》、《苏-2 7 》等等。

8. FPS=First Personal Shooting Game : 第一人称视角射击游戏
严格来说它是属于动作游戏的一个分支,但和RTS 一样,由于其在世界上的迅速风靡,使之展成了一个单独的类型,典型的有《使命召唤》系列、DOOM 系列、QUAKE 系列、《虚幻》、《半条命》等

9. PZL=Puzzle Game :益智类游戏
Puzzle 的原意是指以前用来培养儿童智力的拼图游戏,引申为各类有趣的益智游戏,总的来说适合休闲,最经典的嘛~就是大家耳熟能详的《俄罗斯方块》。

10. RCG ( RAC ) =Racing Game : 竞速游戏
在电脑上模拟各类赛车运动的游戏,通常是在比赛场景下进行,非常讲究图像音效技术,往往是代表电脑游戏的尖端技术。惊险剌激, 真实感强,深受车迷喜爱,代表作有《极品飞车》、《山脊赛车》、《摩托英豪》等

11 . CAG=Card Game : 卡片游戏
玩家操纵角色通过卡片战斗模式来进行的游戏。丰富的卡片种类使得游戏富于多变化性,给玩家无限的乐趣,代表作有著名的《游戏王》系列,包括卡片网游《武侠Online》,从广意上说《王国之心》也可以归于此类。

12. TAB=Table Game : 桌面游戏
顾名思义,是从以前的桌面游戏脱胎到电脑上的游戏,如各类强手棋(即掷假子决定移动格数的游戏),经典的如《大富翁》系列。棋牌类游戏也属于TAB ,如《拖拉机》《红心大战》《麻将》等等。
13. MSC=Music Game ·音乐游戏
培养玩家音乐敏感性,增强音乐感知的游戏。伴随美妙的音乐,有的要求玩家翩翩起舞,有的要求玩家手指体操,例如大家都熟悉的跳舞机就是个典型,目前的网游《劲乐团》等等也属其列。
14. SPG = Sports Game :体育类游戏
SPG 模拟各种体育赛事的游戏。比如《实况足球》系列、<NBA Live》系列等等。

1.6 游戏开发中图形API 的概念

游戏开发的学习过程中,肯定会和图形API 打交道。这里我们只须知道,图形API 就是方便我们在计算机上绘制出图形来的工具包就可以了。对于图形API ,通常会涉及到的有这些

  • GDI/GDI+ 
  •  Direct3D 
  •  OpenGL 
  •  Direct2D
  •  DirectDraw

从相似的名称中我们就可以看出来, Direct3D 、Direct2D 和DirectDraw 这三者是同门师兄, 都是DirectX 大家族中的一份子。目前Direct3D 就像帮派掌门人一样风光无限, Direct2D却是稚嫩未开化的刚上位的二弟子, 而悲剧的DirectDraw 只能沦为跟不上时代老不中用的泛泛之辈。

1. GDI/GDI +一瞥
GDI 是微软公司设计的一套API , 是风靡全球的Windows 操作系统的三大核心部件(也称“子系统”)之一。GDI 在Windows 操作系统中的地位非常地高, 它掌管了所有显像设备的图像显示及输出功能,如果缺少它, Windows 操作系统就不可能有如今这么美观漂亮的图形操作界面了。
GDI+可以理解为GDI 的一个技术升级版,在很多方面都添加了GDI 不曾有过的新功能。但是,GDI+由于是在GDI 的基础上再次开发的,比GDI 更加高层,也就是说离底层硬件更远, 所以执行起来需要“跑更远的距离”,所以绘图效率远不如GDI 。GDI+说白了其实就是在GDI 的基础上进行的再封装,用功能换性能;

2 . Direct3D 一瞥
Direct3D C 简称: D3D )是微软公司在Microso位Windows 操作系统上所开发的一套3D 绘图编程接口,是DirectX 的一部分,目前广为各家显示卡所支持。与OpenGL 同为计算机图形API 的两大顶梁柱。
3 . OpenGL 一瞥
OpenGL 是个定义了一个跨编程语言、跨平台的程序接口。OpenGL 定位为专业图形处理,英文全称是“ Open Graphics Library ” , 意为“ 开放的图形程序接口”  OpenGL 的历史可以追溯到上个世纪90 年代初, 标准诞生之后它一直占据主导地位。微软的DirectX 出现的时间比OpenGL 来得晚, 但就在最近数十年, OpenGL 因发展迟缓而被DirectX 反超。

4. Direct2D 一瞥
Direct2D 是微软用来取代DirectDraw 以及GDI/GDI+等图形API 的新技术, 主要提供2D动画的硬件加速, 目前只支持Windows Vista SP2 、Windows 7 以及Windows 8 及以上。Direct2 D 技术架构于Direct3D 10.1 API之上,能够通过硬件加速功能来建立2D 图形, 而且完全支持透明和Alpha 棍合。Direct2D 也支持软件光栅化( Software rasterizer ),就算在显卡不支持硬件加速情况下, Direct2D 还可以使用软件方式来绘图, 而且效果优于GDI 。
需要提出的是, Direct2D 目前算是新技术,全球范围内对它的使用和研究都非常少。

5. DirectDraw -瞥
微软在DirectX 初期版本中发布了DirectDraw , 为广大开发者提供了一个比GDI 层次更高、功能更强、操作更有效、速度更快的应用程序图形引擎,与此同时,也努力使其保持了设备无关的优良特性。
不过现在只能用明日黄花来形容DirectDraw 了, 不推荐读者学习和使用。它早在10 多年前的DirectX8 . 0 发布之时就被微软抛弃, 实在是过时了。


1. 7 游戏编程学习路线总结

Windows游戏编程从零开始的学习路线,这个路线可以分为如下几个阶段:
• 第  l   步: 打牢C++编程语言基础。
• 第 2  步: 学习Windows API 与Windows 与生俱来的图形引擎GDI。注意这一步学习适量就可以了, Windows API 这边主要学习窗口的创建相关的内容, GDl 主要学习如何贴图、贴图的技巧、后备缓冲区思想等一些内容。学完这些内容,可以用GDI 开发出一些小游戏了。
• 第 3  步:学习三维图形API 并了解计算机图形学知识。DirectX 和OpenGL 选择其一,目前PC 游戏市场以DirectX 为主流,推荐学习DirectX。这是迈向三维游戏编程的第一步,打好基础非常地重要.
• 第 4  步:学习三维游戏引擎。推荐选择一款开源的游戏引擎重点突破.
• 第 5  步:学开源的游戏(引擎)源码,比如QUAKE3, DOOM 等等。
学到第4 步和第5 步,就有两条不同的路走了, 是选择开发游戏引擎,还是选择开发三维游戏。
对于本书的所讲范围,是上文介绍到的学习游戏编程路上最易走弯路的第2 步与第3 步,即适量学习Windows API 知识,
Windows 与生俱来的图形引擎GDI ,以及学习三维图形API 一一一DirectX 。

1.8 章节小憩

作为打酱油的序篇,必不可少地需要给大家介绍一些游戏开发的周边知识,让大家对游戏开发有一个大概的了解。这一章说白了其实很多都在讲游戏相关背景知识,没有实际的技术含量,因为一句代码都没有。


原创粉丝点击