2 pontos por GN⁺ 2025-08-24 | 1 comentários | Compartilhar no WhatsApp
  • Librebox é um motor de jogo 3D open source baseado em Luau que busca compatibilidade de API com o Roblox
  • Os desenvolvedores podem ter propriedade total do jogo, do motor ao código
  • No momento, está em fase de demonstração, com suporte a renderização básica de cena, movimentação de câmera e criação de partes simples
  • Em versões futuras, estão previstos recursos como física, entrada do usuário e suporte multiplataforma
  • A licença é MIT, totalmente gratuita e permite modificação e distribuição livremente

Introdução ao Librebox

  • Librebox é um motor de jogo 3D open source construído sobre o Luau
  • O objetivo principal é fornecer uma API semelhante à do Roblox, garantindo ao máximo a compatibilidade com código Luau existente
  • Os desenvolvedores têm propriedade e liberdade tanto sobre o próprio motor quanto sobre a lógica do jogo, podendo desenvolver sem dependência de plataforma

Por que Librebox?

  • Permite uso livre do motor e garantia de propriedade
  • Desenvolvedores já familiarizados com Roblox ou Luau podem reutilizar código quase sem modificações
  • É possível criar a própria plataforma e ter liberdade para distribuir, modificar e monetizar

Principais exemplos de código

  • Exemplo: criar uma parte e aplicar rotação e mudança de cor
    • Consulte o arquivo examples/part_example.lua
    • É possível criar partes, definir cor, posição, rotação e tratar loops quase da mesma forma que no código tradicional de Luau/Roblox

Resumo dos recursos suportados (versão demo)

  • Renderização de cena, iluminação, sombras e skybox
  • Renderização de objetos dentro de game.Workspace
  • Funções básicas de movimentação de câmera
  • Sistema de Instance e suporte aos principais tipos de dados
    • CFrame, Vector3, Color3, Random etc.
    • Instance.new, clonagem/destruição de partes, controle de propriedades
  • Serviços do lado do cliente
    • Workspace, Camera, Lighting, RunService etc.
    • Suporte a eventos RenderStep/HeartBeat
  • Suporte a scripts Luau e scheduler
    • corrotinas, eventos, tarefas assíncronas (task.spawn, task.wait etc.)
  • Gerenciamento de janelas e otimização para tela cheia

Plataforma e expansão

  • Atualmente com suporte apenas para Windows
  • Usa raylib, o que facilita a portabilidade para outros sistemas operacionais
  • Distribuído como executável standalone

Recursos previstos para o futuro

  • Motor de física e detecção de colisão
  • Suporte a modelos/malhas, imagens, GUI e materiais
  • GUI na tela, Replication/Multiplayer (servidor)
  • UserInputService, ContextActionService etc.
  • Construção de um ecossistema completo com editor próprio e servidor/cliente

Visão e futuro

  • Objetivo semelhante ao de Godot e Unity como um motor open source totalmente independente
  • Tornar possível desenvolver livremente com meu jogo/meu código, sem dependência de plataforma
  • Planos de expansão em todas as áreas, incluindo editor, servidor, distribuição e monetização
  • Possibilidade de reescrever a API do usuário e o código-fonte

Licença e direitos autorais

  • Licença MIT
  • Uso apenas de licenças open source como Luau (baseado no motor do Roblox, MIT) e raylib (zlib/libpng)
  • Projeto independente sem relação com plataformas comerciais ou terceiros
  • Não inclui fontes, assets ou código proprietário externos

Contato e comunidade

  • E-mail: librebox.developers@gmail.com
  • Qualquer pessoa pode usar, dar feedback, modificar e contribuir

Stack técnica

  • Composto por C++, Lua, Luau, Python, C, CMake etc.

Importância e vantagens comparativas

  • Motor open source independente para o ecossistema Roblox/Lua
  • Oferece liberdade de criação, propriedade e monetização que costuma ser limitada em plataformas comerciais existentes
  • Com código-fonte totalmente aberto, compatibilidade de API e demo para Windows, é adequado para criação de jogos e conteúdos 3D baseados em Lua

Conclusão

  • Um motor de jogo que reúne gratuidade, open source, compatibilidade e liberdade, sendo uma opção atraente para desenvolvedores iniciantes e para desenvolvimento de jogos multiplataforma

