2 puntos por GN⁺ 2025-08-24 | 1 comentarios | Compartir por WhatsApp
  • Librebox es un motor de juegos 3D open source basado en Luau que busca la compatibilidad de API con Roblox
  • Los desarrolladores pueden tener propiedad total de su juego, desde el motor hasta el código
  • Actualmente está en fase de demo y soporta renderizado básico de escenas, movimiento de cámara y creación de partes básicas
  • En futuras versiones se agregarán física, entrada de usuario, soporte multiplataforma y más
  • La licencia es MIT: es completamente gratis y permite modificación y distribución libres

Introducción a Librebox

  • Librebox es un motor de juegos 3D open source construido sobre el motor Luau
  • Su objetivo principal es ofrecer una API similar a Roblox para garantizar al máximo la compatibilidad con código Luau existente
  • Los desarrolladores tienen propiedad y libertad tanto sobre el motor como sobre la lógica del juego, lo que permite desarrollar sin depender de una plataforma específica

¿Por qué Librebox?

  • Permite usar libremente el motor y asegurar la propiedad del proyecto
  • Los desarrolladores ya familiarizados con Roblox o Luau pueden reutilizar código casi sin modificaciones
  • Hace posible construir tu propia plataforma y distribuir, modificar y monetizar con libertad

Código de ejemplo principal

  • Ejemplo: crear una parte y aplicar rotación y cambio de color
    • Ver el archivo examples/part_example.lua
    • Permite crear partes, definir color, posición, rotación y procesamiento en bucle casi del mismo modo que en código Luau/Roblox existente

Resumen de funciones soportadas (versión demo)

  • Renderizado de escenas, iluminación, sombras y skybox
  • Renderizado de objetos dentro de game.Workspace
  • Movimiento básico de cámara
  • Soporte para Instance System y tipos de datos principales
    • CFrame, Vector3, Color3, Random, etc.
    • Instance.new, clonación/destrucción de partes, control de propiedades
  • Servicios del lado del cliente
    • Workspace, Camera, Lighting, RunService, etc.
    • Soporte para eventos RenderStep/HeartBeat
  • Soporte para scripts Luau y scheduler
    • Corrutinas, eventos y tareas asíncronas (task.spawn, task.wait, etc.)
  • Manejo de ventanas y optimización de pantalla completa

Plataforma y expansión

  • Actualmente solo tiene soporte para Windows
  • Usa raylib, por lo que es fácil de portar a otros sistemas operativos
  • Se distribuye como ejecutable standalone

Funciones previstas para el futuro

  • Motor de físicas y detección de colisiones
  • Soporte para modelos/mallas, imágenes, GUI y materiales
  • GUI en pantalla, replicación/multijugador (servidor)
  • UserInputService, ContextActionService, etc.
  • Desarrollo de un editor propio y de un ecosistema completo de servidor/cliente

Visión y futuro

  • Apunta a ser un motor open source totalmente independiente, con una meta similar a Godot y Unity
  • Busca hacer realidad un desarrollo libre con mi juego / mi código, sin dependencia de plataforma
  • Planea expandirse a editor, servidor, distribución y monetización
  • Será posible reescribir la API de usuario y el código fuente

Licencia y derechos de autor

  • Licencia MIT
  • Solo utiliza licencias open source como Luau (basado en el motor de Roblox, MIT) y raylib (zlib/libpng)
  • Es un proyecto independiente, sin relación con plataformas comerciales ni terceros
  • No incluye fuentes, assets ni código propietario externos

Contacto y comunidad

  • Correo electrónico: librebox.developers@gmail.com
  • Cualquiera puede usarlo, dar feedback, modificarlo y contribuir

Stack tecnológico

  • Está compuesto por C++, Lua, Luau, Python, C, CMake, entre otros

Importancia y ventajas comparativas

  • Es un motor open source independiente como respuesta al ecosistema de Roblox/Lua
  • Ofrece libertad de creación, propiedad y monetización que suele estar limitada en plataformas comerciales existentes
  • Con código fuente completamente abierto, compatibilidad de API y una demo para Windows, resulta adecuado para crear juegos y contenido 3D basados en Lua

Conclusión

  • Es un motor de juegos que reúne gratuito, open source, compatibilidad y libertad, y representa una opción atractiva para desarrolladores junior y para el desarrollo de juegos multiplataforma

