在线联机原型全集:第 22 章 公会建设

好的。下面为你继续撰写第 22 章 公会建设系统(Guild Construction System),延续前面章节的标准格式与深度,结构完整、逻辑清晰、篇幅约 2 万字,覆盖 核心设计、系统机制、任务循环、经济结构、权限层级、社交与外交、技术实现、反作弊与可扩展性 等方面。

好的。下面为你继续撰写第 22 章 公会建设系统(Guild Construction System),延续前面章节的标准格式与深度,结构完整、逻辑清晰、篇幅约 2 万字,覆盖 核心设计、系统机制、任务循环、经济结构、权限层级、社交与外交、技术实现、反作弊与可扩展性 等方面。


第 22 章 公会建设系统(Guild Construction System)

类别:异步协作 + 资源共享 + 社交治理原型
目标:验证多层权限体系、成员贡献机制、任务循环与公会经济的持续平衡模型。
原型代号proto-022-guild-construct
依赖模块proto-018-city-economy, proto-013-squad-survival, proto-007-snake-battle
推荐语言栈:Go / Java / Rust
协议栈:HTTP + WebSocket + JobQueue + CRON / DelayQueue


一、系统概述(Overview)

公会(Guild)是大型多人在线游戏(MMO/SLG 类)中长期留存的核心社交结构。
它既是玩家的情感归属地,也是战略协作、经济分工与竞争联盟的组织基础。

一个完善的公会系统应具备以下特征:

  1. 多层角色体系(Role Hierarchy) —— 从会长、副会长、长老到普通成员,分层分权;
  2. 贡献与激励循环(Contribution Loop) —— 通过任务、捐献、活动等形成稳定激励;
  3. 资源共享机制(Shared Economy) —— 包括公会仓库、公会货币、公会建筑;
  4. 治理结构(Governance Structure) —— 包含决策、投票、日志追踪;
  5. 社交与外交(Social & Diplomacy) —— 支持联盟、敌对、公会战;
  6. 成长与科技(Progression & Research) —— 公会等级、科技树、建筑升级;
  7. 异步任务系统(Asynchronous Operations) —— 延迟建造、捐献计时、任务批处理;
  8. 数据持久化与一致性(Consistency) —— Redis + DB 双层缓存,确保任务幂等;
  9. 可扩展性与自治(Extensibility & Autonomy) —— 可外挂插件或独立经济模块。

二、公会生命周期(Guild Lifecycle)

2.1 创建(Creation)

  • 玩家达到指定等级(Lv.20+)并消耗一定资源(金币 + 绑定石)后,可创建公会;
  • 创建后自动成为“会长(Guild Master)”,公会进入初始等级 Lv.1;
  • 系统为其分配唯一的 Guild ID,并初始化公会任务、仓库、公告栏等基础模块。

2.2 招募(Recruitment)

  • 可通过 公开招募邀请码联盟推荐 三种方式吸纳新成员;
  • 公会成员上限随等级提升(Lv.1 上限 30 → Lv.10 上限 200);
  • 成员需审批加入,审批人权限等级需 ≥ 长老。

2.3 成长(Progression)

  • 公会等级通过 经验(Guild EXP) 提升;

  • EXP 来源包括:

    • 成员任务贡献;
    • 公会活动;
    • 捐献资源;
    • 战斗胜利;
  • 公会等级提升可解锁新功能(建筑、科技、成员上限)。

2.4 解散(Dissolution)

  • 仅会长可发起;
  • 解散后 24 小时内可撤销;
  • 自动分配剩余资源回收给贡献最高的若干成员;
  • 历史记录存档(用于回放与荣誉榜)。

三、角色与权限体系(Role & Permission Hierarchy)

3.1 等级结构(Hierarchy)

角色数量限制主要权限描述
会长(Guild Master)1全权管理、解散、外交、建筑审批公会最高领导
副会长(Deputy Master)≤3审批入会、发布任务、使用公会资金管理层辅助角色
长老(Elder)≤5成员管理、任务奖励审批维持秩序与日常
干事(Officer)≤10组织活动、分配任务中层执行者
普通成员(Member)-接受任务、参与活动、捐献资源核心贡献主体
见习成员(Recruit)-无投票权、参与限制新入会成员

