Versão inicial completa para guiar implementação sem perder foco. Baseado no conceito enviado e nas telas fornecidas (Home + Chocar Ovos).
One-liner: Puzzle de combinação com ovos e evolução de dragões, onde estratégia de merge + progressão constante = sensação de poder sem pay-to-win.
Público: jogadores casuais/intermediários de mobile (sessões 3–10 min), com versão PC para retenção longa.
Pilares:
Clareza de jogada Progressão diária Coleção de dragões Justiça sem P2W Eventos semanaisPLAY.Conclusão: estrutura já está boa para F2P live game.
Ajuste recomendado: diferenciar melhor “velocidade” vs “tempo final”, para evitar confusão de UX.
8x8| Combinação | Efeito | Uso tático |
|---|---|---|
| 3 iguais | Remove peças e pontua | Progressão básica |
| 4 iguais | Gera Ovo Potente (linha) | Limpar colunas/linhas críticas |
| 5+ iguais | Gera Ovo Lendário (área) | Virada de fase difícil |
| Cascata | Combos automáticos em cadeia | Multiplicador de score |
reshuffle() automático com animação + aviso curto.score_total = (base_match + bonus_especial) * multiplicador_cascata * multiplicador_fase
base_match: 100 (3), 180 (4), 300 (5+)bonus_especial: +250 (Ovo Potente), +500 (Ovo Lendário)multiplicador_cascata: 1.0, 1.2, 1.5, 2.0, ... cap 3.0multiplicador_fase: 1.0 a 1.4 (escala por reino/fase)Se vitória cair abaixo do alvo por 2 versões seguidas: reduzir obstáculos, aumentar power-up drop, ou baixar pontuação-alvo.
| Raridade | Tempo base | Acelerador sugerido |
|---|---|---|
| Comum | 2h | x2 via vídeo (limitado) |
| Raro | 6h | x2 via item/vídeo |
| Lendário | 24h | x4 via item premium |
tempo_final = tempo_base / multiplicador
Comum → Raro → Épico → Lendário → Mítico
3 dragões iguais (mesma estrela/nível) = 1 dragão de tier acima
| Stat | Efeito |
|---|---|
| Power Elemental | +% score em combos do elemento |
| Loot Luck | +% chance de drop extra |
| Combo Amplifier | +% multiplicador em cascata |
| Utility | Reduz custo de energia ou tempo de incubação |
regen_energia = +1 a cada 15 mincap_energia = 5 inicial, expande até 20preco_refresh = 20,40,80... gemas (escala diária)| Tipo | Exemplo | Recompensa |
|---|---|---|
| Diária | Complete 5 fases; 10 combos 4+ | Ouro + XP Passe |
| Semanal | Fundir 10 dragões; concluir 25 fases | Gemas + ovo raro |
| Temporada | Objetivos progressivos por 28 dias | Cosmético exclusivo |
level_start, level_fail, level_completematch_3/4/5plus, cascade_countegg_start_hatch, egg_finish_hatchmission_claim, shop_purchase, ad_reward_claim| KPI | Meta inicial |
|---|---|
| D1 | > 35% |
| D7 | > 12% |
| Crash Free | > 99.2% |
| Sessões/dia | 2.5+ |
| ARPDAU | definir após soft launch |
Ciclo semanal: coletar dados → identificar gargalo (onboarding, fase, economia) → testar 1 variável por vez → validar impacto em D1/D7.
| Prioridade | Itens |
|---|---|
| Must | Tabuleiro 8x8, match 3/4/5, spawn seguro, score, 2 reinos, incubação básica, missões diárias, loja mínima |
| Should | Ranking semanal, clã básico, 1 evento de 72h, passe temporada V1 |
| Could | Skins premium avançadas, sistema social expandido, modos alternativos de jogo |
Assets/
_Game/
Art/
Audio/
Prefabs/
Scenes/
Boot.unity
Home.unity
Board.unity
Hatchery.unity
Scripts/
Core/
Gameplay/
UI/
Meta/
Economy/
Analytics/
Save/
Data/
ScriptableObjects/
Eggs/
Dragons/
Levels/
Missions/
Shop/
SeasonPass/
Addressables/
| Classe | Responsabilidade |
|---|---|
| GameBootstrap | Inicialização de serviços (save, analytics, economy, remote config) |
| BoardManager | Grid 8x8, valida swap, detecta match, cascata e reshuffle |
| Tile | Representa peça/ovo no tabuleiro (tipo, estado, posição) |
| MatchResolver | Resolve combinações, gera peças especiais e pontuação base |
| SpawnSystem | Spawn com RNG controlado e anti-frustração |
| LevelDirector | Objetivos da fase, vitória/derrota e curva de dificuldade |
| ScoreSystem | Calcula score final com multiplicadores |
| EnergySystem | Consumo/regeneração de energia e limites |
| HatcherySystem | Incubação, timers, aceleração por vídeo/item |
| DragonFusionSystem | Fusão 3-para-1, evolução e time ativo |
| MissionSystem | Diárias/semanais/temporada com claim de recompensa |
| ShopSystem | Oferta de itens, bundles e validação de compra |
| SeasonPassSystem | XP, trilha free/premium e resgate |
| SaveManager | Persistência local + cloud save (quando habilitado) |
| AnalyticsService | Eventos e parâmetros para BI/telemetria |
EggDefinitionSO: id, elemento, raridade, tempoBase, recompensaDragonDefinitionSO: id, raridade, stats base, passivas, custo de upgradeLevelDefinitionSO: objetivo, obstáculos, seed, limite de jogadas/tempoMissionDefinitionSO: tipo, meta, janela, recompensaShopItemSO: sku, moeda, preço, limites, conteúdoSeasonPassTierSO: nível, recompensa free, recompensa premiumBalanceConfigSO: multiplicadores globais e caps| Sprint | Foco | Entregável |
|---|---|---|
| 1 | Core board | Grid, swap, match 3, queda, refill |
| 2 | Regras avançadas | Match 4/5+, especiais, cascata, score |
| 3 | Meta fase | Objetivos, vitória/derrota, progressão de 10 fases |
| 4 | Economia base | Energia, recompensas, loja mínima |
| 5 | Ovos/dragões | Incubação, chocagem, fusão 3-para-1 |
| 6 | Meta systems | Missões diárias/semanais, ranking básico |
| 7 | LiveOps inicial | Passe temporada v1 + evento 72h |
| 8 | Polimento | Perf mobile, analytics completo, build soft launch |
Boot
└─> Home
├─> BoardLoading
│ └─> InLevel
│ ├─> Paused
│ │ └─> InLevel
│ ├─> Victory
│ │ └─> RewardFlow
│ │ └─> Home
│ └─> Defeat
│ └─> RetryOrHome
│ ├─> InLevel
│ └─> Home
├─> Hatchery
│ └─> Home
├─> Shop
│ └─> Home
├─> Missions
│ └─> Home
└─> Clan
└─> Home
LevelInit -> PlayerTurn -> SwapResolve -> MatchResolve -> CascadeResolve -> ObjectiveCheck
^ |
|---------------------------------------------------------------------|
ObjectiveCheck:
- if objectiveComplete -> Victory
- else if noMovesAvailable -> Reshuffle -> PlayerTurn
- else if outOfMovesOrTime -> Defeat
- else -> PlayerTurn
Use versionamento explícito e migração por versão. Nunca quebrar compatibilidade sem migrator.
{
"schemaVersion": 3,
"playerId": "uuid",
"createdAt": "2026-03-09T20:00:00Z",
"updatedAt": "2026-03-09T21:00:00Z",
"profile": {
"name": "Player",
"level": 12,
"xp": 18450,
"vip": 0
},
"economy": {
"gold": 125000,
"gems": 340,
"energy": {
"current": 8,
"max": 20,
"regenSeconds": 900,
"lastTickUnix": 1773086000
}
},
"progress": {
"currentKingdom": 3,
"currentStage": 7,
"starsByStage": {
"K1-S1": 3,
"K1-S2": 2
},
"bestScoreByStage": {
"K1-S1": 15320
}
},
"boardMeta": {
"lastPlayedStageId": "K3-S7",
"lastSeed": 843219,
"tutorialStep": 5
},
"dragons": {
"owned": [
{"dragonId": "fire_whelp", "rarity": "common", "level": 7, "stars": 2, "count": 1}
],
"activeTeam": ["fire_whelp", "wind_drake", "light_drake"]
},
"eggs": {
"inventory": [
{"eggId": "egg_fire_common", "qty": 3}
],
"hatchingSlots": [
{
"slot": 1,
"eggId": "egg_rare_water",
"startUnix": 1773082000,
"endUnix": 1773096400,
"speedMultiplier": 2
}
]
},
"missions": {
"daily": [{"id": "d_combo_10", "progress": 6, "target": 10, "claimed": false}],
"weekly": [{"id": "w_clear_25", "progress": 11, "target": 25, "claimed": false}],
"seasonXp": 820
},
"seasonPass": {
"seasonId": "S01",
"premium": false,
"claimedFree": [1,2,3],
"claimedPremium": []
},
"shop": {
"lastDailyRefreshUnix": 1773072000,
"purchases": [{"sku": "bundle_starter", "qty": 1}]
},
"ads": {
"rewardedToday": 4,
"lastRewardUnix": 1773085800
},
"settings": {
"sfx": 0.8,
"music": 0.6,
"language": "pt-BR",
"haptics": true
},
"antiCheat": {
"serverNonce": "abc123",
"lastServerSyncUnix": 1773086400
}
}
updatedAt + serverNonce + política server-wins para campos críticos.| Endpoint | Método | Objetivo |
|---|---|---|
| /auth/login | POST | Identidade + token de sessão |
| /save/pull | GET | Baixar save atual |
| /save/push | POST | Enviar delta/full save (validação server-side) |
| /economy/txn | POST | Transações atômicas (ouro/gema/item) |
| /iap/verify | POST | Validar compra de loja (Google/Apple) |
players/{playerId} com subcoleções leves.// documento principal (Firestore)
players/{playerId}
profile: {...}
economy: {...}
progress: {...}
updatedAt: serverTimestamp
tables:
- players(id, created_at, updated_at)
- player_profile(player_id, level, xp, vip)
- player_economy(player_id, gold, gems, energy_current, energy_max, last_tick)
- player_progress(player_id, kingdom, stage, stars_jsonb)
- player_inventory(player_id, item_id, qty)
- player_dragons(player_id, dragon_id, rarity, level, stars, count)
- player_missions(player_id, mission_id, progress, target, claimed)