手游《十万个冷笑话》精炼系统开发 学位论文.docx

上传人:b****1 文档编号:10744646 上传时间:2023-05-27 格式:DOCX 页数:49 大小:667.10KB
下载 相关 举报
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第1页
第1页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第2页
第2页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第3页
第3页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第4页
第4页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第5页
第5页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第6页
第6页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第7页
第7页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第8页
第8页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第9页
第9页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第10页
第10页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第11页
第11页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第12页
第12页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第13页
第13页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第14页
第14页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第15页
第15页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第16页
第16页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第17页
第17页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第18页
第18页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第19页
第19页 / 共49页
手游《十万个冷笑话》精炼系统开发 学位论文.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

手游《十万个冷笑话》精炼系统开发 学位论文.docx

《手游《十万个冷笑话》精炼系统开发 学位论文.docx》由会员分享,可在线阅读,更多相关《手游《十万个冷笑话》精炼系统开发 学位论文.docx(49页珍藏版)》请在冰点文库上搜索。

手游《十万个冷笑话》精炼系统开发 学位论文.docx

手游《十万个冷笑话》精炼系统开发学位论文

JIANGXIAGRICULTURALUNIVERSITY

本科毕业论文(设计)

题目:

手游《十万个冷笑话》精炼系统开发

学院:

软件学院

姓名:

段浩然

学号:

20111648

专业:

软件工程

班级:

软件1107

指导教师:

杨红云职称:

副教授

二0一五年四月

目录

摘要I

AbstractII

1绪论1

1.1概述1

1.2游戏精炼系统介绍1

1.3课题研究背景1

1.4系统开发目的2

1.5开发平台的选择2

1.6系统开发方法2

2相关技术介绍3

2.1CEGUI介绍3

2.1.1CEGUI简介3

2.1.2CEGUI的工作方式3

2.2Lua介绍5

2.2.1Lua简介5

2.2.2Lua的特性5

2.2.3Lua在游戏的作用6

2.3DirectX介绍6

2.3.1DirectX简介6

2.3.2DirectX功能6

3需求分析8

3.1可行性分析8

3.1.1技术可行性分析8

3.1.2经济可行性分析8

3.1.3法律可行性分析8

3.2系统需求分析8

3.2.1目标需求8

3.2.2系统性能需求9

3.2.3系统功能需求10

4数据库设计12

4.1数据库设计12

4.2概念模型设计(E-R图)12

4.3详细数据库设计13

4.3.1数据库表结构13

5系统概要设计16

5.1概述16

5.2系统菜单功能描述16

5.2.1招财系统模块16

5.2.2选择系统模块16

5.2.3背包系统模块17

5.2.4伙伴系统模块17

5.2.5装备系统模块17

6精炼系统详细设计18

6.1招财系统模块18

6.2选择系统模块20

6.3背包系统模块26

6.4伙伴系统模块28

6.5装备系统模块29

7测试与维护33

7.1系统测试33

7.2系统维护36

项目总结37

参考文献38

致谢39

 

摘要

在竞争日益激烈的手机游戏行业,一味的模仿并不能让游戏开发者在这个浪潮中站稳脚跟,只有迎合玩家的口味的同时,不断地推陈出新,构思新鲜的玩法,才能打动玩家,并为之支付相应的金钱。

本文分析了当前手机卡牌游戏的发展和现状,通过Lua等技术在Saturn游戏引擎的基础上开发了一套完整的游戏精炼系统。

本文着重描述了从需求分析、总体设计,到详细设计,再到系统实现的一个游戏新功能系统开发的全过程。

在需求分析部分,根据具体需要,对需求进行了细化的分析,并用流程图的方式为开发流程进行表示。

在总体设计部分,根据系统设计的一般原理,和系统需求分析的结果,得到本系统技术、功能、逻辑、数据等方面的架构设计,为具体的系统开发提供了强有力的开发依据。

在详细设计部分,本文对该系统做了详细说明,并规划出了系统的具体模块和模块之间的关系,得到了一个大致的游戏精炼系统开发原型。

在系统实现部分,本文对系统中各种模块要求的具体实现做了详细介绍,并辅以代码和效果图说明,同时还简单介绍测试的方案。

关键词:

Lua+CEGUI;手机游戏;十万个冷笑话

Abstract

