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)
| Library | Version | Purpose |
|---|---|---|
| Boost | (system) | Threading |
| GoogleTest | 1.14.0 | Testing |
| spdlog | 1.14.1 | Logging |
| MariaDB Connector/C | 3.3.8 | MySQL client |
| MariaDB Connector/C++ | 1.1.7 | MySQL C++ |
| nlohmann/json | 3.11.2 | JSON parsing |
| yaml-cpp | 0.8.0 | YAML config |
| Lua | 5.4.7 | Gameplay scripting |
| FTXUI | 5.0.0 | Console UI |
| StormLib | 9.26 | MPQ archive handling |
| Librería | Versión | Propósito |
|---|---|---|
| Boost | (sistema) | Hilos |
| GoogleTest | 1.14.0 | Pruebas |
| spdlog | 1.14.1 | Registro |
| MariaDB Connector/C | 3.3.8 | Cliente MySQL |
| MariaDB Connector/C++ | 1.1.7 | MySQL C++ |
| nlohmann/json | 3.11.2 | Análisis JSON |
| yaml-cpp | 0.8.0 | Configuración YAML |
| Lua | 5.4.7 | Scripting de juego |
| FTXUI | 5.0.0 | Interfaz de consola |
| StormLib | 9.26 | Manejo 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.