warfactoryracine/docs/client/README.md
StillHammer bb92e9dc93 Add comprehensive engine-focused documentation structure
📚 Complete documentation reorganization:

🗂️ Structure:
- docs/global/ → Complete project documentation (all original files)
- docs/engines/ → 10 engine-specific docs with focused responsibilities
- docs/serveur/ → Server coordinator and inter-engine communication
- docs/client/ → Smart Client interface and user experience

🔧 Engine Documentation:
- Designer: Vehicle design with AI assistance (1-2 designs/tick)
- Economy: Market simulation and dynamic pricing
- Event: Breakthrough system and global events
- Factory: Factorio-like production with belts/assemblers
- Intelligence: Metrics collection (3.1GB adaptive) + reconnaissance
- Logistic: Supply chains and convoy management
- MacroEntity: Companies, diplomacy, administration (1000 pts/day)
- Map: Procedural generation (218+ elements) + chunk streaming
- Operation: Military strategy and adaptive AI generals
- War: Multi-chunk combat and persistent frontlines

📋 Each engine doc includes:
- Core responsibilities and system overview
- Key mechanics from relevant design documents
- Communication patterns with other engines
- Implementation notes and architecture details

🎯 Navigation optimized for:
- Engine developers (focused system details)
- System architects (coordination patterns)
- Game designers (mechanics integration)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 14:41:03 +08:00

5.2 KiB

Client Documentation

Overview

The Smart Client provides the user interface and interacts with the server coordinator using a request/response pattern.

Key Responsibilities:

  • User interface for all game systems
  • Request/response communication with server
  • Local state caching and optimization
  • Fog of War rendering and management

Architecture

Smart Client Pattern

From architecture-technique.md:

  • No Streaming: Pure request/response communication
  • Stateless Requests: Each request is independent
  • Local Caching: Client-side optimization for responsiveness
  • FOW Integration: Chunk-level fog of war rendering

User Interface Systems

Multi-Scale Interface

From map-system.md:

  • World View: Diplomatic and strategic overview
  • Regional View: Logistics and major operations coordination
  • Local View: Factory management and base operations
  • Detail View: Combat oversight and precise control

Factory Management Interface

From gameplay-industriel.md:

  • Production Line Design: Factorio-like belt and assembler placement
  • Resource Flow Visualization: Real-time production monitoring
  • Optimization Tools: Bottleneck identification and efficiency metrics
  • Automation Controls: Production scheduling and priority management

Vehicle Design Interface

From systeme-militaire.md:

  • Grid-Based Placement: Component positioning on vehicle chassis
  • Interface Controls: Pick/place with A/E rotation, R for snap toggle
  • Template System: Save/load vehicle blueprints
  • Validation Feedback: Real-time design constraint checking

Military Command Interface

  • Frontline Visualization: Persistent battle line display
  • Auto-Battler Controls: Strategic oversight without micro-management
  • Intelligence Dashboard: Reconnaissance and enemy analysis
  • Strategic Planning: Operation coordination and resource allocation

Core Client Systems

Communication Manager

class ClientCommunication {
    // Server communication
    ServerResponse sendRequest(const ClientRequest& request);
    void cacheResponse(const ServerResponse& response);
    bool hasValidCache(const RequestKey& key) const;

    // FOW management
    void updateFOW(const FOWData& data);
    bool isVisible(int chunkX, int chunkY) const;
    void requestChunkData(int chunkX, int chunkY);

    // State synchronization
    void synchronizeState();
    void handleGlobalEvent(const GlobalEvent& event);
};

Interface Controllers

Factory Interface

  • Belt Placement: Drag-and-drop belt network design
  • Assembler Configuration: Production recipe and priority settings
  • Resource Monitoring: Real-time throughput and efficiency display
  • Expansion Planning: Factory layout optimization tools

Design Interface

  • Component Library: Available vehicle components and specifications
  • Chassis Editor: Irregular shape design and component placement
  • Performance Calculator: Real-time design statistics and validation
  • Blueprint Manager: Template save/load and sharing system

Strategic Interface

  • Company Dashboard: Economic, military, and industrial overviews
  • Diplomatic Panel: Inter-company relations and negotiations
  • Research Tree: Technology progression and breakthrough system
  • Analytics Dashboard: Comprehensive metrics and trend analysis

Performance Optimization

Local Caching

  • Response Caching: Store frequently accessed data locally
  • Predictive Loading: Pre-fetch likely needed data
  • Cache Invalidation: Smart cache updates on state changes
  • Compression: Minimize bandwidth usage

Rendering Optimization

  • LOD System: Level-of-detail based on zoom and relevance
  • Culling: Only render visible and relevant elements
  • Chunk Streaming: Dynamic loading of map data
  • UI Responsiveness: Maintain 60fps interface performance

Client Request Patterns

Common Request Types

  1. State Queries: Get current system state (factory status, battles, etc.)
  2. Action Commands: Execute player actions (place building, issue orders)
  3. Data Updates: Refresh cached information (market prices, research progress)
  4. Event Subscriptions: Register for relevant global events

FOW-Aware Requests

  • Visibility Checks: Ensure requested data is visible to player
  • Partial Information: Handle incomplete data due to FOW
  • Intelligence Requests: Request reconnaissance on hidden areas
  • Update Notifications: Receive visibility changes and new intel

Key Design Documents

  • architecture-technique.md - Smart Client specification
  • gameplay-industriel.md - Factory interface requirements
  • systeme-militaire.md - Vehicle design and combat interfaces
  • map-system.md - Multi-scale interface coordination
  • mecaniques-jeu.md - UI integration with game mechanics

Implementation Notes

  • Request/response pattern eliminates complex state synchronization
  • Local caching provides responsive user experience
  • FOW integration requires careful visibility checking
  • Multi-scale interface demands efficient view switching