1 comentários

 
GN⁺ 2025-08-24
Comentários do Hacker News
  • O Librebox ainda está em fase de demo, implementa apenas uma fração minúscula da API do Roblox, e faltam muitos recursos, como servidor e rede
    • Se eu estivesse na equipe de desenvolvimento, começaria implementando servidor e rede primeiro; tentar adicionar isso depois costuma ser realmente difícil
  • Acho que é uma tentativa inovadora e desejo sorte, espero que não seja atacado pelo jurídico do Roblox; isso pode ter uma boa utilidade para um cliente nativo em Linux. O Sober, muito usado hoje, é software proprietário, e o Vinegar, usado antes, foi bloqueado por causa de problemas com hackers de Linux
    • O Roblox pode até tentar tomar medidas legais, mas, pessoalmente, esse projeto me parece claramente legal. Pelo critério de legalidade, eu daria a isso uma nota mais alta do que o VLC Media Player (questões de patente) e muito mais alta do que emuladores de NES. Acho que fica abaixo do Android, mas, de qualquer forma, a Oracle já processou o Android. (Não sou advogado)
    • Olhando para as prioridades do jurídico do Roblox, dá a impressão de que um projeto desses é tratado com mais urgência do que o problema de exploração infantil dentro do Roblox
  • Foi mencionado que não há :WaitForChild(), e alguém comentou que isso talvez seja até uma coisa boa
    • Na verdade, não é um grande problema, é só uma pequena conveniência, melhor do que busy waiting. Muitas vezes não há garantia de que certo objeto exista antes da execução do código, mas dá para implementar um comportamento parecido manualmente assim: while not parentObj:FindFirstChild("childObj name") do wait() end. Pelo que eu sei, a função wait() é de pelo menos 1/30 de segundo por frame; para algo totalmente imediato, seria preciso executar a cada heartbeat
  • Há uma quantidade enorme de conteúdo gerado por usuários presa ao Roblox, dá para sentir que existe muito recurso ali
    • Especialmente conteúdos do tipo Club, que precisam ser libertados
  • Procurei por toda parte no repositório (github) informações sobre o desenvolvedor e não achei nada. Até o servidor de Discord não tem nada nos canais, e a única conta com papel de desenvolvedor parece ser uma conta dedicada exclusivamente ao projeto. O código-fonte mostra sinais reais de trabalho feito, não é só um README vazio. Mesmo assim, no geral, tudo parece meio estranho
    • Projetos solo de uma pessoa só costumam ser assim mesmo
    • Numa leitura mais favorável, esconder a própria identidade parece ser por medo de problemas legais. O próprio Roblox é uma gigante avaliada em 81 bilhões
  • Se não for possível usar Robux, pessoalmente não tenho muito interesse. Na verdade, o cerne da questão é o Robux (o sistema monetário); o motor em si não é tão especial assim
    • Muitos desenvolvedores não conseguem sair do ROBLOX porque aprenderam e ficaram bons nas ferramentas do ROBLOX desde crianças, e essas habilidades acabaram virando competências de nicho que não servem para a maioria dos outros motores de jogo. Agora, as opções são recomeçar como iniciante em um ambiente novo, como Unity, ou continuar produzindo resultados de alto nível dentro do ROBLOX como antes. Isso porque eles têm amizades e reputação construídas em cada comunidade. Sinceramente, o mais surpreendente é que um substituto compatível com a API tenha demorado tanto para aparecer
    • Também pode ser uma oportunidade para os desenvolvedores lançarem seus jogos de Roblox como jogos independentes e escaparem do lock-in da plataforma. Claro, se os usuários atuais vão acompanhá-los é outra história
    • Eu não gosto de Roblox, mas ouvi dizer que as ferramentas de criação do Roblox são, de fato, bem boas
  • Acho este repositório bem legal
  • Fico me perguntando se isso ajuda de forma prática com testes locais ou melhoria de QA. Recentemente tentei fazer o Lemur (arquivado) rodar em Lune para executar testes de Jest em um app react-lua, e até cheguei a criar um test runner que imprimia output in-game. O problema é que o Roblox Studio ainda não roda direito no Linux com o pacote vinegar, então teria sido muito útil se eu pudesse simplesmente manter a saída do console rolando com RobloxStudio.exe --place game.rbxlx --script test_runner.lua --keep-open.
    • Quando fui adicionar loadPlaceFile ao repositório do Lemur, parei porque não tinha certeza se era o lugar certo para isso; foi aí que conheci o Librebox, e agora espero poder usá-lo para testes locais de CI com Jest em apps react-lua
    • Só como referência, também existe uma beta da Open Cloud Engine API do Roblox para executar código Luau dentro de um place. [Beta] Open Cloud Engine API for Executing Luau
    • Vantagens de rodar testes localmente: screenshots e gravações de vídeo quando o teste falha, feedback imediato, e possibilidade de entrar direto na sessão do jogo quando há falha usando a opção -i ou modo interativo