Files
raven ad6ba2c8e6 More work.
Added chat service
Updated packet service to pass the tcp stream around in a Arc type.
Updated character position data to not require multiplying the coords
Added more debug logs
Added an interceptor for gRPC comms with the chat server
Updated build and push script for the chat server changes
2025-06-06 17:52:29 -04:00
..
2025-06-06 17:52:29 -04:00

Character Service

The Character Service manages character creation, deletion, and retrieval in the MMORPG server architecture.

Overview

The Character Service provides gRPC endpoints for:

  • Retrieving character lists for users
  • Creating new characters
  • Deleting characters
  • Retrieving detailed character information

It communicates with the database service to store and retrieve character data.

Architecture

The service is built using the following components:

  • gRPC Server: Exposes character management endpoints
  • Character DB Client: Communicates with the database service for character data

Service Endpoints

The Character Service exposes the following gRPC endpoints:

GetCharacterList

Retrieves a list of characters for a user.

rpc GetCharacterList(GetCharacterListRequest) returns (GetCharacterListResponse);

CreateCharacter

Creates a new character for a user.

rpc CreateCharacter(CreateCharacterRequest) returns (CreateCharacterResponse);

DeleteCharacter

Marks a character for deletion or permanently deletes it.

rpc DeleteCharacter(DeleteCharacterRequest) returns (DeleteCharacterResponse);

GetCharacter

Retrieves detailed information about a specific character.

rpc GetCharacter(GetCharacterRequest) returns (GetCharacterResponse);

Character Data Structure

Characters in the system have the following key attributes:

  • Basic Information: ID, name, user ID, creation/deletion dates
  • Appearance: Race, face, hair, stone
  • Stats: Level, attributes (STR, DEX, INT, etc.), HP, MP, experience
  • Inventory: Items, equipment
  • Position: Map ID, coordinates

Configuration

The service can be configured using environment variables:

  • LISTEN_ADDR: The address to listen on (default: "0.0.0.0")
  • SERVICE_PORT: The port to listen on (default: "50053")
  • LOG_LEVEL: Logging level (default: "info")

Running the Service

Local Development

cargo run

Docker

docker build -t character-service .
docker run -p 50053:50053 character-service

Integration with External Systems

The Character Service integrates with:

  • Database Service: For character data storage and retrieval
  • Auth Service: For user authentication and authorization
  • Packet Service: For handling client requests related to characters