Intheincreasinglyfiercecompetitionintheindustryofmobilephonegames,imitateandnotallowgamedeveloperstogainafootholdinthiswave,onlytocatertothetasteofthegameplayeratthesametime,constantlybringforththenewthroughtheold,theideaoffreshslightingthelaw,tomovethegameplayer,andpaytheappropriatemoneyforit.

Thispaperanalyzesthecurrentdevelopmentstatusofmobilephonecardandcardgame,throughtheLuatechnologybasedonSaturngameenginedevelopedacompletegamerefiningsystem.Thispaperdescribestheanalysis,theoveralldesignfromthedemand,tothedetaildesign,thentothewholeprocessofdevelopinganewgamesystemfunctionrealizationofthesystem.

Inthedemandanalysispart,accordingtothespecificneedsofthedemandoftherefinementanalysis,andchartthewayforthedevelopmentofprocessrepresentation.Intheoveralldesignpart,accordingtothegeneralprinciplesofsystemdesign,andsystemrequirementsanalysisresults,thissystemtechnology,functional,logic,dataandotheraspectsofthearchitecturedesign,providesastrongbasisforthedevelopmentofspecificsystemdevelopment.

Inthedetaileddesignpart,thepapermakesadetaileddescriptionofthesystem,anddesignedtherelationshipbetweenspecificclassesandclasssystem,togetaroughgamerefiningtheprototypesystemdevelopment.

Inthepartofsystemimplementation,thispaperonthevariousmodulesinthesystemtoachievethespecificrequirementsindetail,supplementedbycodeandeffectdiagramshows,italsointroducesthetestscheme.

Keywords:

Lua+CEGUI;Mobilephonegames;Onehundredthousandcoldjoke

1绪论

1.1概述

自从《我叫MT》持续火爆以来,卡牌类手游如雨后春笋般涌现,特别是《刀塔传奇》这款月流水达到2.7亿的业界奇迹的诞生,更加刺激了还没有稳定下来的手游市场。

“IP+RPG卡牌”成了所有手游公司的宠儿,大家争相参与到抢夺手游市场这一不算大的奶酪的漩涡中。

那么如何在卡牌游戏泛滥的今天,从众多同类型的游戏中脱颖而出成了所有游戏公司思考的第一要素。

《十万个冷笑话》就是众多寻求突破的卡牌类游戏中的一个,在拥有着大量IP粉丝的基础上,《十万个冷笑话》秉承着继承原著的冷笑话的特色外,积极进行了大量的创新,比如提升装备性能的精炼系统,将伙伴还原初始状态的重生系统,玩家PVP的武道会系统,玩家组队PVE的工会猎场系统等等。

花样层出的新玩法让玩家不会有腻烦感,在为玩家打造一个二次元的世界观的同时,也让广大玩家自主参与进来,打造一个属于自己的游戏团队。

1.2游戏精炼系统介绍

精炼系统作为帮助玩家提升伙伴装备性能的模块,属于一个独立的分支。

所谓精炼,就是去除杂质提取精华,将装备性能提升,除了帮助玩家提升伙伴能力,增加PVE闯关几率外,还是同等级玩家PVP之间胜负的关键。

所以,一个平滑而稳定的精炼系统是让玩家认可游戏并且不会失去游戏兴趣的一个要素。

精炼系统贯穿了装备系统,伙伴系统,背包系统等游戏的几大主要框架,精炼完之后立刻同步刷新几大系统,让游戏实时性得到了完整的体现。

游戏的精炼系统主要是从玩家的背包中获得需要精炼的装备,再从背包中找到为装备提供进阶的材料或者装备,并且玩家的金币数量能供给需要消耗的数量,以上条件都满足时,装备可以开始精炼。

当装备达到顶级时,装备不可再被精炼,此时可以更换伙伴身上其他装备,继续提升装备等级,打造一个“神装”伙伴是竞技游戏的乐趣所在。

1.3课题研究背景

《十万个冷笑话》是一款面向所有玩家的3D横版RPG游戏,不同类型的玩家有着不一样的游戏需求体验,高级人民币玩家,为了体会唯我独尊的感觉,需要将伙伴提升到他人不可企及的地步,才能体会藐视天下的自豪感。

而普通大众玩家,为了在朋友之中拔得头筹,也会选择各种各样的方式去增加自己的战斗力。

