「在线联机原型全集」扩展篇之十四:好友与互动系统(Friends & Interaction System)

扩展篇之十四:好友与互动系统。设计了双向好友关系与申请流程、送礼与表情互动、亲密度成长曲线、在线状态与消息投递,帮助联机游戏沉淀社交关系、让玩家「为关系回访」。

好友是游戏的「粘合剂」——单排玩家会流失,但有好友的玩家会为「关系」回访。本 PRD 是《在线联机原型全集》的扩展篇之十四,聚焦双向好友关系、送礼与表情互动、亲密度成长、在线状态与消息投递,让「路人」沉淀为「常联系的人」。


1. 目标与验证点

编号验证能力说明
F1好友关系双向申请/同意、黑名单、关系状态
F2互动玩法送礼、表情气泡、点赞、邀请
F3亲密度亲密度增长、等级、特权与礼物上限
F4在线状态在线/对局中/离开,状态隐私开关
F5消息投递私信、群发、离线信箱、防骚扰

一句话目标:让玩家「为关系回访」——好友在,游戏就在。


2. 系统架构

flowchart TD
A["Player"] -->|add friend| B["Friendship Service"]
B --> C["Relationship Store"]
C --> D["Friend List"]
B -->|invite| E["Interaction"]
E --> F["Gift / Emote"]
E --> G["Intimacy Level"]
A -->|presence| H["Presence Service"]
H --> D
A -->|message| I["Message Bus"]
I --> J["Inbox / Push"]
D --> K["Social Graph Query"]

说明:

  • Friendship Service:双向好友、申请流、黑名单的权威
  • Interaction:送礼/表情/点赞,消费货币与道具
  • Presence Service:在线状态聚合,推送好友侧
  • Message Bus:私信/邀请,离线进信箱、在线走推送

3. 好友关系模型:双向的「信任」

3.1 关系状态机

未认识 → 申请中(A 发起)→ 好友(B 同意)
                         → 已拒绝 / 已过期(30 天)
好友 → 单方删除 → 解除
     → 屏蔽/拉黑 → 黑名单(互不打扰)
关系可见性互动
好友互相可见在线/战绩送礼、组队、私信
申请中仅申请人可见不可互动
黑名单互相不可见全部禁止

3.2 好友上限与隐私

好友上限:默认 200,付费/等级扩展至 1000
隐私开关:关闭「对局中」可见、关闭「战绩可见」
  └── 好友申请附言:50 字内,防骚扰必须可拒绝

心法:好友是「双向确认」的关系——单方面关注只是「粉丝」,双向同意才是「好友」。黑名单要足够简单,才能守住体验底线。


4. 互动玩法:让「联系」有动作

4.1 互动类型

互动成本效果
点赞免费对方收到提示,亲密度 +1
表情气泡免费对局内弹气泡,破冰
送花/礼物软货币/道具亲密度大幅提升
组队邀请免费一键拉人入队

4.2 礼物系统

礼物 = 道具 + 亲密度值
   ├── 每日赠送上限(防刷亲密)
   ├── 礼物价值映射亲密度(价值高→亲密高)
   └── 收礼回礼:回礼窗口 24h,回礼有额外加成

实践:礼物是「互动的货币化」——免费互动保底,付费礼物给「表达诚意」的通道,但每日上限防止亲密被金钱刷爆。


5. 亲密度:关系的「经验值」

5.1 成长曲线

亲密度 = Σ(互动事件 × 权重) − 衰减(离线时间)
   ├── 事件权重:组队 > 送礼 > 点赞 > 打招呼
   ├── 衰减:连续 N 天无互动,亲密度缓慢下降
   └── 等级门槛:Lv5 解锁双人称号,Lv10 解锁专属特效
等级亲密度区间特权
Lv10~99基础互动
Lv5500+双人称号、专属气泡
Lv102000+组队额外经验、专属名片

5.2 防止「刷亲密」

防刷策略:
  - 单日互动计数上限
  - 同设备/同 IP 多账号风险标记
  - 组队时长加成需真实对局(开局 3 分钟以上才计)

心法:亲密度是「共同经历的记账」——真实对局才有分量,所以要绑定「一起玩」而不仅是「点按钮」。


6. 在线状态与消息投递

6.1 状态聚合

Presence = 离线 / 在线 / 对局中 / 观战中 / 离开
   ├── 好友列表订阅推送(WebSocket)
   ├── 对局中状态可「旁观」或「排队等」
   └── 隐私开关:可设为「仅显示在线/离线」

6.2 消息投递

