Day27 Apex 配对机制分析

Apex 为一款笔者近期最喜欢的竞技游戏,想藉着分析的名义,趁机推广一下这款大逃杀游戏。由於此游戏一开始就是以竞技类别推出,他本身的牌位系统,很适合延续我们讨论到的牌位与配对设计,且游戏人数基数够多,势必必须考量到配对速度的系统问题,最後就让我们来看看想达到这样的设计,需要在配对系统上进行的设计有哪些。

我只是想放这张图

https://i.imgur.com/g8YHqu9.png

基本公开配对资讯

简单介绍一下游戏机制,游戏由玩家组成三人小队,与另外 19组队伍相杀,直到剩下最後一组小队时,该小队即为冠军小队。游玩模式有分成,休闲玩家的一般模式,以及玩家间竞技的阶级模式。目前公开配对资讯如下:

  • 3人组成小队
  • 20 小队游戏开始
  • 不重复角色
  • 等级
  • 阶级
  • 级分
  • 服务器地区
  • 黑名单

隐藏配对资讯

这边是我个人猜测可能用到的资讯,这些资讯用来体现一个玩家游戏能力,符合先前提到 Skill system 计算出的级分与相关资讯,可用协助我们找到实力更为相近的对手或队友。

  • 历史平均伤害
  • 历史平均 K/D
  • 目前连胜场数

Create Ticket

显而易见的,上述这些条件 将被我们於 create ticket 时,事先将玩家过往对战纪录 ,与当前游戏选择(角色、服务器、指定队友)统一放到我们的 ticket 里。回过头来看一下 Ticket 里的 StringArgsDoubleArgs ,虽然在结构设计上,仅是提供我们带入不同型态的参数,但如果加上资料的理解,可以发现 StringArgs 放的参数偏向硬性条件,像是游戏模式与使用的服务器地区,而 DoubleArgs 则是一个会被 MatchProfile 条件区间包含的参数,并且考量到 overlapping 的使用方式,我们在设计 MMF 处理 DoubleArgs 时,会给予每个 DoubleArgs[xxx] 不同的权重,以方便计算出唯一的 quality value 提供 evaulator 评估。

Example ticket

t := &pb.Ticket{
	SearchFields: &pb.SearchFields{
		StringArgs: map[string]string{
			"mode":        "3v3_normal_battle_royale", // or 3v3_rank_battle_royale
			"server":      "Taiwan_GCE2",
			"role":        "Valk",
			"user_name":   "wesley",
			"user_id":     "123456789",
			"team_member": `["23456789"]`,
			"black_list":  `["11009837"]`,
		},
		DoubleArgs: map[string]float64{
			"level":             154,
			"rank":              3, // 0~7 the higher better
			"team_member_count": 2,
			"score":             2880,
			"avg_dmg":           312,
			"win_streak":        1,
			"avg_kd":            0.87,
		},
	},
}

<<:  Day35 ( 游戏设计 ) 猜数字 ( 几 A 几 B )

>>:  [Day27] swift & kotlin 上架篇!(1) 小鸡BB-游戏上架流程-swift

想当软件工程师

请问有没有人跟我一样,没有念大学,想成为软件工程师 ...

Day 10:Gson 资料解析

本篇文章同步发表在 HKT 线上教室 部落格,线上影音教学课程已上架至 Udemy 和 Youtu...

Day.11 「利用渐变效果,让网页不再死板!」 —— CSS Transform & CSS Transition

现在我们会使用基本的伪类选择器做效果了,但看到变化过程一闪而过、冷冰冰的,想增添更多渐变效果,让动...

连续 30 天 玩玩看 ProtoPie - Day 3

影片继续看下去 选择 Rotate 底下的 Direction 就是顺时钟还是逆时钟旋转。 我们选择...

[13th][Day27] cluster

在丛集管理方面,kubernetes 将 cluster 中的机器划分为一个 master 节点以及...