而在伙伴等级都达到顶峰之后,最直接也是大家都能想到的是通过提升道具来使自己的伙伴得到提高。

为了达到这一目的,精炼系统也就随之诞生了。

1.4系统开发目的

《十万个冷笑话》的精炼系统是一个针对高级用户追求独孤求败的感觉的一个捷径,也是普通玩家之间打开突破口的一个方式。

所以要做到适应所有用户需求,整个团队在策划,执行,效果上花了大量的时间。

最终在策划设计好数据,服务器提供精炼接口之后,为了玩家能够一目了然的理解,并且喜欢这一功能,这是我作为客户端界面编程的主要目的。

1.5开发平台的选择

开发系统:

windows7

程序语言:

C++,Lua

开发环境:

Vs2010,游戏引擎Saturn的逻辑编辑器和UI编辑器

1.6系统开发方法

本文按照游戏开发流程方法,结合精炼系统的特点,自顶向下地对系统进行分析与设计,开发一个面向所有玩家的精炼系统。

该项目以lua为主要开发语言,辅以美术提供的效果图进行界面UI框架搭建。

由于程序涉及大量数据的调用和存储,因此数据库方面使用配置表来处理这些涉及装备的数据。

在UI编辑器中,依据需求文档和效果图来摆放窗口控件,设置他们的层级,对应属性和背景图。

在逻辑编辑器中,将UI搭建好的框架导入到代码,将一个个需要用到的的窗口初始化,并且依据需求给窗口绑定相关的事件,达到跟玩家互动。

从策划填写的配置表中获取相关数据,通过向服务器发送请求和接受回调来对界面进行设置。

2相关技术介绍

2.1CEGUI介绍

2.1.1CEGUI简介

CEGUI(CrazyEddie’sGUI)是一个自由免费的GUI库,是一个完全面向对象设计,由C++来实现。

CEGUI开发者希望能够让游戏开发人员化繁为简,有更多的开发时间放在游戏性提升上。

CEGUI需要3D图形API的支持来渲染,如使用OpenGL或Direct3D或者使用更高级的图形库,比如OGRE、Irrlicht和RenderWare等。

CEGUI支持各种主流系统,比如windows,linux和MacOS。

截止目前,CEGUI的版本开发到了0.8。

CEGUI提供了一款便捷的官方界面编辑器CEED(该编辑器集成了之前LayoutEditor和ImageSet编辑器的功能),方便UI和图像集的开发。

作为一款界面编辑器,它需要系统界面用以提供编辑器操作,在最初的0.3.0版,它是基于MFC实现的;而在0.4.0版本以后,改为基于wxWidgets实现。

目前将CEGUI作为游戏界面库开发的游戏有很多,比如天龙八部,巨人等游戏。

CEGUI的功能非常强大,使用也非常的灵活,并且可以和配合脚本。

可以通过修改配置文件来自定义窗口外观。

通过布局文件去实现窗口布局等等,这些特性使得游戏的界面开发更加高效。

我们制作的《十万个冷笑话》所用的游戏引擎Saturn的UI编辑器就是封装了CEGUI作为界面库开发的方式。

2.1.2CEGUI的工作方式

根据美术部门提供的UI资源图,生成一个.XML格式的.imageset文件,这个文件包含了所有供.looknfeel使用的小图案。

同时这个文件提供给后面的.scheme和.looknfeel文件来使用。

接着手动生成一个.looknfeel文件。

通过这个文件去创建各种类型的控件(widget)。

这些widget在.scheme文件中进行了装载,以及注册。

手动生成一个.scheme文件,这个文件的内容包括要用到的imageset文件、它所对应的looknfeel文件,以及将要在looknfeel里定义的控件类型、工厂、渲染器和在looknfeel中的用的名字,以及对widgets进行注册。

然后通过使用CELayoutEditor来生成.layout类型文件。

启动CELayoutEditor,.scheme类型文件会自动加载。

我们可以使用Widgets树下的Widget方法来布局我们的游戏UI,布局完成后将自动生成一个.layout文件。

上面所述的流程完成后,我们手上就具备了使用CEGUI来制作界面的所需数据文件了。

最后我们使用CEGUI来制作游戏界面,不论在什么平台下,都有以下基本步骤要做:

