Karma文字游戏的设计与实现
2020-07-04任铭初王颖洁
任铭初 王颖洁
摘要:文字游戏是一种可以低成本开发的游戏种类,适合初步想要接触游戏开的人们来制作,学习。但是文字游戏存在很多弊端,对于大众来说缺少游戏性,因为主体是视觉小说,很容易忽略了玩法上的创新。笔者希望可以改进这种弊端,融合了多重元素的文字游戏,实现可选择控制剧情走向,多线路触发不同游戏结局。在实现文字剧情内容视觉化的基础上增加更多可以由玩家自由操控,收集的游戏元素,主要增加了回合制战斗系统,地图系统,和部分小游戏。使文字类游戏内容更加丰满、有趣。
关键词:文字游戏;回合制战斗
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)13-0031-05
1背景
文字游戏,主要是将文字内容以图片方式展现在用户面前,使用户可以更好地理解剧情内容,增强内容的感染力。同时,作为一款可以操控的游戏,玩家可以通过选择内容选项,来控制剧情的走向,使剧情更加丰满、圆润。使玩家有机会看到一个故事不同的结果,极大程度得到满足。
大众玩家普遍会被游戏的装备系统,技能系统,以及战斗系统所吸引,然而这些极度吸引玩家的内容元素从未出现在以往的文字游戏当中。
本项目主要以增加文字游戏内容元素为主要核心,增强游戏玩法,使玩家有更多的可操作空间,改变大众对文字游戏的固有观点,以此开拓游戏市场。
除此之外,本项目将会增加剧情选项,以此增加游戏剧情线路,使玩家可以看到更多不同的游戏内容和结局,极大程度地增加游戏可玩性,重复游玩性。同时可以增加隐藏内容,使玩家可以尽情探索,回味无穷。
文字游戏目前有着极好的口碑,得到大众的广泛喜爱,然而目前世界上还没有一款全面的文字游戏可以使玩家完全满足,本项目将融合多重游戏元素,例如打斗系统,装备系统等,让玩家看到他们所喜爱的元素出现在文字游戏当中。以此成为世界上第一款多风格文字游戏。
本游戏特点如下:
1)加入装备元素,等级元素,技能元素。使玩家享受文字剧情的同时又可以享受到不同的游戏体验,使内容丰富。
2)加入了回合制战斗系统。使游戏内容不死板,令玩家可以更多地投入游戏当中。
2游戏的设计
2.1设计目标、预期效果和实现方向
本游戏旨在以解密与回合制战斗为基础增强文字游戏可玩性,为玩家制作一个非传统意义上的平面游戏。游戏设定为多角色多结局,即玩家选定一种角色,通过面对不同故事情节做出的不同选择,该玩家会呈现不同的故事结局,而对选定不同角色的玩家来说,结局也互不相同,以此来丰富剧情,并增加玩家的游戏体验感。
2.2具体的需求细则、功能流程
开发环境即RenPv游戏引擎,通过安装SDK、安装编辑器进行具体的代码编写,设计需求包括原画立绘两组,背景图片两组,音乐三首,文案约三万字,包含解密在内,游戏时长约三十分钟。
游戏流程如图1:
2.3与其他部分的关联,所占比重
2.3.1与其他部分的关联
剧情即贯穿整个文字游戏的故事线,负责引导玩家进行游戏探索,将战斗解密等部分统一串联起来;
战斗即游戏的一部分,同时是记录玩家游戏水平的一个标准,当玩家解锁特定剧情时就会触发,以此来增加玩家的游戏代入感;
解密也是体现玩家游戏水平的重要标准,并且随着解密的不断深入,剧情会展現得更加丰富。 2.3.2所占比重
比重倾向即剧情约占百分之八十,战斗约占百分之十,解密约占百分之十。
由于本身还是属于文字游戏,所以剧情的比重占的份额较多,我们也重点着手于剧情设计方面。然而为了凸显游戏特色,我们设计了一部分战斗与解密的内容(都是属于尝试性的),希望可以通过这些内容来吸引玩家的兴趣。
2.4可能涉及的资源调配及人员配合
需求CSP做ui界面,需要三组原画立绘,背景图片与音乐尝试采用免费音乐。
3游戏特色
3.1基本游戏内容设计
基于renpy游戏引擎代码标准,实现基本剧情流程,人物对话,分支选择,条件触发,实现完整的传统文字游戏。
3.2基于传统文字游戏与回合制游戏结合的战斗系统
文字游戏是一个游戏性非常弱的游戏种类,仅是上述通过选择分支来与玩家进行交互的话,是无法满足现在游戏玩家的需求的。
为了增加文字游戏的游戏趣味,同时体现出本作品的独特性,加入了基于renpy游戏引擎基础功能而编写的回合制战斗系统。通过这种方式增加与玩家的交互性,达到提升游戏乐趣的目的。
同样通过renpy的基本代码,跳转分支跳转到本身,就实现了血条的滚动,在发动技能的同时跳转到技能动画,展现出特效。
战斗过场截图如图4:
3.2.1战斗系统说明
图4中可以看到中央有三个圆圈,表示可用的组合,右下角框中即为可用的攻击方式,玩家可以根据不同顺序、方式的组合发动不同的攻击方式。
攻击特效截图如图5:
其余细节皆与普通游戏相似,如左上角玩家人物的属性面板,包括血量(HP),攻击力(ATK),防御力(DEF),闪避机率,状态。右上角怪物属性面板,包括血量(HP),攻击力(ATK),防御力(DEF),闪避机率,状态人物面板下方的四组属性,在本游戏中为耐久度,可以理解为大众游戏中的法力值。
具体实现方式:
我们通过renpy自定义了一个战斗系统的类,每当进入战斗时都会调用这个类。
class attribute_game
这是战斗系统的类,战斗系统一切数值操作靠此运行
类有以下方法
一init一
初始化角色相关数值,包括攻击力,防御力,生命值,法力值,生命恢复,稳定率
re_init
刷新初始化数值,并保留结果
use_time
显示动画
addjime(images)
显示图像,人参为图形名称
attack time
造成伤害,调用即自动计算
treat_time
该方法作为每帧的刷新方法,每0.5秒刷新一次
enemy_attack
敌人进攻方法
战斗中的血条控制则是通过调用renpy自带的函数,实现增加减少。
AnimatedValue(int value,im range,float delay,old_value=None)
将某个值序列化,使用delay秒的时间将old_value的值转为value的值。
value
value值自身,是一个数值。
range
value值的范围,是一个数值。
delay
序列化value值的时间,单位为秒。默认值是1.0。
old_value
旧的value值。若为None,我们使用AnimatedValue想要替换的value值。否则,其会初始化为value的值。
3.3地图交互
同样,为了增加游戏的交互性,我们设计了一套完整的地图方案,可供玩家操作,移动位置,更换场景,不仅增加了部分可玩性,同时增强了游戏的自由度。
我们通过自定义的函数切换背景,也就是切换场景。
screen walk(which,came,walk_go=gm_walk_goto):
方向键屏幕函数,人参(级别,移动前的地方,移动后的地方)
3.4小游戏设计
为了增添游戏乐趣,我们独立设计了一部分小游戏如图6所示。
游戏规则是以五张牌的排列组合、点数来决定胜负。游戏开始时,每名玩家会获发两张底牌,此牌一张为暗牌,一张为明牌。当派发第三张牌前,玩家有权选择不加倍、加倍或超级加倍。当五张牌派发完毕后,各玩家翻开所有底牌来比较。分数大的一方获得手牌数值乘以倍率的点数。同样的,我们为了这个小游戏单独制封装了一个类class card_class这是卡牌游戏的类类有以下方法
ini__
初始化牌库
re_game
刷新并保留结果
re_seore
清空分数
cat_brain
end_what(self Iny,eat,my_change,cat_change,cat_card,choice)
实现与玩家对战的npc智能,方法人参为我方分数,敌方分数,我方改变后的分数,敌方改变后的分数,敌方手牌数量,我方最后一次的行为
alt
动画
rise(sel~where)
3.5美术设计
作为文字游戏,文字游戏的根本在于剧情的动态化、可视化,于是美术和音乐就显得尤为重要,这也是文字游戏的灵魂所在,可以说美术和音乐的好坏直接决定了文字游戏的好坏。于是本组专门设计了一系列人物立绘及场景图片。
renpy引擎提供了专属的音乐与美术插入语句
play music”音乐文件”
但音乐或美术专场的时候则通过
play music”音乐文件”fadeout 1.0 fadein 1.0
queue music”音乐文件”
stop music
play sound”音乐文件”
等语句实现。
本项目组专属设itX物立绘部分展示。
由于日漫的盛行,我们设计出的人角色都带有日系漫画人物的风格,并认为这种风格的人物会被更多的年轻人更好的接受。
一号主角如图7所示:二号主角如图8所示:
4详细游戏内容设计
还是如之前所说,文字游戏重点在于剧情故事,而剧情故事的完整性非常重要,可以说每一个点都需要铺垫,突然出现又不带说明的话会使人觉得很突兀,使整体游戏体验下降,这里重点讲述为了保证剧情故事的完整性而做出的设计。
4.1专有名词
这里包含了游戏中的绝大多数专有名词,这些专有名词包括地名、建筑、物品等。均在游戏中占有一席之地,作为有机成分之一发挥着应有的作用。这些细节起到了丰富游戏内容的作用,同时可以凸显出本作品的特色,很多的道具作为游戏细节,带给玩家更好的体验,也为整个故事的完整性做出了巨大贡献。
4.1.1地点
以下为karma中出现的部分地点,故事舞台由此展开。
1)水生沙:无理,有理的老家所在的总地域的名字,包含东京湾、水生村以及灯塔山,构成一个有机的整体。
2)东京湾:在水生沙最东侧的海湾。原本叫东劫湾,意为从东方到来的水母之劫难,后不知为何被传成了东京湾。
3)水生村:村庄的名字,夹在东京湾与灯塔山中间。水生村虽然科技较为落后,并且聽起来叫村貌似不太大的样子,事实上却已经有近千人才此生活
4)灯塔山:原本是一个树木不多的高山,后来千年气候演变导致树木繁茂,雾气缭绕,并且极易迷失。
4.1.2建筑
这些建筑都有着自己的原画,使整体真实。每个原画都尽量使画风保持一致,这样才不会让人感觉奇怪,总之,这一部分最主要的是给玩家最好的游戏体验。
建筑概括图如图9所示:
山脚下的村庄如图10所示:
水生村东侧,恰好位于灯塔山脚下的部分。大约占整个水生村的20%。
“鸟居”/“灯塔架”如图11所示:
所谓“鸟居”并不是真正的鸟居,其实是纯铁打造的“灯塔架”。原本是供曾在寺庙内生活的人,用来晾衣,风干食物。后来因为不断风化,氧化,最终变为铁红色而神似鸟居.
大院如图12所示:
穿过“鸟居”/“灯塔架”后,所处的大院。无论是进入外厅、正厅或是山顶,都是必经之路。
外厅如图13所示:
也是起居室但不仅仅是起居室。从这里下面的地下暗道可以到达地下室。正殿如图14所示:接待客人的地方,也是舉行仪式的地方。
地下室如图15所示:
村长(祭司)进行的见不得人咒式大多在此处进行,最后被烧毁。
实验室如图16所示:
只有村长(祭司)知道的暗室后的暗室,许多文献书籍,以及资料均藏于此处。从这里可以到达山顶。山顶如图17所示:从地下室以及正殿穿过森林均可到达此处。
4.1.3部分物品(道具)
《水母灵图》:
水母灵图有言:水生曾有灯塔至。冥雾乃灯塔之霾,哀咳乃水母之息。于浩歌狂热中寒;于天上看见深渊。水母不灭,此疾难愈。
4.1.4其他
《笼中鸟》:
是流传的一首很古老的童谣,这个童谣是在玩一个游戏唱的,做鬼的小孩在中间蹲着蒙眼睛,一堆小孩围着鬼唱这首童谣,唱完的时候,若是做鬼的小孩猜出正背后谁面对他,就换他当鬼,换句话说这童谣的最后一句有个含意“在那时刻背后面对鬼的,就要代替笼中的鸟儿当替死鬼”。
而在故事中,《笼中鸟》也是一种咒术,只有与对方接触后才能实施。咒术可以剥离双方灵魂进行调换,一旦调换成功后除非再次施展《笼中鸟》,否则灵魂将不会回到本来的位置。
4.2剧情概括
我们总结了当下青少年所喜欢的剧情题材,总结出了认为最适合的剧情内容,包括的悬疑略带恐怖内容不仅可以吸引玩家,还可以顺水推舟地展示出解密内容。同时紧凑的故事可以带动情节发展,使战斗的插入显得和谐。在合理的地方插人选择界面,直截了当地展现出文字游戏特色。
5结束语
文字游戏的核心在于引人人胜的剧情,本项目剧情大纲核心文化已成形,使本项目品的核心内容得到了保障。
文字游戏将实现将文字内容视觉化呈现在玩家面前,让玩家更好地理解剧情,感受文学内容,因此视觉传达是关键点。
其次,融入装备、技能、等级、打斗等多重元素,将会出现大量冗余数据,因此对数据管控也为难点之一。文字游戏要求我们在学习与制作过程中不断完善达到完美的效果。