《最终幻想:无限》游戏开发方案

(此文原作于2011年9月,有所删改)

序篇

摘要(概要、概况、概述)

最终幻想是知名游戏系列,动画《最终幻想:无限》于2001年首播。就其十周年纪念之际将其制作为游戏,仅供学习交流。

基本信息

名称的确定(定名)

英文名原名:Final Fantasy: Unlimited

英文缩写:FFU、FF: U

日文:ファイナルファンタジー:アンリミテッド

中文(中国):最终幻想:无限、最终幻想:U

中文(台湾):太空戰士:無限、最終幻想:無限

中文(香港):太空戰士:疾風境界、最終幻想:疾風境界

游戏平台(运作系统)

本游戏将推出PC(Windows系统)版和XBOX 360版。画面按照目前主流的高清规格(1280*720),同时更多地按照最终幻想系列一贯的经典,2D画面、角色扮演、4人制战斗等等,怀念FC/SFC(任天堂)时代的感动。

Windows版详细信息:

显卡需要支持DirectX9;

分辨率:1280*720(默认),可以进行缩放;

帧速率:60FPS,其中CG的帧速率为30FPS;

画面维度:2D;

语音:日语(动画原声);

文字:中文(中国)、中文(台湾)、中文(香港)、英文(美国)、日文(日本);

XBOX360版(待定)

开发平台(开发工具,SDK,IDE)

本游戏是基于XNA Game Studio的一个微软官方模板——RolePlayingGame,在其基础上进行开发。版本为XNA Framework 4.0,编程语言使用C# 4.0,集成开发环境为Visual Studio 2010。程序集的版本号规则:以编译的日期进行编号,例如2011年6月1日那天编译的,版本号就为1.06.01,程序(软件包)全名则为FFUBuild1.06.01。该开发方案的版本也依此编号,请确保开发方案的版本与程序集的版本一致。

图形设计

位图:Photoshop,Painter

矢量图:Flash,CorelDraw

音频处理

文本处理

系统篇

架构(组成)

游戏基本构成(树形)

分子结构(中文)

分子结构(英文)

中介模式

继承与派生

解决方案与项目

解决方案与项目的关系

属性(设置)

解决方案的属性(设置)

启动项目:单启动项目:RolePlayingGameWindows

配置:活动(Debug)

平台:活动(Mixed Platforms)

项目的属性(设置):RolePlayingGameWindows.csproj

XNA Game Studio - Game profile:Reach

XNA Game Studio - Game thumbnail:GameThumbnail.png

应用程序–程序集名称:RolePlayingGame

应用程序–默认命名空间:RolePlaying

应用程序–目标框架:.NET Framework 4 Client Profile

应用程序–输出类型:Windows应用程序

应用程序–资源–图标:Game.ico

生成–条件编译符号:WINDOWS

项目的属性(设置):RolePlayingGameProcessors.csproj

应用程序–程序集名称:RolePlayingGameProcessors

应用程序–默认命名空间:RolePlayingGameProcessors

应用程序–目标框架:.NET Framework 4

应用程序–输出类型:类库

项目的属性(设置):RolePlayingGameDataWindows.csproj

XNA Game Studio - Game profile:Reach

应用程序–程序集名称:RolePlayingGameDataWindows

应用程序–默认命名空间:RolePlayingGameData

应用程序–目标框架:.NET Framework 4 Client Profile

应用程序–输出类型:类库

生成–条件编译符号:WINDOWS

项目的属性(设置):RolePlayingGameSettings.csproj

应用程序–程序集名称:RolePlayingGameSettings

应用程序–默认命名空间:RolePlayingGameSettings

应用程序–目标框架:.NET Framework 4 Client Profile

应用程序–输出类型:Windows应用程序

游戏基本设置(GameSettings)

游戏的环境、系统、控制器按键等基本的设置。数据与功能模块全部集中在项目RolePlayingGameSettings.csproj中。

项目:RolePlayingGameSettings.csproj

该项目的类型为WPF,用于对游戏的基本设置进行设置和管理。

界面采用选项卡式,有“常规”、“控制器”。

常规选项卡:

