当前位置:文档之家› 2D游戏引擎的设计与实现-毕业设计

2D游戏引擎的设计与实现-毕业设计

2D游戏引擎的设计与实现
中文摘要
如今的游戏开发都离不开游戏引擎,游戏引擎是将游戏开发中通用的功能都封装起来并通过实现一个接口让开发者简单的调用此接口便可以实现想要的功能。

如今市面上有众多开源或不开源的2D游戏引擎,它们各有优缺点,设计方式也大同小异。

本文以开发2D单机游戏的技术要点为主题,编程语言采用c++,将运行效率高为目标研究设计,实现简单的2D游戏引擎。

由于一个完整的引擎所需的功能和工具比较多,所以,论文包括窗口创建和系统消息处理模块设计、渲染系统设计、GUI系统设计、音频系统设计、数据库读写设计、扩展类设计,并进行引擎性能测试和使用。

关键词:2D游戏引擎GUI 渲染系统
Chinese Abstract
Nowadays, the development of game can’t do without game engines,which encapsulate the general function while developing games and developers simply call the interface to realize the function which they want by achieving a interface.At present, there are too many open source or closed source 2D game engines.And not only do they have advantages and shortcomings,but also they are similar to designing style .
This text tells that programming language uses C++ and designers set the goal of high operational efficiency to design as well as realize a simple 2D game engine with the topic of developing 2D singe-player games’technical points .Due to a complete engine need so many functions and tools that the paper including the creation of Window and the design of system message processing module ,rendering system ,GUI system ,audio system, database’ reading and writing as well as extension.The last,designers would go ahead with testing and using engine performance.
Key words:2D game engines GUI Rendering system
目录
中文摘要 (II)
Abstract (II)
1 绪论 (1)
1.1游戏引擎的背景 (1)
1.2游戏引擎设计的内容 (1)
1.3游戏引擎设计的意义 (1)
1.4本章小结 (1)
2 游戏引擎设计的相关技术 (2)
2.1 编程语言的选择 (2)
2.2 DirectX在游戏引擎设计中的应用 (2)
2.3 OpenGL在游戏引擎设计中的应用 (3)
2.4 DirectX和OpenGL的区别 (4)
2.4本章小结 (4)
3 引擎的设计实现 (5)
3.1引擎的整体结构 (5)
3.2开发平台及项目的创建 (5)
3.3窗口创建和系统消息处理模块设计 (6)
3.4渲染系统设计 (8)
3.5 GUI系统设计 (17)
3.6 音频系统设计 (19)
3.7 Sqlite数据库读写 (21)
3.8 扩展类设计 (23)
3.9本章小结 (27)
4 引擎性能测试和使用 (28)
4.1引擎性能测试 (28)
4.2实例1:引擎创建 (30)
4.3实例2:图像显示 (32)
4.3.1精灵显示 (32)
4.3.2动画显示 (32)
4.4实例3:GUI使用 (34)
4.5实例4:音频使用 (37)
4.6实例5:数据库使用 (39)
4.7本章小结 (42)
结论 (43)
参考文献 (44)
附录 (45)
致谢 (59)
1绪论
论文围绕开发2D单机游戏所需要的技术,并以运行高效为目的研究设计引擎的为模块。

论文的研究内容主要是引擎的渲染、GUI、音频、数据库读写等四个方面的内容。

各章节框架如下:
第一章主要讨论游戏引擎的产生的背景、引擎设计的内容和设计的意义。

第二章主要讨论游戏引擎设计所需要的相关技术,并在多种技术中选择比较合理和合适的技术来研究设计此引擎。

第三章是引擎的各个模块的具体设计和实现,通过研究和比较运行效率来得出最佳的设计方式。

第四章是引擎的整体性能测试和引擎的使用实例。

1.1游戏引擎的背景
简单地说,游戏引擎就是“用于控制所有游戏功能的主程序”,从计算碰撞、物理系统和物体的相对位置到接受玩家的输入,以及声音的输出等等功能,都是游戏引擎需要负责的事情。

它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们有序地工作。

因此,无论是2D游戏还是3D游戏,无论是角色扮演游戏、即时策略游戏、冒险解谜游戏还是动作射击游戏,哪怕是一个小游戏,都有一段起控制作用的代码。

经过不断地进化,如今的游戏引擎已经发展为由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节[1]。

1.2游戏引擎设计的内容
游戏引擎分为2D和3D,由于我们只讨论2D所以就撇开3D不说了。

2D引擎的设计涉及的方面很广,比如有渲染系统、物理系统、文件系统、GUI系统、音效系统、网络系统、AI系统等等。

此论文只简单研究和设计渲染、GUI、音效、数据库读取。

1.3游戏引擎设计的意义
游戏引擎的出现使整个游戏开发周期变短了,相比以前没有游戏引擎时现在开发一个新游戏需要投入的时间、精力、资金和人力要少的很多。

游戏引擎是带动整个游戏产业发展的必不可少的一环。

一款款设计优秀的引擎不仅可以使制作出来的游戏运行顺畅、画面精致,更重要的是它能让玩家享受到游戏的乐趣,而不是因为游戏的不流畅,导致游戏体验效果不佳。

1.4 本章小结
本章简述了游戏引擎产生的背景和设计的内容之广泛,由于引擎的内容太广泛所以此论文只研究讨论和设计渲染、GUI、音频、数据库读取方面的内容。

2 游戏引擎设计的相关技术
2.1 编程语言的选择
进行程序设计,必须用一种计算机语言作为工具,否则只是纸上谈兵。

可供选择的语言很多,各有特点和应用领域。

C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,既适于编写系统软件,又能方便地用来编写应用软件[2]。

现在的游戏引擎大都会选择c/c++混合汇编来开发。

如图2-1所示,论文选择的的编程语言是c++,因为c是c++的子集。

c++用途很广泛用的人也很多。

图2-1 TIOBE 2016年8月编程语言排行榜
2.2 DirectX在游戏引擎设计中的应用
DirectX是微软公司开发的一套功能丰富的底层API,其功能涵盖了对2D/3D图形加速的支持、对各种输入设备的控制,以及对声音和音乐输出的混音和采样、对多玩家网络游戏的控制、对各种多媒体流模式的控制等[3]。

遗憾的是DirectX只能运行在Windows平台和微软的XBOX平台上,是套不能跨平台的多媒体编程接口。

相关主题