模拟养成类手机游戏框架开发及应用开题报告
2020-04-07 10:14:28
1. 研究目的与意义(文献综述)
自苹果公司于 2007 年6 月发布iphone 手机以来,新一代智能手机以惊人的速度爆发和增长。而安装有 google android 操作系统的智能手机也在进两年呈现一种爆发性增长的态势。最新的数据显示,android 和ios 在美国市场已经瓜分了接近50%市场的份额;在欧洲和中国,android 和 iphone/ipad 也是人们相互追捧的对象,它们也开始逐渐占据移动设备的市场。根据业内人士的分析,今年 android 和 ios依然会保持较高速度的增长。另一方面,随着3g 技术的普及,使得人们可以随时随地享受较好的互联网接入体验。在较高网速的支持下,在移动设备上的娱乐和应用体验得到极大的增强。越来越多的人开始智能手机、平板设备作为自己处理一些日常工作的设备。移动互联网的时代悄然降临。
乘着新一代智能手机迅猛发展的春风,基于 ios 和 android 的游戏也得到了飞一般的增长。和传统手机以及先前的智能手机不通,以iphone 为代表的新一代智能手机有着无以伦比的优势。它们拥有更好的处理能力,优异的图像性能和极大的存储空间。不少公司也因此挖到了新时代移动娱乐领域的第一桶金。rovio凭借着angry birds 从 app store 上已经获得了至少 1700 万美元的收益,而它们在google android market 上每个月的广告收入也突破了100 万美元。随着 ios 和android 的进一步普及和增长,移动设备上的游戏会有这更广阔的市场前景。如何在移动设备上游戏新一轮爆发之中占得有利地位,获得成功,是不少创业公司不得不研究的课题。
不同于一般的应用程序开发,游戏程序在开发上有着互通的共性,不管它有着何种的界面都要进行基本的输入处理、更新逻辑、画面渲染等等,在这之间还包含着复杂的运算以保证游戏符合一定的物理逻辑,这些共通的工作如果全交给游戏引擎处理,就能将开发者的双手解放出来,专心于自己的游戏内容,而不是在制作游戏之前就被基本框架绊住了脚。所以有一个较好的游戏引擎,对保证游戏开发的进度、质量有着重大的意义。
2. 研究的基本内容与方案
2.1基本内容与目标
本文主要讨论一套面向Android的游戏框架的设计和实现,它能够解决游戏开发中位于底层的基本工作。如:资源加载、输入处理、更新逻辑、画面渲染,以及物理引擎的实现。
还将使用制作完成的这款游戏框架开发一款模拟养成类游戏。模拟养成类游戏属于模拟游戏的分支。“养成”是模拟养成游戏的核心元素。玩家需要在游戏中培育对特定的对象(人或动物),并使其获得成功。玩家可在其中获得成就感。游戏本身逻辑的具体实现在游戏框架中涉及不多,这主要是开发游戏的工作,而不是游戏框架的设计,目前先暂作了解。
2.2技术方案
游戏框架的核心就是游戏循环(game loop)。游戏循环是一个代码块,在整个游戏生命期内持续运行,每次迭代都执行两项重要任务:首先,它更新游戏逻辑、移动角色、处理碰撞等等。其次,它不断地渲染图像到屏幕上,与之密切相关的概念就是帧速率(FPS),指的是为了产生动画而在屏幕上替换图像的速率,又称渲染速率。游戏框架基本结构如下,见图1:
在游戏运行时,会有很多个界面,玩家可能在主菜单界面、设置界面、游戏过程界面之间进行跳转,为了将这类功能添加到框架中,相应的为每个界面创建一个类,并将之定义为状态,每个状态类都应该共用一个通用的结构,以便特定的时刻能方便的调用处理相关功能的方法。这样在游戏循环不断运行的时候,游戏状态也随着玩家的输入而变化,但更新和渲染等操作仍是统一的。现在细化游戏循环中的有关于状态的结构细节,见图2:
这里的其他状态包含了游戏过程状态、游戏结束状态、设置状态等。而所谓的状态循环指的就是循环的具体流程,由于不同状态也遵循统一流程,所以用状态循环代称之。其具体结构如下,见图3:
整个游戏循环就是在上面这样几步基本步骤中进行的,不论游戏处于哪个状态。当然,游戏的主要部分集中在游戏过程状态的状态循环内,这也是游戏开发者需要关注的部分。
此外设计游戏框架,我们将设计如下这些类,主要分为4个部分:
(1)主类:
GameMainActivity:游戏的起始点,包含GameView的Activity。
GameView:游戏的核心类,包含游戏循环,并且拥有启动和退出游戏的方法。
Assets:方便的资源类,允许我们快速加载和图像和声音文件。
(2)状态类:
State:游戏状态类,用于表示游戏运行的状态,每个状态代表一个界面。也可以通过继承表示游戏中其他方面的状态。
LoadState:加载状态,处理游戏加载资源时的工作,是游戏的初始状态。
MenuState:欢迎界面,显示游戏的相关信息,并可以导航到其他状态,如GameState(游戏主要逻辑的实现)。
(3)工具类:
InputHandler:监听用户触摸事件,并分派给不同状态类以处理这些事件。
Painter:绘制类,允许我们绘制多样的图形。
(4)动画类:
Frame:动画帧类,实现动画的基本部分,包含了一个图像及其持续时间。
Animation:动画类,相关帧的集合,持有多个帧组成的数组,并使用游戏循环的增量值来更新动画。
3. 研究计划与安排
1-3周:查阅相关文献资料,提交开题报告,并完成英文文献翻译;
4-6周:系统结构设计、实现基本的游戏循环;
7-9周:完成游戏中的数学与物理运算的实现(碰撞检测与几何计算等);
4. 参考文献(12篇以上)
[1]吴亚峰,苏亚光,于复兴.android游戏开发大全.人民邮电出版社,2015.
[2]benediktdietrich,samarjit chakraborty. lightweight graphics instrumentation for gamestate-specific power management in android[j]. multimedia systems,2014,20(5).
[3]ernest·adams(美).游戏设计基础.机械工业出版社,2017.9