游戏引擎是一个处理游戏底层技术的平台,使用游戏引擎,大大缩短游戏开发时间,因此引擎是游戏特有的技术。
本文将引擎用游戏程序的方法实现,整个程序是在eclipse环境下,利用java语言编写。程序主要采用了java语言中的键盘响应事件、多线程技术、外部文件引用等技术及算法。整个游戏程序类似于经典游戏超级玛丽,主要实现了加载地图并进行地图转换、加载背景音乐、玩家对游戏人物行走的控制、玩家对游戏人物跳跃及跳跃高度的控制、对敌人的进攻、拾取分数等功能。整个游戏界面比较美观,带有一定的趣味性,并通过以上功能来体现游戏引擎的功能。
主要通过对一个类似于超级玛丽的小游戏的设计制作,对游戏引擎的功能进行分析实现。游戏设计场景地图两个,玩家进入游戏后,可以通过键盘控制人物使人物在地图上前后移动,可以一定高度的跳跃,翻越障碍,对敌人进行踩踏攻击,拾取固定在地图上的分数,前进到地图{zh1}时碰触地图转换器进入下一地图。
游戏引擎相当于游戏的框架,框架打好后,关卡设计师、建模师、动画师可往里填充内容。游戏引擎是一个处理游戏底层技术的平台,使用游戏引擎,游戏开发人员可以不用花过多精力去处理系统架构、内存管理、图像绘制等一些底层的技术,可以直接使用引擎提供的api来进行游戏开发,从而大大缩短游戏开发时间,因此引擎是非游戏特有的技术。 引擎的另一重要功能是提供物理系统这可以使物体的运动遵循固定的规律,例如,当角色跳起的时候,系统内定的重力值将决定他能跳多高,以及他下落的速度有多快。子弹的飞行轨迹、车辆的颠簸方式也都是由物理系统决定的。碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个物体撞在一起的时候,这种技术可以防止他们相互穿过,这就确保模型撞在墙上时不会穿墙而过,因为碰撞探测会根据模型和墙之间的特性确定两者的位置和相互的作用关系,保证了游戏场景的真实性。引擎还负责玩家输入处理,处理来自键盘、鼠标、摇杆和其它外设的信号。代码实现了一个具备独立引擎功能的系统,游戏开发人员可以在这个引擎平台上进行各种不同的游戏的开发,而不需在底层处理上花费过多时间。[1]
1、物理、运动、效果
主要设计两种敌人,一种是在地面移动,另一种是在天空飞行,敌人全部按一定速度由右至左移动。
8、实现攻击功能。
引擎常常首先用软件做一次 “预混合”。当声卡最初问世的时候,有许多不同的混合方法。在 90%的声音情形中,依靠软件混合对你的帧速率没有真正产生太大的影响。现在的游戏是使用mp3格式的音轨,允许巨大11: 1的声音样本压缩,然而在送到声卡之前只花费cpu很少的时间解压缩。
3、网络和连线游戏环境
网络和连线游戏环境是网络游戏必备的。如今大多数真正有长久生命力的游戏都至少有一些连线成分。客户机是一台有效地运行游戏的机器,它仅仅是一个终端,服务器接受来自玩家的输入,并渲染服务器让它渲染的任何东西。
4、脚本系统
脚本是你xx控制着一个给定场景,建立玩家几乎总是没有控制的事件,游戏者 ‘沿着轨道’移动到一个给定地点,或者建立一个游戏玩家需要解决的情形。有一些不同类型的脚本系统可供程序员或者美术师使用,而且它用非常有条理和逻辑的思想恰当地做这些。{dy}种是简单的基于文本的,单线索的风格,就像程序员习惯的编码。第二种是允许多重线索和实际上允许可变情形。可变情形是当脚本开始时你实际上不能确知谁会出现在附近,但是你必须按这样的方式编写脚本以便任何人出现在附近它都将会工作。设计一个脚本系统最难的部分是知道何时该停止,控制复杂度也是相当的困难。
9、实现分数拾取功能。
人工智能如今正在逐渐变成关注的焦点之一,仅次于游戏引擎渲染能力的游戏开发领域。人工智能包括了全部的东西,从在tetris(俄罗斯方块)中决定哪一块新砖头掉落 (这很大程度上只是一个随机数产生器),一直到npc (none player character)的所有活动,人工智能定义主观之外的所有规则。
经过不断的进化,如今的游戏引擎己经发展为一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子{tx},从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节。
(1)物理系统:用于模拟现实生活中的物体物理运动的一个系统。
(2)碰撞检测:碰撞检测在游戏引擎中如此重要,原因是现实生活中随处都有碰撞的发生。
(4)输人与输出:提供给玩家与游戏交互的功能,这也是游戏与电影的区别。[3]
第二层是接口层,设定上层与底层的访问接口。
5、人工智能
第三层是游戏工具库,在这里提供了游戏开发的一些辅助工具,主要是封装了一些对底层实现的操作。它包括地图编辑器、脚本解析器、人物对话模块、角色类和物品类等等一些在游戏中用到的模块。
在玩家刚启动游戏时会看到带有“loading”“get ready”字样的图片从而做好游戏准备。
10、实现地图转换功能。
关键词:java;游戏引擎; 游戏设计
游戏启动后,自动转入全屏幕显示游戏。
7、实现敌人自动移动的功能。
使用方向键→、←来控制玩家任务前后的移动,使用空格键来控制玩家的跳跃。
4、实现游戏中加载声音的功能
采用接口技术的好处就是更新底层实现的时候,只要接口不被修改,那么就不需要改动上层代码,实现系统层次化结构提高了系统的可维护性与可重用性。
5、实现碰撞功能。
在遇到墙壁时不能通过,在与敌人碰撞时,无论是碰撞到敌人的左侧还是右侧,只要不是在踩踏状态下,玩家人物就会死亡。
6、实现重力功能。
玩家人物的跳越不是随意高度的,为了体现真实性,实现重力功能,使玩家人物在跳跃一定高度时自动落回地面。
2、实现全屏功能。
强大的物理系统是游戏引擎必备的,必须防止角色从里面掉落出去,并处理地板、斜坡、墙壁、门、以及移动平台。加之,正确地处理地心引力、速度变化、惯性和放置在世界里面的其它对象的碰撞。物理系统可以让游戏尽可能地逼真。检测墙壁,检测地板,在世界中处理和其他对象的碰撞。这些是现代游戏引擎的必备。先进的物理系统,可以在保证效率的前提下xx处理物理和运动学理论和公式,其中甚至包括流体力学。
2、声音系统、音频apis
3、实现由键盘控制玩家人物在游戏中进行前后移动和跳跃的功能。
使玩家一进入游戏就可以听见音乐声。
玩家可以控制人物拾取地图中的固定的分数。
1、实现欢迎动画功能。
当玩家控制人物碰触地图转换器时,可以迅速转换至下一个场景地图,从而使玩家继续游戏。
当遇到敌人时,玩家可以通过控制人物使其跳跃踩踏敌人,使敌人死亡。
(3)画影成像:这是游戏引擎一项必不可少的功能,否则在游戏中将看不到游戏的图像。
本文将引擎用游戏程序的方法实现,整个程序是在eclipse环境下,利用java语言编写。程序主要采用了java语言中的键盘响应事件、多线程技术、外部文件引用等技术及算法。整个游戏程序类似于经典游戏超级玛丽,主要实现了加载地图并进行地图转换、加载背景音乐、玩家对游戏人物行走的控制、玩家对游戏人物跳跃及跳跃高度的控制、对敌人的进攻、拾取分数等功能。整个游戏界面比较美观,带有一定的趣味性,并通过以上功能来体现游戏引擎的功能。
主要通过对一个类似于超级玛丽的小游戏的设计制作,对游戏引擎的功能进行分析实现。游戏设计场景地图两个,玩家进入游戏后,可以通过键盘控制人物使人物在地图上前后移动,可以一定高度的跳跃,翻越障碍,对敌人进行踩踏攻击,拾取固定在地图上的分数,前进到地图{zh1}时碰触地图转换器进入下一地图。
1.1.1 游戏引擎现状
电脑游戏作为一种娱乐方式越来越为人们所接受。对于电脑游戏来说,游戏引擎是用于控制游戏功能的主程序,如接受玩家控制信息的输人,选择合适的声音以合适的音量播放等。2d游戏或者3d游戏,不管游戏是怎样的形式 (是角色扮演游戏、即时策略游戏、冒险解谜游戏或是动作射击游戏)都有类似的起控制作用的代码。游戏引擎是对一些底层或者其它的开发技术进行抽象,提供游戏开发的统一接口,对资源、内存、动画、网络等方面进行管理,为游戏开发提供方便。游戏引擎实际上是一个解释器,游戏开发者写下的游戏代码由游戏引擎进行解释,{zh1}输出为一定的表现方式。早期的游戏开发效率较为低下,一方面是因为技术原因,另一方面是因为几乎每款游戏都要从头编写代码,造成了大量的重复劳动。渐渐地,一些有经验的开发者借用上一款类似题材的游戏中的部分代码作为新游戏的基本框架,以节省开发时间和开发费用。于是就慢慢产生了游戏引擎。游戏引擎相当于游戏的框架,框架打好后,关卡设计师、建模师、动画师可往里填充内容。游戏引擎是一个处理游戏底层技术的平台,使用游戏引擎,游戏开发人员可以不用花过多精力去处理系统架构、内存管理、图像绘制等一些底层的技术,可以直接使用引擎提供的api来进行游戏开发,从而大大缩短游戏开发时间,因此引擎是非游戏特有的技术。 引擎的另一重要功能是提供物理系统这可以使物体的运动遵循固定的规律,例如,当角色跳起的时候,系统内定的重力值将决定他能跳多高,以及他下落的速度有多快。子弹的飞行轨迹、车辆的颠簸方式也都是由物理系统决定的。碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个物体撞在一起的时候,这种技术可以防止他们相互穿过,这就确保模型撞在墙上时不会穿墙而过,因为碰撞探测会根据模型和墙之间的特性确定两者的位置和相互的作用关系,保证了游戏场景的真实性。引擎还负责玩家输入处理,处理来自键盘、鼠标、摇杆和其它外设的信号。代码实现了一个具备独立引擎功能的系统,游戏开发人员可以在这个引擎平台上进行各种不同的游戏的开发,而不需在底层处理上花费过多时间。[1]
1.1.2 游戏引擎的组成
基本的游戏引擎包括:渲染核心、内存管理、骨骼动画、帧动画、文件操作、物理库、网络库等等。1、物理、运动、效果
主要设计两种敌人,一种是在地面移动,另一种是在天空飞行,敌人全部按一定速度由右至左移动。
8、实现攻击功能。
引擎常常首先用软件做一次 “预混合”。当声卡最初问世的时候,有许多不同的混合方法。在 90%的声音情形中,依靠软件混合对你的帧速率没有真正产生太大的影响。现在的游戏是使用mp3格式的音轨,允许巨大11: 1的声音样本压缩,然而在送到声卡之前只花费cpu很少的时间解压缩。
3、网络和连线游戏环境
网络和连线游戏环境是网络游戏必备的。如今大多数真正有长久生命力的游戏都至少有一些连线成分。客户机是一台有效地运行游戏的机器,它仅仅是一个终端,服务器接受来自玩家的输入,并渲染服务器让它渲染的任何东西。
4、脚本系统
脚本是你xx控制着一个给定场景,建立玩家几乎总是没有控制的事件,游戏者 ‘沿着轨道’移动到一个给定地点,或者建立一个游戏玩家需要解决的情形。有一些不同类型的脚本系统可供程序员或者美术师使用,而且它用非常有条理和逻辑的思想恰当地做这些。{dy}种是简单的基于文本的,单线索的风格,就像程序员习惯的编码。第二种是允许多重线索和实际上允许可变情形。可变情形是当脚本开始时你实际上不能确知谁会出现在附近,但是你必须按这样的方式编写脚本以便任何人出现在附近它都将会工作。设计一个脚本系统最难的部分是知道何时该停止,控制复杂度也是相当的困难。
9、实现分数拾取功能。
人工智能如今正在逐渐变成关注的焦点之一,仅次于游戏引擎渲染能力的游戏开发领域。人工智能包括了全部的东西,从在tetris(俄罗斯方块)中决定哪一块新砖头掉落 (这很大程度上只是一个随机数产生器),一直到npc (none player character)的所有活动,人工智能定义主观之外的所有规则。
经过不断的进化,如今的游戏引擎己经发展为一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子{tx},从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节。
1.1.3 游戏引擎的功能
游戏引擎是一个很复杂的系统,在这个设计中主要涉及到了以下几项功能:(1)物理系统:用于模拟现实生活中的物体物理运动的一个系统。
(2)碰撞检测:碰撞检测在游戏引擎中如此重要,原因是现实生活中随处都有碰撞的发生。
(4)输人与输出:提供给玩家与游戏交互的功能,这也是游戏与电影的区别。[3]
1.2.1 游戏引擎开发采用的是三层结构模型
{dy}层是游戏引擎的基础,它包括图像处理系统,输人输出系统和音乐、音效系统。第二层是接口层,设定上层与底层的访问接口。
5、人工智能
第三层是游戏工具库,在这里提供了游戏开发的一些辅助工具,主要是封装了一些对底层实现的操作。它包括地图编辑器、脚本解析器、人物对话模块、角色类和物品类等等一些在游戏中用到的模块。
在玩家刚启动游戏时会看到带有“loading”“get ready”字样的图片从而做好游戏准备。
10、实现地图转换功能。
关键词:java;游戏引擎; 游戏设计
游戏启动后,自动转入全屏幕显示游戏。
7、实现敌人自动移动的功能。
使用方向键→、←来控制玩家任务前后的移动,使用空格键来控制玩家的跳跃。
4、实现游戏中加载声音的功能
采用接口技术的好处就是更新底层实现的时候,只要接口不被修改,那么就不需要改动上层代码,实现系统层次化结构提高了系统的可维护性与可重用性。
5、实现碰撞功能。
在遇到墙壁时不能通过,在与敌人碰撞时,无论是碰撞到敌人的左侧还是右侧,只要不是在踩踏状态下,玩家人物就会死亡。
6、实现重力功能。
玩家人物的跳越不是随意高度的,为了体现真实性,实现重力功能,使玩家人物在跳跃一定高度时自动落回地面。
2、实现全屏功能。
强大的物理系统是游戏引擎必备的,必须防止角色从里面掉落出去,并处理地板、斜坡、墙壁、门、以及移动平台。加之,正确地处理地心引力、速度变化、惯性和放置在世界里面的其它对象的碰撞。物理系统可以让游戏尽可能地逼真。检测墙壁,检测地板,在世界中处理和其他对象的碰撞。这些是现代游戏引擎的必备。先进的物理系统,可以在保证效率的前提下xx处理物理和运动学理论和公式,其中甚至包括流体力学。
2、声音系统、音频apis
3、实现由键盘控制玩家人物在游戏中进行前后移动和跳跃的功能。
使玩家一进入游戏就可以听见音乐声。
玩家可以控制人物拾取地图中的固定的分数。
1、实现欢迎动画功能。
当玩家控制人物碰触地图转换器时,可以迅速转换至下一个场景地图,从而使玩家继续游戏。
当遇到敌人时,玩家可以通过控制人物使其跳跃踩踏敌人,使敌人死亡。
(3)画影成像:这是游戏引擎一项必不可少的功能,否则在游戏中将看不到游戏的图像。
已投稿到: |
|
---|