Documentation: - Add detailed README files for all services (auth, character, database, launcher, packet, utils, world) - Create API documentation for the database service with detailed endpoint specifications - Document database schema and relationships - Add service architecture overviews and configuration instructions Unit Tests: - Implement comprehensive test suite for database repositories (user, character, session) - Add gRPC service tests for database interactions - Create tests for packet service components (bufferpool, connection, packets) - Add utility service tests (health check, logging, load balancer, redis cache, service discovery) - Implement auth service user tests - Add character service tests Code Structure: - Reorganize test files into a more consistent structure - Create a dedicated tests crate for integration testing - Add test helpers and mock implementations for easier testing
Game Launcher
The Game Launcher is a client-side application that launches the MMORPG game client with the appropriate connection parameters.
Overview
The Launcher is responsible for:
- Parsing launch URLs from the web authentication system
- Extracting connection parameters (server IP, port, session tokens)
- Launching the game client with the correct command-line arguments
- Handling updates (future functionality)
URL Format
The launcher accepts URLs in the following format:
launcher://launch?ip=127.0.0.1&port=29000&session=SESSION_TOKEN&username=USERNAME
Parameters:
ip: Game server IP addressport: Game server portotp: One-time password (for direct login)session: Session token (for direct login)username: User's usernamepassword: User's password (only used for non-direct login)
Command-Line Arguments
The launcher passes the following arguments to the game client:
@TRIGGER_SOFT@: Required trigger argument_server: Server IP address_port: Server port_direct: Direct login flag_otp: One-time password_session: Session token_userid: User's username_pass: User's password
Platform Support
The launcher supports:
- Windows: Launches TRose.exe directly
- Linux: Uses Bottles to run the Windows client
Configuration
No additional configuration is required. The launcher extracts all necessary information from the launch URL.
Building the Launcher
cargo build --release
Usage
The launcher is typically invoked by clicking a link on the game's website:
<a href="launcher://launch?ip=127.0.0.1&port=29000&session=SESSION_TOKEN&username=USERNAME">
Launch Game
</a>
It can also be run directly from the command line:
launcher "launcher://launch?ip=127.0.0.1&port=29000&session=SESSION_TOKEN&username=USERNAME"
Integration with External Systems
The Launcher integrates with:
- Web Authentication System: Receives launch parameters via URL
- Game Client: Launches the client with the appropriate parameters