“新世界”软工项目选题报告

发布时间 2023-10-14 21:32:50作者: yoshinow2001

“新世界”软工项目选题报告

一、 项目目标和意义

1.1项目背景

我们小组将一个横版2d动作小游戏作为本次实践的主题,有以下几个原因:在工作之余或者课余生活中,为了释放压力,游戏在当今社会非常受欢迎,特别对年轻人而言具有很大吸引力。
选择游戏作为项目的现实背景同时也可以激发团队成员的兴趣,增加参与度。

1.2项目目标

本次的项目目标是设计出一个2D横板游戏,从开发者的角度看,需要完成的内容可以大致分为:

  • 1、战斗模块:包括实现玩家对角色的控制、玩家和敌人的交互、技能的释放、玩家角色及怪物状态的判定等。
  • 2、技能和角色养成相关的系统:包括角色初始的默认技能、能携带的武器和其他装备、武器所带来的的额外技能。
  • 3、相对完善的游戏故事背景:包括游戏整体的世界观的设定、游戏中玩家所扮演的角色所处的时代背景(为虚构)和主要矛盾、游戏中人物之间的社会关系。
    同时我们希望能够对游戏内容做出一些创新,希望做出能够吸引玩家、让人眼前一亮,玩着不无聊的小游戏。

1.3项目意义

从玩家角度,游戏将提供娱乐和放松的体验。玩家可以暂时逃离现实生活的压力,体验游戏中的各种关卡、挑战和故事情节,获得短暂的愉悦和乐趣。
齐次,对于开发团队的我们,通过设计游戏项目,也能够综合应用所学的软件工程知识与技术,包括需求分析、系统设计、编码、测试等环节。这将帮助我们提高对软件开发全过程的理解,并加深对相关概念和原理的实际运用。并且锻炼团队合作与协作能力。

二、 项目可行性分析

2.1项目规模及难度

游戏框架搭建: 因为游戏中各种控制效果(例如移动控制,跳跃控制),技能效果(例如冲刺),交互事件(例如被攻击击退)等各种效果之间互相的交互比较复杂,在某些状态下不能做某些动作,在某些状态下做某些动作效果可能会不同等等,各种逻辑间的耦合性非常高,因此必须设计合理的框架来解耦逻辑,使得各个模块可以相对独立的进行设计。
为此,我们计划在游戏框架中设计一个自动机的模型,自动机的状态描述了如何处理各种事件,比如普通状态可以正常处理移动跳跃等指令,而僵直状态则完全可以当移动跳跃等不存在,这样就实现了一定程度上的逻辑解耦,每个状态可以单独实现,且每个状态只需要关心自己需要关心的事件。
可以看出,这部分整体规模较大、难度较高(例如战斗最复杂的战斗框架),需要投入大量的时间和精力。
游戏背景和剧情:一个好的游戏背景可以玩家一种身临其中的游戏体验,在这款游戏中,我们打算将故事背景设定在一个在游戏中的人们看来是“新的”的世界中,并将围绕这样一个“新世界” 中的矛盾展开叙事。
设计出一个简单的故事背景和剧情并不困难,但如果要让游戏背景和游戏内容能够贴合、让游戏故事更加具有现实意义、能够打动人心,这是非常有难度的。
图像和音乐:这部分是我们小组较为陌生的内容,需要额外的时间去学习,也会结合一些人工智能工具。

综上,游戏框架是游戏设计中最困难也最必要的一部分;而对于游戏背景和剧情是灵活性最高的部分;而我们小组对于图像和音乐相对陌生,也需要我们在开发过程中安排较多的资源和人力。

2.2参与人员及专业背景

仅有10人,所以项目拆分只能进行大体拆分,约分为:程序4人,美工5人,音乐1人。游戏设计由所有成员共同参与。
团队成员均为计算机科学与技术专业的学生,具有一定的自学能力。同时10名成员中,有2人是曾经参与过独立游戏开发,有一定经验;有1位同学有一定的音乐基础;有2位同学相对擅长PPT制作,可以参与到美工组中。综上,人员安排是相对合理的。

2.3成本预算

2.3.1学习时间成本

对于本次项目需要用到的具体的专业技能,我们小组尚有空缺,需要2周左右的时间进行学习。

2.3.2经济成本

考虑到实际开发中会需要用到一些互联网上的素材,这一部分主要包括:游戏建模素材库、音乐库的花费,使用一些人工智能辅助工具的花费。

2.4风险和对应方案

在安排人员过程中,考虑到意外情况,对于我们相对不了解的领域(美工)安排了较多的成员;同时像是关于游戏引擎和游戏框架的工作也主要集中在前期完成,在中后期也可以调度到其他工作中,遇到风险时可以比较灵活地调动。
在游戏基本的框架完成之后,每个阶段我们都会对游戏进行反复的测试,确保项目进展顺利。

2.5时间要求

2.5.1游戏引擎

在本次项目中我们计划采用cocos引擎,同时程序组的同学大都有较好的编程基础,因此我们会花费大约1~2周的时间进行游戏引擎的学习。

2.5.2游戏背景

可以说游戏背景和游戏的设定是需要全体成员共同参与的,在这方面我们会选择查阅、参考一些优秀的文艺作品,预期用2~4周的时间完成游戏背景的设定。

2.5.3机动时间

在实际开发中可能会遇到技术问题或是需求的变更,因此每个阶段会预留一定的缓冲时间,以应对可能存在的风险。

三、 项目计划

3.1软件开发模型

敏捷开发(Agile Development)模型是一种迭代式软件开发过程,它强调团队合作、客户参与和快速响应变化。总体目标是通过“尽可能早地、持续地对有价值的软件的交付”使客户满意。通过在软件开发过程中加入灵活性,敏捷方法使用户能够在开发周期的后期增加或改变需求。在敏捷开发中,项目被切分成多个小的迭代周期,每个周期都有明确的目标和交付物。
由于我们选择的是游戏开发,游戏中需要实现的每个功能可以拆分成多个小模块,同时一些具体的功能可能也会根据需要做一些修改和补充,因此我们最终选择敏捷开发模型进行开发。

3.2使用工具

3.3.1 编程软件和平台

以C++为主要编程语言,使用cocos平台提供的游戏引擎。

3.3.2 美工软件

以Photoshop和sai为主,结合一些人工智能作画工具。

3.3.3 音乐软件

以LMMS、FLStudio为主,结合一些人工智能作曲工具。

3.3人员安排

人员 安排
112001443游世伟 程序(游戏引擎)、游戏设计
102101111丁凌烁 程序(游戏框架)、游戏设计
102101118刘嘉峻 美工、游戏设计
172109051林东颖 程序
102101333欧鉴言 程序、游戏设计
102101107郑琦玲 美工、游戏设计
102101102杨煜婷 美工、文书
102101103吴晴如 美工、游戏设计
102101144谢孟玄 美工、音乐
102101135林中天 游戏设计、文书

3.4时间安排