How chudooder/femultiplayer works
FEMultiplayer is an online, turn-based Fire Emblem tactics game. A player connects to a multiplayer session, joins a lobby (including as a spectator), builds or drafts a team, waits for match setup, and issues tactical map commands; attacks lead into combat resolution and then match results. The README also describes custom maps and Rout, rescue-the-flag, and throne-capture objectives. The graph reflects the sampled client, server, and gameplay code; several capability links rely on README documentation because their implementation was not sampled.
Main entry points: ClientOverworldStage.java Tactical Map · Client.java Network Client · ClientLobbyStage.java Lobby · AttackPreview.java Map Actions
Components 25
Session and Lobby
- Connect
src/net/fe/ConnectStage.java - Lobby
src/net/fe/lobbystage/ClientLobbyStage.java - Lobby Chat
src/net/fe/lobbystage/LobbyChatBox.java - Session Setup
src/net/fe/Session.java
Team Setup
- Team Builder
src/net/fe/builderStage/TeamBuilderStage.java - Team Draft
src/net/fe/builderStage/TeamDraftStage.java - Pick Modes
src/net/fe/pick/PickMode.java - Match Setup
src/net/fe/builderStage/ClientWaitStage.java - Player Party
src/net/fe/Party.java
Tactical Match
- Tactical Map
src/net/fe/overworldStage/ClientOverworldStage.java - Map and Terrain
src/net/fe/overworldStage/Grid.java - Map Actions
src/net/fe/overworldStage/context/AttackPreview.java - Units and Items
src/net/fe/unit/Unit.java - Objectives
src/net/fe/overworldStage/objective/Objective.java - Combat
src/net/fe/fightStage/FightStage.java - Combat Rules
src/net/fe/fightStage/CombatCalculator.java - Match Results
src/net/fe/overworldStage/EndGameStage.java - Level Editor
src/net/fe/editor/LevelEditorStage.java
Networking
- Network Client
src/net/fe/network/Client.java - Game Server
src/net/fe/network/Server.java - Game Messages
src/net/fe/network/Message.java
Game Engine
- Game Runtime
src/chu/engine/Game.java - Rendering and Audio
src/chu/engine/anim/Renderer.java
Other components
- Player
- Other Players
Connections 26
- Player → Connect: connects
- Connect → Network Client: connects through
- Lobby → Network Client: sends requests
- Lobby → Lobby Chat: uses
- Lobby → Session Setup: displays setup
- Lobby → Team Builder: starts picking
- Team Builder → Player Party: edits
- Team Draft → Pick Modes: uses mode
- Match Setup → Player Party: applies party data
- Match Setup → Tactical Map: starts match
- Tactical Map → Map and Terrain: loads map state
- Tactical Map → Units and Items: controls
- Tactical Map → Map Actions: dispatches actions
- Map Actions → Units and Items: updates
- Tactical Map → Network Client: sends commands
- Session Setup → Objectives: configures objective
- Map Actions → Combat: initiates battle
- Combat → Combat Rules: calculates combat
- Tactical Map → Match Results: opens on completion
- Network Client → Game Server: exchanges messages
- Network Client → Game Messages: processes
- Game Server → Game Messages: broadcasts
- Other Players → Game Server: plays through
- Game Runtime → Tactical Map: runs stage
- Tactical Map → Rendering and Audio: renders
- Level Editor → Map and Terrain: edits map data