关于一款游戏的无责任猜想

最近在玩一款德国造网页游戏,感觉挺有意思,而且蛮适合我这种初学者研究一下的,特此开坑。

游戏主要是采用了d&d(?好吧其实我也不知道只是感觉上比较像,大概以后无聊的时候会去看看到底啥是d&d?)规则,通过消耗获取的经验对属性、技能进行强化,然后找一堆基佬一起探索地下城(副本?)的游戏,满级40据说要一年半?话说这么长周期也是没谁了不是。

首先来说说界面,其实挺简单,各种的表格,基本来说就是各种增删改查,对前台来说应该是毫无压力,但是貌似后台设计以及数据获取的速度比较考验技巧?感觉上难度最大的应该是他的战报生成,简单来说就是计算先攻计算伤害看你死了没,但是复杂了说有回合前buff,回合中buff,近战远程魔法等等各种根据设置进行的动作,并非流水账可以完成。

之后回尝试看是否可以复刻出这个游戏以及记录一些复刻时的想法,大概就是这样子。

顺便这个游戏叫world-of-dungeons,简称wod,有兴趣体验的可以戳http://world-of-dungeons.org/mmorpg/cc/85125,记得服务器选canto因为另两个服务器活人不多。


人物卡

作为一个游戏,人物可以说是基础,毕竟是玩家操作的基本元素,

作为一个人物,最基础的属性包括但不止以下内容:

姓名,等级,总经验,未使用经验,生命值hp,魔力值mp,各种属性值(包括基础属性值,属性加值),种族,职业,钱,荣誉(个人/联盟)出生日期。

另外还有各种统计数据,暂时不计。

职业相关属性:

名称,描述,特征(另外一些描述),属性修正,伤害修正,防御修正,技能修正,下级职业等

种族相关属性:

名称,描述,特征,属性修正,伤害修正,防御修正,技能修正

由此可见其实职业跟种族是比较类似的玩意,如果加上进化要素还可以设计下级种族?

另外可以设计中间表做种族职业匹配,当然如果是全匹配可以无视这个东西。


属性

这个游戏的基本属性以及说明如下:

力量 影响近战远程伤害和体力

体质 影响体力(比力量的影响大)

智力 影响法力和魔法防御

灵巧 影响近战远程命中和近战躲闪

魅力 影响社交才能和治愈能力,心理攻击命中和躲闪

敏捷 影响近战躲闪和远程伤害及出手速度

感知 影响远程命中和躲闪及出手速度

意志 影响魔法和心理攻击躲闪,法力(比智力影响大)


而常见的hp、mp都可以通过计算得到,基础公式:

体力 3*体质+2*力量

法力 3*意志+2*智力

先攻 2*敏捷+感知


不计算技能影响的基础躲闪公式:

近战 2*敏捷+灵巧

远程 2*敏捷+感知

魔法 2*意志+智力

心攻 2*意志+魅力

疾病 2*体质+魅力

陷阱 2*感知+敏捷

自然 2*意志+敏捷

偷袭 2*感知+智力

爆破 2*敏捷+感知


原本想法是按照最原始的表结构设计,一个字段存储一个属性,但是考虑之后各种技能或其他的计算公式,似乎会把逻辑写的很麻烦,因为这个游戏不同的技能是按照不同的属性来计算伤害,考虑后决定用数组来存储属性,大概样子如下:

 [力量,体质,智力,灵巧,魅力,敏捷,感知,意志]

 之后在技能那会有基础伤害计算公式,是一个二维数组,每组2个数字,第一个代表乘值,第二个代表加值,大概样子如下:

[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]] 

 然后附加1-N个附加值,比如最基本的按照技能等级或者人物等级进行价值,在不确定的情况下可以预留字段或者存入一个json或数组,相比之下这种非固定格式我比较喜欢用json,这样可以方便扩展(?鬼晓得?),比如下面格式:

{"heroLvl":"0","skillLvl":"0"}

这样的话举个例子这个游戏一个技能,基础:剑术
命中公式为:2×灵巧+敏捷+2×基础:剑术
躲闪公式为:2×灵巧+敏捷+2×基础:剑术
伤害公式为:力量÷2+灵巧÷3+基础:剑术÷2

对应的存储:

命中基础公式为:[[0,0],[0,0],[0,0],[2,0],[0,0],[1,0],[0,0],[0,0]] ,附加值公式:{"skillLvl":"2"}
躲闪基础公式为: [[0,0],[0,0],[0,0],[2,0],[0,0],[1,0],[0,0],[0,0]]  ,附加值公式:{"skillLvl":"2"}
伤害基础公式为: [[0.5,0],[0,0],[0,0],[/3,0],[0,0],[0,0],[0,0],[0,0]]  ,附加值公式:{"skillLvl":"0.5"} (数组第一个数字钱加/是为了区分乘除,毕竟不像加减,除会存在除不尽的情况)