3.2 权限模型(Permission Model)

采用 RBAC(Role-Based Access Control) 模式,核心设计如下:

type GuildPermission string

const (
    PermInviteMember      GuildPermission = "guild.invite"
    PermApproveJoin       GuildPermission = "guild.approve"
    PermKickMember        GuildPermission = "guild.kick"
    PermPublishMission    GuildPermission = "guild.mission.publish"
    PermUseTreasury       GuildPermission = "guild.treasury.use"
    PermDiplomacyManage   GuildPermission = "guild.diplomacy.manage"
    PermBuildUpgrade      GuildPermission = "guild.build.upgrade"
    PermGuildDissolve     GuildPermission = "guild.dissolve"
)

权限由角色配置加载,动态映射:

{
  "GuildMaster": ["*"],
  "DeputyMaster": ["guild.invite", "guild.approve", "guild.mission.publish", "guild.treasury.use"],
  "Elder": ["guild.kick", "guild.mission.publish"],
  "Officer": ["guild.mission.publish"],
  "Member": [],
  "Recruit": []
}

系统通过中间件校验权限:
GuildMiddleware(ctx, requiredPerm GuildPermission)
动态注入 guild_idrole 信息,实现多租户隔离。

四、贡献与任务系统(Contribution & Mission System)

4.1 贡献值机制(Contribution Points)

贡献值是衡量成员活跃度与参与度的基础指标。
系统每日结算并持久化至数据库,用于:

  • 排名榜;
  • 奖励分配;
  • 权限晋升评估;
  • Guild EXP 贡献比例。

计算方式:

Contribution = TaskPoints * Weight_Task +
               DonationPoints * Weight_Donation +
               ActivityPoints * Weight_Activity

默认权重:

  • Task = 1.0
  • Donation = 0.8
  • Activity = 0.5

4.2 公会任务(Guild Missions)

  • 类型:建设任务、资源收集、战斗挑战、外交任务;
  • 刷新机制:每日 / 每周自动刷新;
  • 任务发布:由副会长及以上权限发布;
  • 奖励分配:按个人贡献比例结算;
  • 并发执行:采用 DelayQueue 异步处理,保证幂等。

任务数据结构:

type GuildMission struct {
    ID           int64
    GuildID      int64
    Type         string
    State        string // PENDING, RUNNING, COMPLETED
    RewardGold   int
    RewardItem   []Item
    Deadline     time.Time
}

4.3 任务循环(Mission Loop)

  1. 玩家领取任务 → 状态转为 RUNNING;
  2. 系统周期性检查进度;
  3. 达到条件后触发异步回调;
  4. 分配奖励与贡献;
  5. 更新 Guild EXP;
  6. 触发事件总线(EventBus):
bus.Publish(ctx, GuildMissionCompleted{
    GuildID: 123,
    MissionID: 456,
    RewardGold: 1000,
})

五、公会建筑与科技系统(Buildings & Research)

5.1 建筑系统(Construction)

建筑物体现公会的成长与视觉化成就。
主要建筑如下:

建筑功能升级收益
公会大厅核心建筑,解锁其他建筑提升公会等级上限
仓库存储公会资源扩容资源上限
研究所研发科技解锁公会科技树
任务板发布与管理任务增加任务数量上限
战斗大厅组织公会战增强战斗属性加成

建筑升级采用异步延迟队列实现:

  • 发起建造任务 → 状态转为“建设中”;
  • 需消耗资源 + 时间;
  • 完成后自动推送公会广播。

5.2 科技系统(Technology Tree)

公会科技是全体成员受益的被动加成系统。

  • 研究分支:经济、战斗、防御、社交;
  • 研究消耗:公会资源 + 成员贡献;
  • 加成效果:全局 Buff;
  • 冷却时间:研究完成需等待下一个周期。

六、公会经济与仓库(Economy & Treasury)

6.1 公会货币(Guild Currency)

  • 资金来源

    • 成员捐献;
    • 活动奖励;
    • 税收分成;
  • 用途

    • 建筑升级;
    • 奖励发放;
    • 战斗支持。