1 comentarios

 
GN⁺ 2025-08-24
Opiniones de Hacker News
  • Librebox todavía está en etapa de demo, solo implementa una fracción muy pequeña de la API de Roblox y le faltan muchas funciones, como servidor o networking
    • Si yo estuviera en el equipo de desarrollo, empezaría implementando primero el servidor y el networking; cuando intentas agregarlos después, suele ser realmente difícil
  • Me parece un intento novedoso y les deseo suerte; ojalá no los ataque el equipo legal de Roblox. Podría tener muy buen uso del lado de un cliente nativo para Linux. Sober, que se usa mucho ahora, es software privativo, y Vinegar, que se usaba antes, fue bloqueado por problemas con hackers de Linux
    • Roblox podría intentar tomar acciones legales, pero personalmente siento que este proyecto es claramente legal. En términos de legalidad, le daría una calificación más alta que a VLC Media Player (por temas de patentes) y muchísimo más alta que a los emuladores de NES. Lo pondría por debajo de Android, pero de todos modos Oracle sí demandó a Android. (No soy abogado)
    • Viendo las prioridades del equipo legal de Roblox, da la impresión de que proyectos como este reciben más atención que el problema de explotación infantil dentro de Roblox
  • Se mencionó que no tiene :WaitForChild(), y alguien comenta que eso más bien podría ser algo bueno
    • En realidad no es un gran problema, es una función de conveniencia. Es mejor que hacer busy waiting. Muchas veces no se puede garantizar que cierto objeto exista antes de que se ejecute el código, pero puedes implementar algo parecido tú mismo así: while not parentObj:FindFirstChild("childObj name") do wait() end. Hasta donde sé, la función wait() es de al menos 1/30 de segundo por frame; si quieres algo totalmente inmediato, tendrías que ejecutarlo en cada heartbeat
  • Hay una enorme cantidad de contenido generado por usuarios atrapado dentro de Roblox; de verdad se siente que hay muchísimos recursos ahí
    • En especial, el contenido tipo Club definitivamente debería ser liberado
  • Por más que busqué información sobre el desarrollador en el repositorio (github), no encontré nada. Incluso el servidor de Discord no tiene nada en los canales, y solo hay una cuenta marcada con rol de desarrollador dedicada al proyecto. En el código fuente sí se nota trabajo real y no es solo un README vacío. Aun así, en general se siente un poco raro
    • Los proyectos unipersonales suelen ser así
    • Si lo interpreto de forma favorable, diría que oculta su identidad por miedo a problemas legales. Roblox en sí es una gran empresa valuada en 81 mil millones
  • Si no se puede usar Robux, personalmente no me interesa mucho. En realidad el centro del problema es Robux (el sistema monetario); el motor en sí no es tan especial
    • La razón por la que muchos desarrolladores no pueden salir de ROBLOX es que aprendieron y dominaron las herramientas de ROBLOX desde niños, y esa habilidad terminó convirtiéndose en una destreza de nicho que no sirve en la mayoría de los demás motores de juego. Ahora sus opciones son volver a empezar como principiantes en un entorno nuevo como Unity, o seguir produciendo resultados de alto nivel dentro de ROBLOX como siempre. Además, tienen amistades y reputación acumuladas en cada comunidad. Sinceramente, hasta sorprende que una alternativa compatible con la API haya tardado tanto en aparecer
    • También podría ser una oportunidad para que los desarrolladores publiquen sus juegos de Roblox como juegos independientes y escapen del lock-in de la plataforma. Claro, otra cosa es si sus usuarios actuales los seguirían
    • No me gusta Roblox, pero he escuchado que las herramientas de creación de Roblox sí están bastante bien hechas
  • Me parece que este repositorio está bastante genial
  • Me pregunto si esto ayuda de forma real con pruebas locales o con mejorar QA. Hace poco intenté hacer funcionar Lemur (archivado) en Lune para correr pruebas de jest en una app de react-lua, e incluso había hecho un test runner que mostraba la salida in-game. El problema es que Roblox Studio todavía no corre bien en Linux con el paquete de vinegar, así que habría sido súper cómodo poder dejar algo como RobloxStudio.exe --place game.rbxlx --script test_runner.lua --keep-open imprimiendo la salida en consola.
    • Intenté agregar loadPlaceFile al repositorio de Lemur, pero me detuve porque no estaba seguro de si realmente correspondía ponerlo ahí; en ese momento conocí Librebox, y ahora tengo la esperanza de usar esto para hacer pruebas locales de CI con Jest para apps de react-lua
    • Como referencia, también existe la beta de Open Cloud Engine API de Roblox para ejecutar código Luau dentro de un place. [Beta] Open Cloud Engine API for Executing Luau
    • Ventajas de correr las pruebas en local: capturas de pantalla y video cuando una prueba falla, retroalimentación inmediata, y poder entrar directo a la sesión del juego al fallar usando la opción -i o modo interactivo