1. 研究目的与意义
随着计算机技术的不断发展,网络传播速度越来越快,网络游戏已经成为现在人生活娱乐,打发时间,缓解压力的一项不可或缺的项目。其中卡牌游戏(麻将,扑克等),是从中世纪一直一直以实体风靡全球,直到现在完成电子化的一种游戏类型。其前景广泛,创作简单而不单调。从玩家角度来看,卡牌游戏上手简单,玩法多样,能够满足各种需求,抽卡设计满足赌博心理,短快操作符合当代人碎片化的时间。进阶来看,一款卡牌游戏如果获得成功,其后续开发也能够有足够的发展空间,包括周边产品(游戏角色手办,实体卡片等),玩法创新(开发新模式,新玩法等),各种活动(线上、线下比赛,抽奖赢奖励等)。卡牌游戏作为游戏制作的上手类型,难度够低,上限够高,对新手是一种很不错的练手选择。
本课题拟完成一款基于unity的回合制集换类卡牌游戏的设计与实现,用来给大家带来娱乐方面的一些民俗故事,缓解一些现实中的精神压力,给大家带来放松与欢笑。本系统拟采用unity引擎去制作服务器端与客户端。使用unity的优点有:容易上手,所见即所得:轻松开发,友好的可视化编辑界面功能强大,编写方便,极易上手。 功能齐全,缩短开发时间:Unity引擎简单易用,几乎集成了游戏开发的所有功能,更有Asset Store提供开发所需的所有资源。
2. 课题关键问题和重难点
基于unity的回合制卡牌游戏系统分为四个大模块:基于unity的服务器端开发、ui设计、游戏机制以及玩法的实现、游戏系统的分类开发。本课题拟完成基于unity的回合制卡牌游戏系统的设计与实现 。
本课题的关键:
1. 服务器的开发及数据存储
3. 国内外研究现状(文献综述)
自上个世界50年代,电子游戏诞生于美国以来,伴随着信息技术的发展和互联网的偶极,电子游戏已经极大的改变了人们的生活,电子游戏产业也得以飞快的发展。长期以来电子游戏产业饱受争议,但是其创造的市场价值和带来的经济收益早已不容忽视。在日本、韩国、美国等文化娱乐高度发达的市场中,电子游戏有着举足轻重的地位。[1]从2000年开始,美国游戏产业产值已经超过了电影业,2020年全球游戏市场同期增长31.6%,达到20兆6471亿日元(约1.2138万亿人民币),2022年,日本游戏玩家已经正式超越了5500万,游戏行业成为了引领娱乐业发展的重要产业。[2]
在我国,随着经济的发展,政策的改变和社会宏观环境的变化,近年来,我国的电子游戏产业得到了快速发展,从端游英雄联盟、pubg等到移动手游如和平精英、王者荣耀等的风靡,我国游戏市场不断扩大,用户规模也逐年增长,截至2021年我国游戏市场实际销售收入达2965.13亿元,用户规模增速开始减缓,增速较为缓慢,我国游戏用户规模接近饱和,2021年用户规模达6.66亿人,仍保持千万级人数增长规模。[3]但是目前游戏市场整体呈现同质化趋势,大部分游戏换汤不换药,游戏核心玩法不变,缺少优质产品,缺少创新玩法。
针对玩法创新这一需求,国内外都进行了大量研究。
4. 研究方案
1. 系统功能结构
系统总体功能结构如图1所示
图1 回合制卡牌游戏系统功能总体结构图
1)UI界面
主界面:为选择进一步功能而设计的页面,玩家可以在主界面选择加入对战、卡组管理
对战界面:该界面为对战进行时的界面。
卡组管理界面:主要功能是查看和管理自己的卡池。
2)逻辑模块
LUA脚本:该功能用于卡牌规则的处理。
逻辑引擎:图形表现。
3)卡组构建
卡组管理:管理卡组,查询卡牌,能够进行卡组添加,卡组修改,卡组删除操作。
卡组预览:查看卡池或卡组
4)游戏对战
局域网对战:满足游戏需要双方玩家的基本需求。
5)游戏资源
保存游戏的美术,音乐和数据库资源,在需要时直接调用。
2. 核心功能流程图
图2 主界面功能流程图
图3 卡组管理流程图
图4 玩家对战流程图
3.研究方案
基于unity 3d 的回合制卡牌游戏系统的设计与实现主要分成三部分:
UI设计、数据库设计、逻辑系统设计
1)UI设计。设计好主页面,对战页面,以及卡组管理页面。
2)数据库表设计。
因为卡牌是集换类卡牌游戏的核心,因此数据库主要存储卡牌数据。卡牌所持有的属性数量是决定游戏性的关键。卡牌CARD数据库如表1所示:
表1CARD属性表
编号 | 字段名称 | 字段类型 | 字段说明 | 备注 |
1 | CardId | Int | 卡牌编号 | 主键 |
2 | CardCost | Int | 卡牌花费 |
|
3 | CardName | String | 卡牌名称 |
|
4 | CardClass | Int | 卡牌类别 |
|
5 | CardType | Int | 卡牌属性 |
|
6 | CardSerious | Int | 卡牌系列 |
|
7 | CardRarity | Int | 卡牌稀有度 |
|
8 | CardAttack | Int | 卡牌攻击力 |
|
9 | CardHealth | Int | 卡牌生命值 |
|
10 | CardDesc | Int | 卡牌描述 |
|
11 | CardEffect | Int | 卡牌效果 |
|
实体类表示如下:
CARD表(卡片id,主键自动递增,卡片花费,卡片名称,卡片类别,卡片属性,卡片系列,卡片稀有度,卡片攻击力,卡片生命值,卡片描述,卡牌效果)
3)逻辑系统设计
卡牌游戏最重要的基础就是核心规则的实现处理,本系统将图形处理逻辑与规则处理逻辑分离,让规则逻辑处理时不需要考虑到游戏图形的处理。由图形界面产生的时间会按照一定的格式传输到逻辑系统进行处理,逻辑系统处理完成后,将处理结果传回给图形界面,并且由图形界面绘制。简单流程如图5所示:
图5 逻辑系统处理流程图
此外,为了实现多样化的卡片效果,要新增一个Effect类,用来保存卡片效果,这类效果往往优先于基础规则。并且实际对战时,数据库只能说明卡牌是哪一种卡而无法说明是哪一张卡,因此实际上数据库的卡和游戏端的卡是一对多的关系。实际的卡牌id需要在游戏中临时生成。在效果对卡片进行处理时候,卡片往往是变动的对象,因此需要一个Field类来管理这些对象,并且处理场上所有的信息。Effect类的效果处理基本上交给Field类处理。最后,还需要一个Game类来创建一局新的游戏,包括充值玩家状态,生成参与游戏的Card和创建一个新的Field类,为Card类赋予LUA链接的脚本文件来获得Effect类。逻辑图如下所示:
图6 逻辑类关系图
5. 工作计划
2022-2023-1学期:
第15-16周:完成选题,查阅相关中英文资料。
第17周:与导师沟通进行课题总体规划。
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。