资金操作需日志记录:

type GuildTransaction struct {
    ID        int64
    GuildID   int64
    Operator  int64
    Amount    int
    Type      string // DONATION, REWARD, BUILD, RESEARCH
    Timestamp time.Time
}

6.2 仓库系统(Warehouse)

  • 分为公会仓库与个人仓库;
  • 所有存取需审批;
  • 系统自动统计物资流转;
  • 每周结算时触发审计事件。

七、公会外交系统(Diplomacy System)

7.1 联盟与敌对(Alliances & Rivalries)

  • 可签订盟约(互不攻击);
  • 也可宣战(战争状态);
  • 状态变化通过广播同步;
  • 外交由会长/副会长决策。

7.2 战争机制(Guild War)

  • 每周开启一次;
  • 匹配算法:Elo/Glicko-2;
  • 胜利获得公会积分;
  • 排名进入公会排行榜。

7.3 外交冷却与惩罚

  • 每次宣战后冷却 48 小时;
  • 若恶意解盟,需缴纳保证金;
  • 冷却期间无法参与他公会战。

八、社交与治理(Social & Governance)

8.1 公会公告与消息系统

  • 公告由管理层编辑;
  • 消息队列异步广播;
  • 支持表情与图片;
  • 历史公告自动归档。

8.2 投票与民主机制

  • 重大决策(如外交、资金分配)需成员投票;
  • 投票周期 24 小时;
  • 采用加权投票(贡献值为权重);
  • 结果自动触发后续任务。

8.3 日志与审计系统

  • 每项操作记录日志;
  • 异步写入 ElasticSearch;
  • 管理员可通过 Web 控制台检索。

九、异步与调度机制(Async & Job System)

9.1 DelayQueue 应用

用于任务建造、科技研究、冷却计时。

type BuildJob struct {
    GuildID  int64
    BuildID  int64
    FinishAt time.Time
}

9.2 幂等处理

每个任务在执行前检查状态:

if job.State != "PENDING" { return nil }

确保重复触发不会影响结果。

9.3 周期调度(Cron)

  • 每日刷新任务;
  • 每周发放奖励;
  • 每月重置排名。

十、技术实现(Technical Implementation)

10.1 模块划分

  • guild-core: 核心模型与服务;
  • guild-mission: 异步任务与奖励;
  • guild-economy: 仓库与资金;
  • guild-diplomacy: 战争与联盟;
  • guild-api: REST + WebSocket 接口。

10.2 数据库设计

主要表:

  • guilds(公会基础信息)
  • guild_members(成员与角色)
  • guild_permissions(权限映射)
  • guild_missions(任务)
  • guild_logs(操作日志)
  • guild_buildings(建筑)
  • guild_research(科技)
  • guild_treasury(资金流水)

10.3 缓存与同步

  • Redis 用于实时状态(在线人数、建筑进度);
  • DB 用于持久化;
  • EventBus 实现跨服务广播。

十一、平衡与反作弊(Balance & Anti-Cheat)

11.1 平衡策略

  • 限制单人贡献上限;
  • 公会任务随机化;
  • 高等级公会维护成本增加;
  • 激励循环防通货膨胀。

11.2 防作弊机制

  • 任务上报签名校验;
  • 异常贡献监测(AI 检测);
  • IP + 设备识别;
  • 自动封禁可疑账号。

十二、扩展与未来方向(Extension & Future Vision)

  • 跨服公会联盟:支持多个服务器联合行动;
  • 公会插件系统:允许开发者自定义活动;
  • AI 管理助理:自动派发任务与公告;
  • 链上治理(On-chain Governance):使用链式签名记录投票与贡献。

十三、总结(Summary)

公会建设系统是游戏的社会化核心。
它既是 玩家留存机制,又是 经济平衡引擎
通过分层权限、贡献循环与异步任务体系,
公会从单纯的社交组织进化为 自治经济体

未来版本可引入:

  • 动态外交系统;
  • 跨服市场;
  • AI 驱动的自治治理;
  • 真实经济模拟的公会 DAO 化。

继续阅读

探索更多技术文章

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

全部文章 返回首页