虽然,现在使用游戏引擎开发有一段时间了。而当初刚自学游戏时,并没有太多地接触游戏引擎,在android游戏开发这块是自己通过编写一些简单的引擎分层来实现一个简单游戏的。现在回想起来,那种做法真的比较麻烦,比较累。可能这就是游戏引擎出现的意义所在吧,不过怎么说都好,对于一个新人来说学习一下引擎的一些层次和简单实现还是有好处的.
当初自学开发时对引擎层次的理解是这样的,我大致把游戏分成了游戏系统(内容)层、游戏功能层、引擎内核层。下面就简单地说一下这几层的内容吧.
一、游戏系统层
1、动画系统。
2、精灵系统.精灵包含了图片、数值、碰撞范围、属性的一个数据集合的整体。
3、事件系统,是一潜在系统。事件是游戏物体之间交流的信息统称.
4、场景、菜单、声音、任务、规则、动作.....
二、游戏功能层(为了展现游戏内容而存在)
1、用户操作处理/用户交互模块:接收并处理玩家的操作,处理模块具备处理并发事件的能力.
2、文字处理模块:提供多种字体的支持和文字处理的操作.
3、资源处理模块:提供了对游戏中央所需文件和引擎自定义文件的操作接口,包含对文件的压缩、加密等处理.
4、多媒体处理模块:支持播放的同时,还为开发者提供了暂停、中断、片断播放和同时播放多个资源文件的功能.
5、高级绘制模块:提供了多个游戏中通用的界面、按钮、列表、输入框的绘制
6、多国语文模块:提供本地化.
7、游戏数据:除了定义数据外,还提供查找、排序、比对、保存等功能.
三、引擎内核层
1、渲染器:强劲与否是评定游戏引擎的好坏的决定因素(核中之核) 刷新率:指一秒的单位时间内游戏画面刷新的速度
2、生命周期:游戏从开始到结束的整个过程,每个线程循环里,游戏进行逻辑运算、画面更新、处理玩家操作.引擎是这条线程的创造者和管理者.
3、引擎配置接口,当游戏初始化时,按照某种事先配置好的方式来启动引擎.
4、单元测试,为了将来在游戏开发过程中提供单元测试的泛型做准备.
5、内存分配:为游戏代码中所有的内在分配申请做统一的管理,防止产生内存泄漏问题
6、字符串处理,定义引擎中程序对字符处理的统一方式,方便游戏产品支持多国语文版本。
7、数据格式,定义引擎将要使用的基本数据类型和统一的数据结构。
8、文件系统,需要提供可以对文件进行操作的接口。
9、随机种子,为引擎程序提供随机数种子
10、数学运算库,提供较为复杂的数学运算接口
11、多媒体 对声音、视频资源的支持 使引擎能够播放标准格式的音频和视频文件
12、异常处理,为游戏开发提供统一的异常处理机制
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。