180 likes | 279 Views
第十章 计算机游戏. Shan dong Economics University. 一、 PC 技术演进. 第一浪潮是 PC 的问世与普及,曾几何时,比尔 · 盖茨当初“让 PC 走上每一个办公桌面”的梦想早已成为现实; 第二次是互联网的出现, PC 由单机向联网电脑过渡; 如今我们正面临第三次技术革命,其标志是 PC 向“ 3C + E” 演变,即 PC 从单纯的个人电脑或联网电脑向个人计算( Computing )、通信( Communication )、控制平台( Control )及娱乐( Entertainment )中心的综合功能转变。
E N D
第十章 计算机游戏 Shan dong Economics University
一、PC技术演进 • 第一浪潮是PC的问世与普及,曾几何时,比尔·盖茨当初“让PC走上每一个办公桌面”的梦想早已成为现实; • 第二次是互联网的出现,PC由单机向联网电脑过渡; • 如今我们正面临第三次技术革命,其标志是PC向“3C+E”演变,即PC从单纯的个人电脑或联网电脑向个人计算(Computing)、通信(Communication)、控制平台(Control)及娱乐(Entertainment)中心的综合功能转变。 • 第一次和第二次革命主要体现为工具和手段的革命,而且是同内容-服务相整合的新型应用。3C是技术-功能性转变,E是内容-服务性转变。PC第三次浪潮最重要的变化就是内容服务的突显,PC成为人类未来生活中的娱乐和应用中心。
二、网络游戏发展史 • “网络游戏”也就是人们一般所指的“在线游戏”,是通过互联网进行、可以多人同时参与的电脑游戏,通过人与人之间的互动达到交流、娱乐和休闲的目的。在互联网(局域网)技术出现之前,电子游戏都可以归于单机版游戏,即“人机对战”游戏,或最多是双人对战游戏。而随着互联网技术的出现,通过连接游戏服务器,上百、上千、乃至上万的游戏玩家同时连线娱乐成为了现实,这就大大增加了游戏的互动性、真实性,丰富了电子游戏的内涵。 • 1. 第一代网络游戏:1969年至1977年 • 背景:由于当时的计算机硬件和软件尚无统一的技术标准,因此第一代网络游戏的平台、操作系统和语言各不相同。它们大多为试验品,运行在高等院校的大型主机上,如美国的麻省理工学院、弗吉尼亚大学,以及英国的埃塞克斯大学。
游戏特征:1. 非持续性,机器重启后游戏的相关信息即会丢失,因此无法模拟一个持续发展的世界;2. 游戏只能在同一服务器/终端机系统内部执行,无法跨系统运行。 • 第一款真正意义上的网络游戏可追溯到1969年,当时瑞克·布罗米系统编写了一款名为《太空大战》(SpaceWar)的游戏,游戏以八年前诞生于麻省理工学院的第一款电脑游戏《太空大战》为蓝本,不同之处在于,它可支持两人远程连线。 • 2.第二代网络游戏:1978年至1995年 • 背景:一些专业的游戏开发商和发行商开始涉足网络游戏,如Activision、Interplay、Sierra Online、Stormfront Studios、Virgin Interactive、SSI和TSR等,都曾在这一阶段试探性地进入过这一新兴产业,它们与GEnie、Prodigy、AOL和CompuServe等运营商合作,推出了第一批具有普及意义的网络游戏。
游戏特征:1、网络游戏出现了“可持续性”的概念,玩家所扮演的角色可以成年累月地在同一世界内不断发展,而不像PLATO上的游戏那样,只能在其中扮演一个匆匆过客。2、游戏可以跨系统运行,只要玩家拥有电脑和调制解调器,且硬件兼容,就能连入当时的任何一款网络游戏。游戏特征:1、网络游戏出现了“可持续性”的概念,玩家所扮演的角色可以成年累月地在同一世界内不断发展,而不像PLATO上的游戏那样,只能在其中扮演一个匆匆过客。2、游戏可以跨系统运行,只要玩家拥有电脑和调制解调器,且硬件兼容,就能连入当时的任何一款网络游戏。 • 1982年,约翰·泰勒和凯尔顿·弗林组建Kesmai公司,这家公司在网络游戏的发展史上留下了不少具有纪念意义的作品,如《凯斯迈之岛》。1984年,马克·雅克布斯组建AUSI公司(《亚瑟王的暗黑时代》的开发者Mythic娱乐公司的前身),并推出游戏《阿拉达特》(Aradath),游戏的收费标准为每月40美元,这是网络游戏史上第一款采用包月制的网络游戏。
3.第三代网络游戏:1996年至今 • 背景:越来越多的专业游戏开发商和发行商介入网络游戏,一个规模庞大、分工明确的产业生态环境最终形成。人们开始认真思考网络游戏的设计方法和经营方法,希望归纳出一套系统的理论基础,这是长久以来所一直缺乏的。 • 游戏特征:“大型网络游戏”(MMOG)的概念浮出水面,网络游戏不再依托于单一的服务商和服务平台而存在,而是直接接入互联网,在全球范围内形成了一个大一统的市场。 • 《子午线59》本应是一款划时代的作品,可惜发行商3DO公司在决策过程中出现了重大失误,在游戏的定价问题上举棋不定,面对《网络创世纪》这样强大的竞争对手,先机尽失,“第一网络游戏”的头衔终被《网络创世纪》夺走。《网络创世纪》于1997年正式推出,用户人数很快即突破10万大关。
2007 年全球网络游戏产业快速发展,根据艾瑞的研究分析,产业规模达到81亿美元,比2006 年增长28%
2000年中国网络游戏市场规模仅为0.3亿元,2001年的市场规模为3.1亿元人民币,2002年以高达213.8%的增加率,实现了9.1亿元的市场规模,2003年接近20亿元,2004年则达到36亿元。2007年网络游戏市场销售收入达105.7亿元人民币,比2006年同比增长61.5%。2000年中国网络游戏市场规模仅为0.3亿元,2001年的市场规模为3.1亿元人民币,2002年以高达213.8%的增加率,实现了9.1亿元的市场规模,2003年接近20亿元,2004年则达到36亿元。2007年网络游戏市场销售收入达105.7亿元人民币,比2006年同比增长61.5%。
三、游戏开发基础 1. 3D游戏的类型 • (1)动作游戏 (2)冒险游戏 (3)角色扮演游戏 • (4)迷宫和谜语游戏 (5)模拟游戏 • (6)体育游戏 (7)战略游戏 2. 游戏平台 • (1)PC机游戏 Windows/Linux/Mac OS • (2)家庭游戏机 Sony PlayStation • (3)PDA 如掌上电脑、手机等 3. 3D游戏的元素 • 3D游戏在体系结构上包含几个互不相关的元素 -引擎 -脚本 -GUI -模型 -纹理 -音频 -支持底层
User Input Graphics Audio Event,Timing,&Synchronization Networing Scene Graph Scripting Objects&Resource File I/O 脚本 • 游戏引擎提供了游戏开发环境中大多数重要功能 • 3D场景渲染 • 网络链接 • 制图 • 脚本编程 游戏引擎的元素 • 引擎提供的代码可以完成所有艰难的工作,如图形渲染、网络连接等,我们通过脚本把这些功能组合起来,如果不使用脚本的编程功能,难以创建复杂而富有特点的游戏 • 脚本把游戏引擎各个部分组合起来,使游戏具有可玩性,并使游戏遵循一定的规则。
模型、纹理 • 图形用户界面(GUI)一般是指各种图象和控制游戏视觉外观并接受用户控制输入的代码的组合。 • 如飞行仪表盘 - 游戏主菜单 - 设置和选择菜单 • 对话框 -各种游戏进行中的消息系统 • 游戏中每个角色和场景 • 声音和音乐 • 声音在3D游戏中可以产生前后联系的情趣 • 音乐可以调节情绪 • 支持底层结构 1、web站点 2、自动更新 3、支持论坛 4、管理工具 5、数据库
4. 3D引擎 • OpenGL,Java 3D,DirectX • OpenGL最初是SGI公司为其图形工作站开发的可以独立于窗口操作系统和硬件环境的图形开发环境,前身是SGI公司为其图形工作站设计的一个图形开发软件库IRIS GL(Graphics Library); • 其目的是将用户从具体的硬件系统和操作系统中解放出来,可以完全不去理解这些系统的结构和指令系统,只要按规定的格式书写应用程序就可以在任何支持该语言的硬件平台上执行。 • SGI有针对性地对GL改进,特别是扩展了GL的可移植性,使之成为一个跨平台的开放式图形编程接口,这就是OpenGL。 • 做为图形硬件的软件接口,OpenGL由几百个指令或函数组成。对程序员而言,OpenGL是一组绘图命令的API集合 。利用这些API能够方便地描述二维和三维几何物体,并允许用户对对象实施操作以便把这些对象绘制(Render)到帧缓冲区(Frame buffer)上。
Java3D是由SUN公司推出的、面向Internet的三维动画程序语言。Java3D是由SUN公司推出的、面向Internet的三维动画程序语言。 • 通过在网页上插入用Java3D编写的Applet,就能让浏览网页的用户感受到逼真的三维动画效果。 Java 3D是对Java的一个用来显示三维图形的扩展。用Java 3D编写的程序可以运行在很多不同类型的计算机或互联网上。 • Java 3D类库提供了比其它多数图形库更简单的接口,但仍有足够的能力制作不错的游戏和动画。Java 3D建立在DirectX和OpenGL这些已有的技术上,所以程序运行并不是你所想像的那样慢。并且Java 3D中也可以加入使用诸如TrueSpace和VRML这些3D模型包创建的物件。 • Java3D API是Sun定义的用于实现3D显示的接口。3D技术是底层的显示技术,Java3D提供了基于Java的上层接口。Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。
DirectX是微软发布的一个多媒体 API,它提供标准接口来与图形卡和声卡、输入设备等进行交互。如果没有这组标准 API,您需要为图形卡和声卡的每个组合和每种类型的键盘、鼠标和游戏杆编写不同的代码。DirectX 从具体的硬件中抽象出来,并且将一组通用指令转换成硬件的具体命令。 • DirectX 首次出现在 1995 年,当时称为“GameSDK”。在其原始形式中,针对的目标是使用 C 和 C++ 的开发人员。只有在 2002 年 12 月该 API 的第一个托管版本 (9.0) 发布以来,才可以使用 C# 或 VB.NET 开发 DirectX。 • 计算机图形学己进入三维时代,三维图形无所不在。3D游戏、计算机动画和虚拟现实已经成为近年来计算机图形学的三大热门话题,而这三大热门话题的技术核心均为三维图形。 • 由于三维图形涉及到许多算法和专业知识,要快速的开发三维应用程序是有一定困难的。当前在微机上编写三维图形应用一般使用OpenGL、Java3D或DirectX,虽然OpenGL、Java3D或DirectX在三维真实感图形制作中具有许多优秀的性能,但是在系统开发中直接使用它们仍存在一些缺点:
1、都是非面向对象的,设计和操作场景中的对象比较困难。1、都是非面向对象的,设计和操作场景中的对象比较困难。 • 2、主要使用基层图元,在显示比较复杂的场景时编写程序相对困难。 • 3、没有与建模工具很好的结合。 • 4、缺乏对一些十分重要的关键技术如LOD(Level of Detail)、动态裁剪等的支持。 • 基于以上情况,应用程序开发人员非常需要一个封装了硬件操作和图形算法、简单易用、功能丰富的三维图形开发环境,这个环境可以称作三维图形引擎。 • 3D引擎 • 一个封装了硬件操作和图形算法、简单易用、功能丰富的三维图形开发环境,这个环境可以称作三维图形引擎。表明在整个系统中的核心地位。也可以称之为“支持应用的底层函数库”或者说是对特定应用的一种抽象。三维引擎需要解决场景构造、对象处理、场景渲染、事件处理、碰撞检测等问题。
三维游戏引擎是用户用来开发游戏的软件工具和数据文件的集合,是一个处理游戏底层技术的平台! 三维游戏引擎技术把游戏程序中可以重复利用的部分,用模组化技术进行规格化与最佳化以利于重用! 开发者可以直接使用引擎提供的KJL 来进行游戏开发,从而大大缩短游戏开发时间! • 现在,三维游戏引擎已经发展为一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节! 发展三维游戏引擎的目的是要简化游戏制作的复杂度,缩短开发时间,降低制作成本。 • 游戏引擎是用于控制所有游戏功能的主程序,从计算碰撞、物体与物体的相对位置,到接受玩家的输入,怪物的思考以及游戏事件的触发,以及按照正确的音量输入声音。在游戏开发人员看来,游戏引擎是一套封装好的应用程序开发包;在游戏引擎开发人员来看,游戏引擎是具备一定功能的软件系统。从游戏玩家的角度:游戏引擎是封装起来、不可见的游戏内部表示。 • 5.游戏引擎