Saltar al contenido principal

Instalación local

Guía para compilar y ejecutar Xindeler en tu máquina.

Requisitos

Rust nightly

El proyecto requiere Rust nightly por el uso de features experimentales del compilador. Instalá con rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup toolchain install nightly
rustup default nightly

Dependencias del sistema (Linux)

# Debian / Ubuntu
sudo apt install \
libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libxkbcommon-dev libssl-dev libasound2-dev \
cmake pkg-config git

# Arch
sudo pacman -S base-devel libxcb libxkbcommon openssl alsa-lib cmake

En macOS y Windows no se requieren dependencias adicionales más allá de Rust y Git.

GPU

El cliente usa wgpu y requiere una GPU con soporte para Vulkan (Linux/Windows) o Metal (macOS). En Windows también funciona con DirectX 12.


Clonar el repositorio

git clone https://github.com/Matute289/xindeler
cd xindeler

Compilar

# Debug — compilación rápida, binario más lento (recomendado para desarrollo)
cargo build

# Release — compilación lenta (~20 min la primera vez), binario optimizado
cargo build --release

La primera compilación descarga e indexa todas las dependencias. Las subsiguientes son incrementales y mucho más rápidas.


Levantar el servidor

cargo run --bin xindeler-server

El servidor escucha en el puerto 14004 usando el protocolo Xindeler sobre QUIC (Quinn). Al iniciarse genera el mundo si no existe un rtsim/data.dat previo — esto puede tardar un minuto.

Logs esperados al inicio exitoso:

[INFO] World loaded in 3.2s
[INFO] Listening on 0.0.0.0:14004
[INFO] Server ready

Levantar el cliente

En otra terminal:

cargo run --bin voxygen

El cliente (Voxygen) busca un servidor en localhost:14004 por defecto. Al conectar pedirá usuario y contraseña — en un servidor local podés usar cualquier combinación.


Linker rápido (opcional, Linux)

En Linux, mold reduce el tiempo de linkeo significativamente:

sudo apt install mold

Agregá a .cargo/config.toml en la raíz del repo:

[target.x86_64-unknown-linux-gnu]
linker = "clang"
rustflags = ["-C", "link-arg=-fuse-ld=mold"]

Problemas comunes

error[E0554]: #![feature] may not be used on the stable release channel Estás en stable, no en nightly:

rustup default nightly

El cliente no conecta al servidor El servidor tarda unos segundos en inicializar el mundo. Esperá a ver el log Server ready antes de lanzar el cliente.

Pantalla negra o crash en el cliente Verificá que tu GPU tenga drivers actualizados con soporte Vulkan/Metal. En Linux podés probar forzando el backend:

WGPU_BACKEND=gl cargo run --bin voxygen

Compilación falla en ring o openssl Instalá pkg-config y las headers de OpenSSL:

sudo apt install pkg-config libssl-dev