Sobre el proyecto

Voxelize es un motor vóxel full-stack de código abierto para construir mundos vóxel persistentes y multijugador que se ejecutan en cualquier navegador moderno sin instalaciones ni complementos. El proyecto tiene licencia MIT y es desarrollado por voxelize/voxelize. Arquitectura - Servidor autoritativo en Rust: el crate `voxelize` ejecuta mundos impulsados por ECS, manejando la generación de chunks, física, entidades y eventos del lado del servidor. - Cliente de navegador en TypeScript: `@voxelize/core` renderiza mundos con Three.js y se mantiene sincronizado a través de WebSocket. - Protocolo y transporte compartidos: `@voxelize/protocol` define mensajes protobuf; `@voxelize/transport` los mueve. - Mallado WASM: `voxelize-wasm-mesher` compila el mesher del servidor a WebAssembly para que el remallado del lado del cliente siga las mismas reglas de geometría. - Agentes headless: `@voxelize/agent` controla clientes de navegador reales sin interfaz para pruebas, mediciones y bots. Capacidades descritas en el README - Bloques personalizados de forma, tamaño y material arbitrarios, con metadatos mediante entidades de bloque. - Entidades personalizadas que pueden deambular e interactuar con bloques y jugadores. - Multijugador en tiempo real con servidor autoritativo y sincronización integrada de entidades, chat y eventos. - Generación de mundos personalizada que admite mundos infinitamente grandes. Paquetes npm: @voxelize/core (motor del cliente), @voxelize/agent (SDK de agente headless), @voxelize/transport (transporte WebSocket), @voxelize/protocol (definiciones protobuf), @voxelize/physics-engine (física AABB consciente de vóxeles con auto-stepping), @voxelize/raycast (raycasting de vóxeles), @voxelize/debug (paneles de depuración en el juego), @voxelize/aabb (matemáticas AABB). Crates de Rust: voxelize (motor del servidor), voxelize-core (tipos centrales y codificación de datos de vóxeles), voxelize-gen (generación determinista de mundos con flujos de semillas, ruido, particiones climáticas, reglas de superficie, excavadores, hidrología, estructuras, diagnósticos), voxelize-mesher (mallado de chunks), voxelize-wasm-mesher (envoltorio WASM). Primeros pasos Los requisitos previos incluyen Rust, Node.js, pnpm, cargo-watch, wasm-pack y protoc. El flujo típico: clonar el repositorio, ejecutar `pnpm install`, `pnpm proto`, `pnpm build`, luego `pnpm demo`, y abrir http://localhost:3000. El README recomienda usar Voxelize como un submódulo del espacio de trabajo que se está construyendo. Los comandos de desarrollo incluyen `pnpm watch`, `pnpm test` (vitest), `pnpm test:rust`, `pnpm bench` (benchmarks criterion para mesher y luces), `pnpm check` y `pnpm lint`. Un perfil de cargo `release-dev` ofrece opt-level de nivel release con compilación incremental para ciclos más rápidos de edición-reconstrucción; las compilaciones publicadas deben usar `--release`. Documentación y comunidad Las guías y tutoriales están en docs.voxelize.io, con una referencia de API de Rust en docs.rs. Una vitrina de producción en vivo, Town, se ejecuta sobre Voxelize. La discusión de la comunidad ocurre en Discord, y los issues y pull requests son bienvenidos en GitHub. El README señala que Voxelize es un proyecto independiente de código abierto, no afiliado a ningún juego vóxel comercial ni a sus editores. Los activos incluyen la fuente Connection Serif (SIL Open Font) y Pixel Perfection de XSSheep (CC BY-SA 4.0, modificado).