语言:文本的语言,默认为中文(中国),即简体中文。内部值与显示值对应如下:

Eng,英语(美国),English(US)

Chs,中文(中国),Chinese(PRC)

Cht,中文(台湾),Chinese(TW)

Chk,中文(香港),Chinese(HK)

Jpn,日文(日本),Japanese

语音:默认为日语(Jp),其索引为0。即动画日语原声。

分辨率:默认为1280*720,提供一个下拉列表进行选择。

控制器按键(输入)设置选项卡:

按钮控件:还原默认、存为设置一、存为设置二、使用设置一、使用设置二。

游戏里的各种动作均与手柄的按钮对应,这是目前大多数跨平台游戏的特征。键盘的键与手柄的按钮默认对应关系如下:

XML文件:存储游戏的设置信息。

文件名及说明

GameSettings.xml,共两套信息,一套为默认值,一套为现用值。

Resolution.xml,只读,存储分辨率的高、宽、缩放比率。

ControllerSettings.xml,手柄按键设置,共四套,一套为默认值,另可存两套设置,还有一套为现用值。

Languages.xml,只读,为该WPF提供的多国语言文本。

系统的分层层次、层次结构

该WPF项目采用分层系统(箭头方向表示访问方向,即依赖性)

类的继承层次

文本管理(语言系统)

本游戏支持多种语言。文本分两类:词表、句表。词表包含游戏中的专有名词,句表包含游戏中的剧情对白等语句。列表(List)在游戏启动后就加载并一直放在内存中(常驻内存),在XNA中是作为Content对象进行加载。

词表分两部分,第一部分词是前32项,为可供玩家设定的人物名字,当开始新游戏时,作为角色的默认名字。如果从记录中开始游戏,则该32项会被记录中的32个人名给替换。

句表中的词采用编号表示(~+数字+~)。在游戏运行时,需要用到该句时再用词表中的词去替换。替换方式为先将句子(字符串)按“~”分成字符串数组,再将其中的数字用从词表中的检索结果进行替换,最后将字符串数组合并成完整的一个字符串。

文本数据

在项目Content中,Text目录下存放各种语言的文本(XML文件):

词表:Word.xml

句表:Sentence.xml

功能实现

文本管理的类(TextManager),放在项目RolePlayingGameWindows.csproj中,其成员如下:

字体

字体使用spritefont。目前的字体使用Microsoft Yahei。

记录管理系统(存档管理,存档功能)

记录的载体为XML文件。一个记录对应一个XML文件。

记录内容

游戏数据(GameSaveData)

队伍数据(PartySaveData)

人物数据(PlayerSaveData)

存取

以XML形式。Windows版是保存在“我的文档”目录中。

物品系统

道具

装备

武器

防具

地图系统

图层块引擎

地图层,分上中下三层。

传送点

商店

旅店

NPC

记录点

宝箱

固定战斗

随机战斗

任务系统

路线(任务链)

路线由一连串的任务组成。同一时间里可以进行多条路线,任务的完成情况不同会引起不同的路线分支。参与的路线将越加越多,而不移除(减少),这类似熵。已经参与的路线里,不同路线之间是并行的。

任务

这里的任务指路线上的每一个点,也叫做任务点。是在路线上前进所必须完成的环节。例如对话、打怪、收集道具等。

角色

公共

魔法

黑魔法:冰火水雷等。

白魔法:回复,圣光等。

时空魔法:加速,减速,异空间等。

技能

召唤(兽),在最终幻想无限中为开动魔枪

气现术

气现兽

战斗状态

待机

行动

死亡

异常状态

异常状态不一定不好,例如加速。异常状态可以累加,但不可重复,相对的状态不能同时存在(相互抵消),死亡后(战斗不能)一切异常状态解除。所有异常状态按优先级由高到低排列如下:

人物

人物属性

人物队伍属性

职业系统

类似最终幻想12国际版。不同于最终幻想5,一个人可以身兼数职。

成长系统

通过在战斗中累积经验(成长点,AP)(不同于传统的经验值,参考最终幻想10),走盘提升能力。

怪物