在使用CEGUI之前,需要加载一些数据文件,和完成初始化。

这些数据文件就是前面所介绍的.scheme、.Imageset、.looknfeel几种类型文件。

(1)装载imageset文件,经过这一步,程序的后面就能使用Vanilla的widgets了。

1.Imageset*taharezImages=ImagesetManager:

:

getSingleton().createImageset(“Vanilla.imageset”);

(2)初始化鼠标指针的图像。

他的名称为MouseArrow,包含在Vanilla.imageset中,所以我们须先执行第一步。

(不过这一步不是必须的)

1.System:

:

getSingleton().setDefaultMouseCursor(&taharezImages->getImage("MouseArrow"));

(3)通过FontManagergetSingleton来自动装载字体。

1.FontManager:

:

getSingleton().createFont("Commonwealth-10.font");

(4)通过WidgetLookManagergetSingleton来自动装载looknfeel。

然后Vanilla.looknfeel中的Widgets就可以在程序被使用。

1.WidgetLookManager:

:

getSingleton().parseLookNFeelSpecification("Vanilla.looknfeel");

(5)使用SchemeManagergetSingleton()函数来装载VanillaSkin.scheme类型文件用来注册VanillaWidgets组件。

1.SchemeManager:

:

getSingleton().loadScheme("VanillaSkin.scheme");

在此,系统的初始化操作已经基本完成了。

我们可以在CEGUI中创建UI元素了。

而在CEGUI中,所有的window都是由WindowManagersingletonobject来创建的。

所以我们首先得到这个对象:

usingnamespaceCEGUI;

WindowManager&wmgr=WindowManager:

:

getSingleton();

一般来说,我们总是创建一个名为DefaultWindow的控件来做为我们将使用的窗口的Root窗口,因为用这种方式我们将会有比较好的灵活性。

Window*myRoot=wmgr.createWindow(“DefaultWindow”,“root”);

System:

:

getSingleton().setGUISheet(myRoot);//安装myRoot作为GUI的底层元素。

createwindows()函数的第一个参数,指明了将要创建窗口的类型,它一般是在我们使用的.scheme文件中所注册的,还有一些系统定义的有效的窗口类型,如上面所提到的DefaultWindow.DefualtWindow是不可见的,只是做为所有窗口的root来使用。

一般来说我们总是要创建一个Framewindow,它包括其他窗口与widget,本身也是可视的。

FrameWindow*fWnd=(FrameWindow*)wmgr.createWindow(“TaharezLook/FrameWindow”,“testWindow”);

之后,我们将创建的窗口挂载到root上,形成一个层级关系。

myRoot->addChildWindow(fWnd);

myRoot->addChildWindow(winMgr.loadWindowLayout("VanillaWindows.layout"));

这种方法直接装载celayouteditor生成的.layout文件,把.layout生成的图像直接挂载到root上。

2.2Lua介绍

2.2.1Lua简介

Lua是一个精致的脚本语言。

是巴西里约热内卢天主教大学(PontificalCatholicUniversityofRiodeJaneiro)由RobertoIerusalimschy、WaldemarCeles和LuizHenriquedeFigueiredo所组成的一个研究小组于1993年开发。

Lua的设计目的是为了应用程序中嵌入脚本,从而为程序提供灵活的扩展功能和定制功能。

它由标准C编写而成,在所有操作系统和平台上几乎都可以编译,运行。

它并没有提供强大的库文件,这是由Lua的定位决定的。

Lua不适合作为开发独立应用程序的语言。

Lua脚本很容易的被C/C++代码调用,当然也可以反过来调用C/C++的函数,这使得Lua在应用程序中能被广泛应用。

Lua不仅仅作为扩展脚本,同时也可以代替xml,ini等文件格式作为一个普通的配置文件,并且Lua更容易理解和维护。

一个完整的Lua解释器不超过200KB,Lua在目前已知的脚本引擎中,运行速度是最快的。

这一切都说明了Lua是作为嵌入式脚本的最优选择。

2.2.2Lua的特性

(1)轻量级

Lua语言的官方版本只包括一个简洁的核心和最基本的库。

这让Lua体积小、启动速度快,适合嵌入在别的程序里。

5.0.2版本的Lua的内核小于120KB,相比之下Python的内核大约860KB,而Perl的内核大约1.1MB。

