Developer Setup Configuración de Desarrollador

Developer SetupConfiguración de Desarrollador

PrerequisitesPrerrequisitos

  • CMake 3.10+
  • C++17 compliant compiler (GCC, Clang, MSVC)
  • Ninja build system
  • MySQL 8.0 (via Docker)
  • Git
  • CMake 3.10+
  • Compilador compatible con C++17 (GCC, Clang, MSVC)
  • Sistema de construcción Ninja
  • MySQL 8.0 (vía Docker)
  • Git

Quick StartInicio Rápido

1. Clone the Repository1. Clonar el Repositorio

git clone https://github.com/FirelandsProject/firelands-next
cd firelands-next

2. Configure the Build2. Configurar la Construcción

cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug

Notes:

  • Generator: MUST use Ninja (not Make)
  • ccache: Auto-detected and enabled if installed

Notas:

  • Generador: DEBE usar Ninja (no Make)
  • ccache: Auto-detectado y habilitado si está instalado

3. Build3. Construir

ninja -C build                    # Full build
ninja -C build auth world         # Build auth and world servers

Full build / Build auth and world servers

Construcción completa / Construir servidores auth y world

4. Start Database4. Iniciar Base de Datos

docker-compose up -d db

Database credentials:

  • MySQL: mysql:8.0
  • Port: 3306
  • Root: root/root
  • User: firelands/firelands
  • Databases: auth, characters, world

Credenciales de base de datos:

  • MySQL: mysql:8.0
  • Puerto: 3306
  • Root: root/root
  • Usuario: firelands/firelands
  • Bases de datos: auth, characters, world

5. Run Servers5. Ejecutar Servidores

./build/bin/auth    # Auth server
./build/bin/world   # World server

Auth server / World server

Servidor auth / Servidor world

Building TestsConstruir Pruebas

cmake -B build -G Ninja -DFIRELANDS_BUILD_TESTS=ON
ninja -C build
ctest --test-dir build           # Run all tests
ctest --test-dir build -R <pattern>  # Run specific tests

Run all tests / Run specific tests

Ejecutar todas las pruebas / Ejecutar pruebas específicas

Dependencies (Fetched via CMake)Dependencias (Obtenidas vía CMake)

LibraryVersionPurpose
Boost(system)Threading
GoogleTest1.14.0Testing
spdlog1.14.1Logging
MariaDB Connector/C3.3.8MySQL client
MariaDB Connector/C++1.1.7MySQL C++
nlohmann/json3.11.2JSON parsing
yaml-cpp0.8.0YAML config
Lua5.4.7Gameplay scripting
FTXUI5.0.0Console UI
StormLib9.26MPQ archive handling
LibreríaVersiónPropósito
Boost(sistema)Hilos
GoogleTest1.14.0Pruebas
spdlog1.14.1Registro
MariaDB Connector/C3.3.8Cliente MySQL
MariaDB Connector/C++1.1.7MySQL C++
nlohmann/json3.11.2Análisis JSON
yaml-cpp0.8.0Configuración YAML
Lua5.4.7Scripting de juego
FTXUI5.0.0Interfaz de consola
StormLib9.26Manejo de archivos MPQ

Cross-PlatformMultiplataforma

  • Windows: MSVC or MinGW
  • Linux: GCC or Clang
  • macOS: Clang (Apple Clang)

Use std::filesystem for paths and std::thread for threading.

  • Windows: MSVC o MinGW
  • Linux: GCC o Clang
  • macOS: Clang (Apple Clang)

Usar std::filesystem para rutas y std::thread para hilos.