怪物系别,类似最终幻想10等,冰火水雷暗光(相生相克),另外还有不死系。怪物组(可看作队伍)

战斗系统(BattleSystem)

战斗引擎(CombatEngine)

分类

按触发类型分类:随机遇敌战斗、剧情定点固定战斗(多数情况下是无法逃跑)。

按时机进行分类:我方先制攻击、敌人偷袭、通常。

按站位进行分类:我方包围敌人、我方被敌人包围、敌左我右(通常)。

战斗形式

战斗时是处于独立的屏幕中(可以称作战斗域、结界、封绝(本人对灼眼的夏娜已中毒,汗)等),我方为四人制队伍(最终幻想的经典模式)。敌人也采用队伍的形式,只是队伍的成员已经固化(在怪物队伍表中)。战斗顺序采用类似最终幻想10的模式,按照所有战斗人员的速度值先后进行动作(攻击、吟唱、防御、使用道具等等),当然时空魔法等改变人物的状态后其速度会发生变化,先后顺序就会跟着变化。(ATB)

战斗时的菜单

屏幕管理

游戏屏幕根据所要显示的内容不同而分成很多种,有独占和弹出等。

图像篇

画面效果也是游戏的重要部分。首先制作好设定图,再按照设定图制作好原画,再将原画裁剪以及使用特殊效果,制成成品图,成品图就是在游戏运行过程中使用的图像了。

设定图包含:角色(人和怪物),场景,物品。

成品图统一使用24位色带Alpha通道的无损PNG文件存储。大小一般不超过2500*1600像素。在游戏的默认分辨率下(1280*720),显示的效果最好。在全高清(FullHD,1080P)或较小分辨率(例如SD,360P)也不明显失真。

制图工具有Photoshop,Flash等,因此源文件的格式有PSD,FLA等。PSD统一设定:72dpi,RGB8位,背景透明。FLA的背景为白色或黑色等,通常使用能突出物体便于作画的颜色。

线稿一般为矢量图,少部分为位图。色稿,景色一般为位图,物体一般为矢量图。

CG由一系列的具有相同规格的图片组成。规定CG的帧速率为30FPS,分辨率为1280*720。

人物的图层划分(由底往上):后发-体型-五官-衣服-前发。

动画的制作

分镜与原画

这里指的是动画里的专业术语。分镜即镜头的切分,原画为一个分镜中的静止画面。原画中指定了物体的运动情况,以及持续时间(通常用帧数)等。

骨骼

动物的生理结构非常复杂,骨骼直接影响动物的运动情况,使用骨骼能大大减少动画的制作难度,提高精度。

Flash动画

本游戏中的大部分动画都是使用Flash制作。

音频篇

音频包括背景音乐和音效等。背景音乐是在场景中持续播放的声音,音效是游戏过程中,特别是战斗过程中,持续时间较短的声音。人物的语音作为音效处理。

音频规格:WAV格式,PCM编码,44100Hz,16Bit,立体声(2ch)。

剧情篇

本游戏严格按照官方的剧情,忠实再现原作的故事情节。对于官方为交代清楚的情节,按照比较公认的说法。对于仍然没有讲述清楚的情节,进行适当的原创,本游戏将给玩家讲述完整的《最终幻想:无限》故事。

推进与分支

玩家在游戏中的各种行为,会推进游戏的剧情发展,也会产生分支。

路线

路线是GAL Game中的常用术语。RPG中通常分为主线和支线。主线包含对结局至关重要的剧情,支线的剧情可有可无。

对于游戏来说,故事情节会有分支和循环,但始终是一直沿着路线前进的,不会后退。在游戏里也是没有后悔药吃的。

资料篇

角色

人物

姓名:早川优,Yu Hayakawa

性别:男

关系:早川夫妇之子,爱之弟

描述:一心想见父母的小男孩

饰物:陆行鸟的羽毛

姓名:早川爱,Ai Hayakawa

性别:女

关系:早川夫妇之女,优之姐

描述:天真淘气的小女孩

道具:波希包包

莉莎

姓名:莉莎·帕茨菲斯特,LisaPacifist

性别:女

关系:帮助优和爱寻找他们的父母

