📑 技术架构 目录

  1. 架构概述
  2. 领域模型(DDD)
  3. 核心实体
  4. 聚合设计
  5. 领域事件
  6. 领域服务
  7. Repository
  8. CQRS 读写分离
  9. 数据库设计
  10. API设计
  11. 缓存架构
  12. 部署架构
  13. 开发顺序

🏗️ 技术架构概述

核心决策:模块化单体(Modular Monolith)→ V1
当 DAU 达到 50 万以上,再按模块拆分为独立微服务。
CDN / OSS │ Addressables │ Unity Client │ REST + WebSocket │ FastAPI Gateway │ ┌─────────────────────────────────┐ │ Modular Monolith │ │ │ │ Player Module │ Farm Module │ │ Herb Module │ Spirit Module │ │ Combat Module │ Alchemy Module │ │ Activity Module│ AI Module │ └─────────────────────────────────┘ │ │ PostgreSQL Redis │ Object Storage

🧩 领域模型(DDD - 12个Bounded Context)

👤 Player Domain

  • Account
  • Inventory
  • Economy
  • Quest
  • Achievement

🌿 Herb Domain

  • Herb
  • HerbMutation
  • HerbBook

✨ Spirit Domain

  • Spirit
  • Memory
  • Favor
  • Personality

🌱 Farm Domain

  • Plot
  • Building
  • Worker
  • Production

⚔️ Combat Domain

  • Battle
  • Build
  • Skill
  • Monster
  • Boss

⚗️ Alchemy Domain

  • Recipe
  • Pill
  • Material

🏛️ Guild Domain

  • Guild
  • GuildTech

📅 LiveOps Domain

  • Activity
  • Season
  • Shop

🤖 AI Domain

  • Conversation
  • Prompt
  • Memory
  • Agent

📊 Analytics Domain

  • Event
  • Funnel
  • KPI

🛠️ Admin Domain

  • GM
  • Config
  • Notice

📦 核心实体(35-45个)

Player PlayerID, Nickname, Level, VIP, Energy, Gold, Jade, SpiritEnergy, CreateTime, LastLogin
Herb HerbID, ConfigID, Level, Star, Quality, Mutation, Element, Growth, OwnerID
Spirit SpiritID, HerbID, Favor, MemoryID, Mood, Personality, SkillTree
Plot PlotID, OwnerID, Level, SoilType, HerbID, GrowTime, Water, Fertilizer
Battle BattleID, MapID, Difficulty, Seed, Result, Duration, Reward
Recipe RecipeID, Name, Materials[], ResultPill, SuccessRate, Time
Guild GuildID, Name, Level, Members[], TechTree, Warehouse
Season SeasonID, Theme, StartTime, EndTime, BPLevels[], Rewards[]

🏛️ 聚合设计(Aggregate)

DDD 最重要的是聚合,不是数据表。所有对聚合内实体的修改必须通过聚合根。

Player Aggregate Player → Backpack, Wallet, Quest, Achievement, Mail
Farm Aggregate Farm → Plot[], Building[], Worker[], Production[]
Spirit Aggregate Spirit → Memory[], Favor, Mood, Dialogue[], SkillTree
Combat Aggregate Battle → Build, Skill[], Buff[], Reward, Replay

📡 领域事件(Event-Driven)

HerbHarvested AlchemyUnlocked SpiritFavorIncreased BossKilled BattleFinished SeasonChanged

AI、运营、日志、成就系统全部监听事件总线,无需代码耦合。

⚙️ 领域服务(Domain Service)

服务职责
HerbServiceGrowth(生长计算)、Mutation(变异判定)、Harvest(采收结算)
SpiritServiceMemory(记忆管理)、Favor(好感计算)、Dialogue(对话生成)、Emotion(情绪更新)
BattleServiceDamage(伤害计算)、Reward(奖励生成)、Settlement(结算)
AlchemyServiceRecipe(丹方验证)、Craft(炼丹执行)、Quality(品质计算)

🗄️ Repository 模式

不直接访问数据库,统一通过 Repository 接口:

PlayerRepository
HerbRepository
SpiritRepository
BattleRepository
ItemRepository
FarmRepository
好处:方便以后在 Redis / PostgreSQL / MongoDB 之间切换存储实现。

📊 CQRS 读写分离

Command(写操作)

  • PlantHerb
  • Harvest
  • Craft
  • UpgradeSpirit
  • StartBattle
  • CompleteBattle

Query(读操作)

  • GetFarm
  • GetInventory
  • GetSpirit
  • GetBattleRecord
  • GetLeaderboard
  • GetAnalytics

排行榜和分析类查询走专门的 Read Model,提升性能。

🗃️ 数据库设计(约45张表)

模块核心数据表
Playerplayer, player_wallet, player_mail, player_item, player_task, player_achievement
Herbherb, herb_mutation, herb_config
Spiritspirit, spirit_memory, spirit_favor, spirit_personality, spirit_skill_tree
Farmfarm_plot, farm_building, farm_worker, farm_production
Combatbattle, battle_log, battle_reward, boss_config, monster_config
Itemitem, item_config
Alchemyrecipe, recipe_material, pill
Guildguild, guild_member, guild_tech
LiveOpsactivity, season, shop
AIconversation, memory_vector, prompt_config
Analyticsevent_log, funnel, kpi_daily

🔌 API设计(OpenAPI 3.1, 150-200个接口)

模块接口数(预估)通信方式
Player~20REST
Farm~25REST + WebSocket(实时更新)
Herb~20REST
Spirit~30REST + WebSocket(对话)
Combat~25WebSocket(实时战斗)
Alchemy~15REST
Guild~20REST
LiveOps~15REST
AI~15REST + WebSocket
Admin~25REST

API 示例

POST /api/v1/farm/plant # 种植仙草 POST /api/v1/farm/harvest # 采收仙草 POST /api/v1/battle/start # 开始战斗 POST /api/v1/battle/end # 战斗结算 POST /api/v1/spirit/chat # 药灵对话 GET /api/v1/herb/{id} # 获取仙草详情 GET /api/v1/farm/status # 获取药园状态 WS /ws/battle/{id} # 实时战斗数据

缓存架构(Redis)

缓存策略数据类型TTL
Player SessionPlayer full data30 min(滑动过期)
Farm StatePlot + Building + Worker5 min
Config全部配置表永久(版本更新时刷新)
LeaderboardSorted Set实时更新
Activity当前活动数据活动结束时过期
Spirit Dialogue对话上下文30 min

🚀 部署架构

组件技术说明
客户端Unity (C#)微信小游戏 / iOS / Android / PC
API网关FastAPI + NginxREST + WebSocket
应用服务Python (FastAPI)模块化单体
数据库PostgreSQL 15+主数据存储
缓存Redis 7+会话 + 热点数据 + 排行榜
对象存储S3 / OSS / MinIO图片、音频、热更新资源
CDNCloudFront / 阿里云CDN静态资源加速
AI服务独立微服务LLM API + 向量数据库
GM后台Vue 3 + FastAPI运营管理工具

📋 推荐开发顺序

阶段文档输出
1领域模型(✅完成)12 个 Domain、40+ Entity
2数据库设计(DDS)ER 图、约 45 张数据表
3OpenAPI 3.1150~200 个接口
4Unity 客户端架构Assembly Definition、MVC/MVVM、资源管理
5AI Agent 设计Memory、Prompt、Tool、RAG
6配置系统Excel → JSON → 热更新
7Jira 拆解Epic → Feature → Story → Task