Lobby:
- HandleCharSelectOk invoca UZeusNetworkSubsystem->ConnectToZeusServerWithTicket
(host, port, token) recebido do CharServer no S_CHAR_SELECT_OK.
Server travel:
- HandleServerTravelRequested força ZMMOGameMode via URL option
(`?game=/Script/ZMMO.ZMMOGameMode`) no OpenLevel, independente do
GameModeOverride do .umap. Evita herdar ZMMOFrontEndGameMode em mapas
copiados/baseados em L_FrontEnd.
PlayerController:
- ZMMOPlayerController::BeginPlay força FInputModeGameOnly + cursor off +
FlushPressedKeys ao tomar posse. Necessário pq UIManagerSubsystem é
LocalPlayerSubsystem (sobrevive ao travel) e o controller anterior
(AZMMOFrontEndPlayerController) tinha setado FInputModeUIOnly — sem este
reset, WASD/Look não chegavam ao pawn no novo mundo.
Assets:
- TestWorld: PlayerStart adicionado, World Settings com GameModeOverride=
ZMMOGameMode + Default Pawn=ZMMOPlayerCharacter + Controller=
ZMMOPlayerController.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Remove os pacotes de exemplo Variant_Combat, Variant_Platforming e Variant_SideScrolling (mais os External Actors/Objects associados) que vieram do template Third Person e nao fazem parte do cliente ZMMO. Ajusta Config/DefaultEditor.ini de acordo.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Estrutura inicial do cliente Unreal Zeus MMO alinhada ao padrao
"cliente solto + servidor valida input/velocidade" (ADR 0038):
- Source/ZMMO/Game/Entity/ — IZMMOEntityInterface, AZMMOEntity (base
AActor para Mob/NPC/Object), AZMMOPlayerCharacter (player local com
CMC livre, Enhanced Input, envio de C_INPUT_AXIS), AZMMOPlayerProxy
(snapshot-only para players remotos).
- Source/ZMMO/Game/Controller/ — AZMMOPlayerController com IMC defaults
(IMC_Default + IMC_MouseLook) e suporte opcional a virtual joystick.
- Source/ZMMO/Game/Modes/ — AZMMOGameMode (defaults para PlayerCharacter
/ PlayerController), UZMMOGameInstance (auto-connect ao servidor Zeus
em Init e logging dos eventos OnConnected/OnDisconnected/...).
- Source/ZMMO/Game/Network/ — UZMMOWorldSubsystem (registry
EntityId -> AActor*, dispatch dos delegates OnPlayerSpawned/Despawned/
StateUpdate; ignora snapshots locais do cliente solto).
- Config/DefaultEngine.ini — GlobalDefaultGameMode aponta para
/Script/ZMMO.ZMMOGameMode; GameInstanceClass para
/Script/ZMMO.ZMMOGameInstance; redirects para a nova hierarquia.
- ZMMO.Build.cs — depende de ZeusNetwork; PublicIncludePaths para a
nova arvore Game/Entity|Controller|Modes|Network.
- Content — assets do template ThirdPerson (Mannequins, IAs/IMCs,
Lvl_ThirdPerson + TestWorld). Os Variant_* levels ficam no commit
inicial mas serao limpos numa proxima sessao com aprovacao explicita
(Master Rule para .umap/.uasset).
Notas:
- BP_ThirdPersonCharacter/GameMode/PlayerController ainda apontam para
a hierarquia antiga e estao a aguardar aprovacao para remocao
(Master Rule).
- README.md descreve a arquitectura e o smoke test de conexao.