描述:拥有母亲秘传的气现术的中国少女

技能:气现术,气现兽

姓名:黑木风,Kaze

性别:男

关系:白井云的宿敌

描述:记忆混乱,左手为魔枪的男人

武器:红枪

技能:魔枪(召唤)

白井云

姓名:白井云,Makenshi

性别:男

关系:黑木风的宿敌,伯爵的手下,红雾之弟

描述:白色的魔剑士

武器:魔剑

职业:魔剑士

纳沃

姓名:纳沃,Knave

性别:男

关系:克摩廷的领袖

描述:领袖般的男人,讨厌青蛙

希德

姓名:希德,Cid

性别:男

关系:异界地铁的制造者

描述:给自己制造的所有机械赋予女性名字的机械控青年

职业:机械师

密莱斯

姓名:密莱斯,Miles

性别:女

关系:克摩廷的女战士

描述:非常喜爱青蛙的女战士

武器:微型连射吹箭

职业:战士

姓名:露·露法斯,Lou Lupus

性别:女

关系:狼族的最后幸存者

描述:在镜子里看到自己的眼睛后会变成狼的开朗少女

技能:露之吼

莫古利

姓名:莫古利,Moogle

性别:男

关系:风之世界的幸存者

描述:拥有增强魔枪能力的索伊鲁传导师

克里亚

姓名:克里亚,Clear

性别:男

关系:奥米加的一部分

描述:周身有水覆盖的少年

魔道士

姓名:红雾,Madoushi

性别:男

关系:白井云之兄

描述:红色的魔道士

职业:魔道士

芬格

姓名:芬格,Fungo

性别:不明

关系:克摩廷的雷达员

描述:什么都吃少年

职业:盗贼

怪物

伯爵

姓名:泰伊兰德,Earl Tyrant

性别:男

关系:异界的支配者

描述:任性的小屁孩

芬古斯

姓名:芬古斯,Fungus

性别:男

关系:四凯将之一

描述:拥有再生能力的魔人

海露瓦

姓名:海露瓦,Herba

性别:女

关系:四凯将之一

描述:洁癖的植物魔女

皮斯特

姓名:皮斯特·萨斯十一世,Pist ShazXI

性别:男

关系:四凯将之一

描述:知识渊博,骄傲过人的海之魔人

奥斯卡

姓名:奥斯卡,Oscha

性别:男

关系:四凯将之一

描述:冷酷无情,知道混沌真相,附在人偶上的怨念集合体

青蛙仙人

姓名:青蛙仙人,Fairy Frog

性别:男

关系:海之魔方怪物之一

描述:住在海之魔方中会使用魔法的老青蛙

索摩姗

姓名:索摩姗,?

性别:女

关系:海之魔方怪物之一

描述:住在海之魔方中喜欢出怪题考别人的人鱼

NPC

早川乔

姓名:早川乔,Joe Hayakawa

性别:男

关系:

描述:世界著名的研究的异界专家

早川玛丽

姓名:早川玛丽,Marie Hayakawa

性别:女

关系:

描述:世界著名的研究的异界专家

克鲁克斯

姓名:克鲁克斯,Crux

性别:女

关系:奥斯卡做成的侦察用人偶

描述:没有感情的小人偶

萨奇

姓名:萨奇,Sagi

性别:男

关系:与原型的莉莎有着巨大的关系

描述:怀念莉莎出现的迷之少年

陆行鸟婆婆

姓名:陆行鸟婆婆,Chocobaba

性别:女

关系:陆行鸟婆婆两姐妹中的姐姐

描述:非常喜欢陆行鸟的变态老太婆

陆行鸟婆婆的妹妹

姓名:陆行鸟婆婆的妹妹,Chocoimo

性别:女

关系:陆行鸟婆婆两姐妹中的妹妹

描述:非常喜欢陆行鸟的变态老太婆

奥拉

姓名:奥拉,Aura

性别:女

关系:风之妹

描述:风的记忆中时而出现的迷之少女

法普拉

姓名:法普拉,Fabula

性别:女

关系:异界的预言者

描述:住在贝壳馆里的和蔼可亲的女人

推荐阅读更多精彩内容