(2)可扩展

Lua并不象其它许多"大而全"的语言一样包括很多功能,如网络通讯、图形界面等。

不过Lua提供了非常易于使用的扩展接口机制:

由宿主语言(通常是C或C++)提供这些功能,Lua可以调用它们,就像是内置的功能一样。

(3)其它特性

Lua还具有别的一些特性:

比如同时支持面向过程(procedure-oriented)编程和函数式编程(functionalprogramming);内存自动管理;提供了一种强大的表(table),用它可以实现数组,队列,集合,对象等等;函数也可作为一个值;提供了多线程(协同进程,并非操作系统所支持的线程)支持;通过闭包和table可以支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承等。

2.2.3Lua在游戏的作用

Lua作为一种脚本语言相当受游戏公司的欢迎,不管是它自身轻量级的设计还是自身适合在线热修复都是让众多拥趸爱不释手的原因。

《十万个冷笑话》项目也是用了Lua作为主要开发语言,在C++搭建好底层的基础上,Lua为逻辑编译器提供支持,负责客户端的搭建,和服务器之间进行通信,但是Lua也不是万能的,在用于操作系统底层时他的效率较低,所以对系统底层的操作实现还是要使用c/c++。

2.3DirectX介绍

2.3.1DirectX简介

DirectX是由微软公司创建的一种多媒体编程接口。

它由C++编程语言实现,遵循COM机制。

它被广泛使用于MicrosoftWindows、MicrosoftXBOX360和MicrosoftXBOXONE等等电子游戏开发,并且只支持这些平台。

最新版本为DirectX12,创建在最新的Windows10操作系统下。

2.3.2DirectX功能

DirectX加强了3D图形和声音效果,并给设计人员一个共同的硬件驱动标准,让开发者不必在为了不同品牌的硬件写不同的驱动程序,降低了用户安装及设置硬件的复杂度。

举例来说,以前在DOS下,玩家玩游戏时,并不是安装后就可以玩了,他们往往需要要设置声卡的品牌和型号,还要设置IRQ(中断)、I/O(输入与输出)、DMA(存取模式),而哪项设置的不对,游戏声音就发不出来。

这部分不仅让玩家伤透脑筋,对游戏开发者来说更为头痛。

为了让游戏能够在众多电脑中方便的运行,开发者必须在游戏制作伊始,就把市面上所有声卡硬件数据都收集过来,然后根据不同的API(应用编程接口)来写不同的声音驱动程序。

对于游戏制作公司来说,这是很难实现的,所以在当时多媒体游戏很难普及。

微软公司正是看到了这个问题,为厂商推出了一个共同的应用程序接口——DirectX。

只要开发者是依照Directx来开发的,不管显卡、声卡型号如何,玩家统统都能玩,而且还能发挥更佳的效果。

当然,前提是使用的显卡、声卡的驱动程序还得支持DirectX才行。

3需求分析

3.1可行性分析

3.1.1技术可行性分析

游戏的精炼系统是用lua语言写的,本人对于lua语言比较熟悉。

而这个项目的框架使用UI编辑器编写。

开发工具用的是脚本编辑器。

出于本人对于这些知识都比较了解。

之前也学习过LUA、CEGUI、DirectX方面的知识,对编辑器使用方式很熟悉,以及对项目开发流程有一定的理解和项目组长精心的指导,所有在项目进展方面技术问题可以很好的解决。

3.1.2经济可行性分析

经济可行性分析研究目的,是希望以最小的开发成本,取得具有最佳经济效益的软件产品,经济可行性研究主要包括估计投资和效益分析。

对于经济可行性,我们要分三部分来考虑。

首先,我们要考虑的是“玩家使用精炼系统的频率”。

本系统在游戏中有着举足轻重的地位,除了链接伙伴,装备和背包三大基础系统,还是玩家提升自身伙伴价值的最好途径,所以愿意使用本系统的频率绝对频繁,花费的经济收入也就随之提高。

其次,我们要考虑“精炼系统使用费用”。

本系统由于对待不同的装备需要不同的材料和数量,因此每一件物品的提升所需要的花费都是不一样的,如何定义这些花费是需要在游戏之前就进行详细的调查和计划,这样才能满足玩家的想法,合理的定价是重中之重,这样玩家才肯在精炼系统上投入经济层次。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2