Unity 6
URP
uGUI
Mobile F2P

Dragon Fusion — Manual do Desenvolvedor Melhorado (v4)

Documento consolidado e operacional para implementação real em Unity. Esta versão complementa e organiza o que já foi feito em GDD, planos de tela, backlog e guia master.

O que este documento resolve

  • Manual de desenvolvimento executável com padrões técnicos obrigatórios.
  • Arquitetura, fluxo de cenas, prefabs, contratos de dados e analytics mínimos.
  • Conecta visual (ZIP 01) com implementação (scripts/services/save/events).

1. Diagnóstico dos documentos atuais

Pontos fortes

  • Boa cobertura de telas.
  • Backlog inicial já existe.
  • Direção de produto casual/F2P bem definida.
  • Guia master já propõe Service Layer + SO + Events.

Lacunas

  • Faltava vínculo Tela → Presenter → Service.
  • Faltava ciclo de save/load por evento.
  • Nomenclatura parcial de assets/prefabs.
  • Dependências entre tarefas pouco explícitas.

Risco evitado

  • Telas acopladas sem padrão.
  • Lógica duplicada em missões/recompensas/loja.
  • Escala de conteúdo sem pipeline de dados.
  • Perda de performance por canvas único e rebuild global.
Decisão: manter v3 unificado como canônico e usar este manual como camada operacional com regras obrigatórias de implementação.

2. Arquitetura oficial

Scenes: Boot, Home, Map, Battle, MetaOverlay
Canvas por cena: Background / HUD / Content / PopupLayer / Transition
Padrão por feature: View + Presenter + Service + DTO + ScriptableObject
Autoridade do servidor: economia, compras, ranking, season rewards

3. Estrutura de projeto e nomenclatura

Assets/_Game/
  Art/UI/Atlases
  Prefabs/{Core,UI,Home,Map,Battle,Meta}
  Scripts/{Core,Data,Services,Features,SharedUI}
  Data/ScriptableObjects/{Balance,Levels,Rewards,Offers,Creatures}
  Scenes/{Boot,Home,Map,Battle,Meta}

Prefabs base: PF_UI_ButtonPrimary, PF_UI_CurrencyBar, PF_MAP_StageNode, PF_BATTLE_Cell, PF_CREATURE_Card, PF_MODAL_Reward.

4. Matriz técnica por tela (resumo executável)

TelaPresenterServiceSave SliceEventos
01 LoadingBootPresenterRemoteConfig/Save/AnalyticslastBootAt, bootVersionboot_start, boot_success, boot_fail
02 ConsentConsentPresenterConsent/AdsconsentVersion, acceptedAtconsent_accept, consent_manage
03 HomeHomePresenterEconomy/Energy/Missions/ChestspendingClaims, timershome_open, home_cta_play
04 MapMapPresenterProgress/UnlockRulesworldId, stageIdmap_open, stage_select
05/06 BattleBattlePresenterBattle/Boosters/Rewardsseed, turns, scorelevel_start, move_done, booster_used
07 VictoryResultPresenterReward/Ads/Progressstars, bestScorelevel_complete, reward_claim
08 FailFailPresenterAds/EnergycontinueUsedlevel_fail, revive_offer
09 MissionsMissionPresenterMissions/SeasonPassmissionProgressmission_claim
11/12 RewardsRewardPresenterDailyReward/SeasonRewardlastDailyClaimAtdaily_claim, tier_reward_claim
14/14a/14b PvPLeaderboardPresenterMirror/Ghost/LeaderboardseasonSnapshotpvp_open, pvp_battle_start
15/15a CollectionCollectionPresenterCollectionServicediscovered, ownedcollection_open, card_open
16 HatchHatcheryPresenterHatchery/InventoryeggTimersegg_start, egg_open
17 EvolveEvolutionPresenterFusion/Collection/EconomyfusionCountfusion_start, fusion_complete
20 ModaisSettings/Support/TutorialSettings/Ticket/Tutorialsettings, tutorialFlagstutorial_step, support_open

5. Save e checkpoints obrigatórios

{
 "schemaVersion": 5,
 "playerId": "uuid",
 "economy": {"gold":0,"gems":0,"energy":{"current":20,"max":20,"regenSec":900,"lastTickUtc":0}},
 "progress": {"worldId":1,"stageId":1,"starsByStage":{}},
 "missions": {"daily":[],"weekly":[]},
 "collection": {"creatures":[]},
 "hatchery": {"eggs":[]},
 "settings": {"music":1,"sfx":1,"vibration":1,"quality":1,"language":"pt-BR"},
 "consent": {"version":"1.0.0","acceptedAtUtc":0,"adsPersonalized":false}
}

Checkpoint de save em: boot concluído, retorno ao lobby, fim de fase, claim de reward, início/fim de incubação, evolução, alteração de settings.

6. Definition of Done (unificada)

Uma tela só está pronta quando:
1) abre/fecha no fluxo oficial;
2) usa dados reais ou mock padronizado;
3) possui analytics mínimos;
4) persiste o necessário;
5) funciona em 3 aspect ratios alvo;
6) trata loading/vazio/erro;
7) usa prefabs reutilizáveis quando aplicável;
8) foi validada contra o ZIP 01.

7. Próximo passo técnico