私信:在线走 WS 实时、离线进信箱(7 天保留)
群发:限 20 人/次、限频(防骚扰)
邀请:对局中禁邀、结束后可补邀
  └── 举报入口:一键举报骚扰,自动静默

实践:消息系统最怕「骚扰」——限频 + 举报 + 黑名单三件套缺一不可,否则社交功能会变成「劝退功能」。


7. 数据模型与一致性

7.1 核心表

friendship(user_a, user_b, status, intimacy, created_at)
friend_request(from, to, note, status, expire_at)
interaction_log(player_id, target_id, type, value, at)
presence(player_id, state, room_id, updated_at)
message(id, from, to, payload, read_at, status)

7.2 一致性要点

好友关系:主键 (min(a,b), max(a,b)),双向一条记录
  ├── 并发添加:唯一约束兜底,重复申请合并
  └── 亲密度:异步增量 + 定时快照,避免高频写

心法:好友是「图数据」——双向一条边而非两条记录,才能避免「我删了他但他还显示好友」的不一致。


8. 里程碑与验收

M1 好友关系(1 周)
  ✅ 申请/同意/删除/黑名单、好友上限、隐私开关
M2 互动玩法(1 周)
  ✅ 点赞/表情/送礼/回礼、每日上限
M3 亲密度(1 周)
  ✅ 成长曲线、衰减、等级特权、防刷
M4 状态与消息(1 周)
  ✅ Presence 推送、私信/群发/邀请、举报与静默

验收指标:好友申请响应率 > 70%;有好友玩家周留存高于单排 20%+;礼物日活渗透率 5~15%;骚扰举报率 < 1%。


9. 相关原型衔接

  • 与#33 社交关系与好友推荐的关系图谱联动 → 好友推荐算法复用
  • 与#30 平台大厅与游戏中心的大厅频道衔接 → 大厅好友在线亮灯
  • 与扩展篇之十三公会与战队对接 → 战队邀请走好友列表
  • 与扩展篇之八语音通信联动 → 好友一键发起语音
  • 与扩展篇之九内容安全对接 → 私信内容安全审核接入

扩展篇定位:好友与互动是「关系的温度」——玩法决定「玩得爽不爽」,关系决定「走不走」。把陌生人变成常联系的人,是留存的最强引擎。

延伸阅读

扩展篇全系列回顾:观战回放(被看见)→ 成就(被记住)→ AI 陪练(随时变强)→ 自定义房间(玩出花)→ 赛季段位(长期目标)→ 跨平台云存档(资产随行)→ 反作弊(生态底线)→ 语音通信(协作润滑)→ 内容安全(社区地基)→ 经济风控(繁荣保险丝)→ 本地化(出海桥)→ 赛季通行证(氧气)→ 公会战队(归属感)→ 好友互动(温度)→ 交易市场(繁荣)→ 装扮皮肤(个性)→ 新手引导(门槛)→ 离线挂机(回味)。十八篇共同补齐「玩法之外」的完整体验层。

扩展篇全系列速查

扩展篇主题一句话
之一 观战与回放让对局被围观每一局都可传播、可复盘
之二 成就与里程碑让成长被记录每一份努力都有进度条
之三 AI 陪练让进步有人陪随时能练、永远有人陪
之四 自定义房间让玩法可定制玩家把规则捏成自己的
之五 赛季与段位让竞技有长期目标每局爬升、每季回访
之六 跨平台与云存档让资产随行任何设备接着玩
之七 反作弊与公平竞技让生态有底线每一场竞技都干净
之八 语音聊天与实时通信让协作有温度喊一嗓子就位
之九 内容安全与社区治理让社区有水质管住底线,创作自由
之十 经济风控与反作弊让繁荣有保险丝每一枚币都真实
之十一 本地化与多语言让出海有桥各说各话,同场竞技
之十二 赛季通行证与商业化让运营有氧气免费玩得爽,付费买得值
之十三 公会与战队系统让队友有归属一起打、一起赢、一起被记住
之十四 好友与互动系统让关系有温度点个赞、送份礼、常来常往
之十五 游戏内交易市场让价值可流转你缺的我有,我缺的你换
之十六 装扮与皮肤系统让角色有个性好看不只是好看
之十七 新手引导与教程系统让新人进得来三步上手、首胜带路
之十八 离线收益与挂机系统让回归有期待下线也在变强

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「products」更多文章

  1. 「在线联机原型全集」扩展篇之十八:离线收益与挂机系统(Offline & Idle Rewards)
  2. 「在线联机原型全集」扩展篇之十七:新手引导与教程系统(Onboarding & Tutorial System)
  3. 「在线联机原型全集」扩展篇之十六:装扮与皮肤系统(Cosmetics & Skins System)