这样当人物数据为[1,1,1,1,1,1,1,1],技能等级为1时,各项数据如下:

命中:(1*0+0)+(1*0+0)+(1*0+0)+(1*2+0)+(1*0+0)+(1*1+0)+(1*0+0)+(1*0+0)+(1*2) = 5
闪避:(1*0+0)+(1*0+0)+(1*0+0)+(1*2+0)+(1*0+0)+(1*1+0)+(1*0+0)+(1*0+0)+(1*2) = 5
伤害:(1*0.5+0)+(1*0+0)+(1*0+0)+(1/3+0)+(1*0+0)+(1*0+0)+(1*0+0)+(1*0+0)+(1*0.5) =1.333 向上取整为2
但是其实伤害并不是固定值,所以采用的roll点的方式,这里在这个游戏的技能说明中也有:每次投点得到的数值是上下浮动的。但我并不清楚他的roll点范围所以暂时假设为1倍-2倍之间,即:
命中:5-10
闪避:5-10
伤害:2-4
roll出数值后再加上装备加减值,比如武器伤害为5,roll点伤害3,防具抵消2,最终伤害为6。
当然他这个游戏中还有重击之类的加值计算,因为并不清楚机制所以暂时先不进行猜测,留个坑在这先。

技能

技能这个玩意,感觉其实很有意思,光分类就好多,更别提各种杂七杂八的设计,那么我们来了。

首先做最基础的分析,这个游戏的技能分为基本技能,附加技能,特殊技能,天赋技能,其实主要是标示升级时所需要的经验值以及金钱,不同类型技能的消耗是不一样的。

然后从技能分类看其实可以简单的分两种,对自身、对敌人。

对自身其实就是常说的buff,基本就是对自身的加值,或者回复,可记录:加值计算/回复计算,加值回合/回复回合。

对敌人其实按照一般游戏来看分为debuff,dot,直接伤害等,其实可以直接丢一起,因为这个游戏有些技能是基本伤害+dot的组合伤害形式,可记录:属性减值,减值时间,dot伤害,dot时间,直接伤害。

整合一下,技能需要记录:

技能名称

技能等级

技能消耗

技能类型:伤害,回复

技能目标:自身,我方位置,我方全体,对方单体,对方全体,对方位置

技能作用数量

技能伤害公式(回复)

技能加/减值公式

技能加/减值时间

技能dot公式

技能dot时间

技能描述

是否必须有耗材

技能需要材料标签

然后这里还需要一个中间记录记录,因为技能的分类是跟职业或种族挂钩的,因此需要记录:职业/种族,技能,技能类型,技能学习等级

先记录这些,回头有别的想起来再说。


物品

基本属性:

名称

说明

可镶嵌次数

镶嵌奖励

所有者

存放位置

职业限制

种族限制

装备要求

耐久度

销售价

唯一性

剩余使用次数

每次地城可使用次数

每次战斗可使用次数

效果等级

是否需要耗材

需配合耗材

装备位置

物品类型

可使用物品的技能

设计者

攻击奖励(包括属性、伤害等)

防御奖励

属性奖励(常驻奖励,临时奖励)

技能奖励

影响目标属性

影响目标攻击

影响目标防御

背包奖励/戒指奖励

对物品的分析并没有按照常见的父子对象而是使用同一对象,因为这个游戏的武器也有可能拥有耗材属性


敌人(怪物)

其实敌人完全可以看做是人物卡的子集,因为对敌人来说无非是刨除一些人物的可变更属性跟包裹

记录:名称,说明,种族,职业,属性(生命值,魔力值,实际属性等),伤害计算公式,技能(可直接关联人物技能)

基于增加趣味性个人感觉可以给属性值设置区间,然后每次生成敌人的时候进行随机获取,但是数值区间不易过大,因为本身这个游戏的数字就不是很大,不像某些游戏动不动成千上万,前期感觉有些职业血量都不上50,30多有些职业都还不上百,因此如果感觉难以驾驭的话还是用固定属性比较好?


地城

地城其实是这个游戏的重头戏,因为这个游戏不存在野外打怪之类的,经验、道具、荣誉的获取全部依靠7小时一次的地城,一个地城首先要记录:名称,描述,推荐等级,适用等级,战斗设置,开放时间。

对于开放时间目前发现的几种类型是:永久,间隔开启,制定时间开启。

然后对于地城来说,需要若干个战斗层,每一层拥有描述,房间数,敌人(类型,数量),掉落(物品,经验,荣誉),最大回合数(超过最大回合数战斗失败)。

另外游戏还有一系列特殊的地城组成的任务,这类地城通常有通关次数,以及通关成功或失败后才开启的下一个地城,之类的设置



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值