2 ポイント 投稿者 GN⁺ 2025-08-24 | 1件のコメント | WhatsAppで共有
  • Libreboxは、オープンソースのLuauベース3Dゲームエンジンで、RobloxとのAPI互換性を目指している
  • 開発者はエンジンからコードまで、自分のゲームに対する完全な所有権を持てる
  • 現在はデモ段階であり、中核となるシーンレンダリング、カメラ移動、基本的なパーツ生成などをサポートしている
  • 今後のバージョンでは物理、ユーザー入力、マルチプラットフォーム対応などが追加される予定
  • ライセンスはMITで、完全無料かつ自由な改変と配布が可能

Librebox紹介

  • LibreboxはLuauエンジン上に構築されたオープンソースの3Dゲームエンジン
  • 主な目標はRobloxに似たAPIを提供し、既存のLuauコードとの互換性を最大限確保すること
  • 開発者はエンジン自体とゲームロジックの両方に対する所有権と自由を持ち、プラットフォーム依存から離れた開発が可能

なぜLibreboxなのか?

  • 自由なエンジン利用と所有権の確保が可能
  • 既存のRobloxやLuauに慣れた開発者はほとんど修正なしでコードを再利用可能
  • 自分自身のプラットフォーム構築と自由な配布、改変、収益化が可能

主なサンプルコード

  • 例: パーツを生成し、回転および色を変更
    • examples/part_example.lua ファイルを参照
    • 既存のLuau/Robloxコードとほぼ同じ方法で、パーツ生成、色、位置、回転、ループ処理が可能

サポート機能の概要(デモ版基準)

  • シーンレンダリング、ライティング、シャドウ、スカイボックス
  • game.Workspace内オブジェクトのレンダリング
  • 基本的なカメラ移動機能
  • Instance Systemおよび主要データ型のサポート
    • CFrame, Vector3, Color3, Random など
    • Instance.new, パーツの複製/破壊、プロパティ制御
  • クライアントサイドサービス
    • Workspace, Camera, Lighting, RunService など
    • RenderStep/HeartBeat イベントをサポート
  • Luauスクリプト対応およびスケジューラ
    • コルーチン、イベント、非同期処理(task.spawn, task.wait など)
  • ウィンドウ処理およびフルスクリーン最適化

プラットフォームと拡張性

  • 現在はWindows専用対応
  • raylibを活用しており、他OSへの移植が容易
  • スタンドアロン実行ファイルとして配布

今後提供予定の機能

  • 物理エンジンおよび衝突判定
  • モデル/メッシュ、画像、GUI、マテリアル対応
  • オンスクリーンGUI、Replication/Multiplayer(サーバー)
  • UserInputService, ContextActionService など
  • 独自エディタ、サーバー/クライアント完結型エコシステムの構築

ビジョンと今後

  • 完全独立型オープンソースエンジンとしてGodot, Unityに近い目標
  • プラットフォーム非依存で、自分のゲーム/自分のコードによる自由な開発を実現
  • エディタ、サーバー、配布、収益化に至るまで、あらゆる領域への拡張を計画
  • ユーザーAPIおよびソースコードの書き換えが可能

ライセンスと著作権

  • MITライセンス
  • Luau(Robloxエンジン由来、MIT)、raylib(zlib/libpng)など、オープンソースライセンスのみを使用
  • 商用プラットフォームや第三者とは無関係の独立プロジェクト
  • 外部ソース/アセット/プロプライエタリコードは含まれない

問い合わせとコミュニティ

  • メール: librebox.developers@gmail.com
  • 誰でも利用、フィードバック、修正、貢献が可能

技術スタック

  • C++, Lua, Luau, Python, C, CMake などで構成

重要性と比較優位

  • Roblox/Luaエコシステムに対応する独立系オープンソースエンジン
  • 既存の商用プラットフォームでは制限されがちな制作/所有/収益化の自由を提供
  • 完全なソース公開、API互換性、Windowsベースのデモ提供により、Luaベースの3Dゲーム/コンテンツ制作に適している

結論

  • 無料、オープンソース、互換性、自由を兼ね備えたゲームエンジンであり、ジュニア開発者やクロスプラットフォームゲーム開発にとって魅力的な選択肢

1件のコメント

 
GN⁺ 2025-08-24
Hacker Newsの意見
  • Libreboxはまだデモ段階で、Roblox APIのごく一部しか実装しておらず、サーバーやネットワーキングなど多くの機能が欠けている
    • 自分が開発チームなら、まずサーバーとネットワーキングの実装から始めるだろう。後から追加しようとすると本当に難しくなりがちだ
  • 斬新な試みだと思うし、幸運を祈る。Robloxの法務チームから攻撃されないといいが、Linuxネイティブクライアント方面で良い活用先が出てくる可能性がある。現在よく使われているSoberはプロプライエタリソフトウェアで、以前使われていたVinegarはLinuxハッカーの問題でブロックされた
    • Robloxが法的措置を試みる可能性はあるが、個人的にはこのプロジェクトは明らかに合法だと感じる。合法性の観点では、これはVLC Media Player(特許問題)より高く評価でき、NESエミュレータよりはるかに上だと思う。Androidよりは低いと思うが、いずれにせよOracleはAndroidを訴えたことがある。(私は弁護士ではない)
    • Roblox法務チームの優先順位を見ると、こうしたプロジェクトのほうが、Roblox内の児童搾取問題よりも優先して対処されそうだという気がする
  • :WaitForChild()がない点が言及されていたが、むしろ良いことではないかという話
    • 実際には大きな問題ではなく、ちょっとした便利機能にすぎない。busy waitingよりはましだ。コード実行前にあるオブジェクトが必ず存在するとは限らないことが多いので、次のように似た挙動を自分で実装できる: while not parentObj:FindFirstChild("childObj name") do wait() end。自分の知る限り、wait()関数は1フレームあたり1/30秒以上なので、完全に即時にしたければ各ハートビートごとに実行する必要がある
  • Robloxにはロックインされた膨大な量のユーザーコンテンツがあり、本当に多くの資産があると感じる
    • 特にClub系のコンテンツは必ず解放されるべきだ
  • リポジトリ(GitHub)を見ても開発者に関する情報がまったくない。Discordサーバーでさえチャンネルには何もなく、開発者ロールとして登録されているアカウントもプロジェクト専用の1つだけだ。ソースコードには実際に作業された形跡があり、READMEだけというわけではない。それでも全体として何か奇妙な感じがする
    • こういうのは一人でやるワンマンプロジェクトではよくあることだ
    • 好意的に解釈するなら、身元を隠しているのは法的問題を恐れているからだろう。Roblox自体が810億の価値を持つ大企業だ
  • Robuxが使えないなら個人的にはあまり興味がない。実際、問題の核心はRobux(通貨システム)であって、エンジンそのものはそこまで特別ではない
    • 多くの開発者がROBLOXから離れられない理由は、子どものころからROBLOXのツールを覚えて習熟し、そのスキルが他のほとんどのゲームエンジンでは使えないニッチな技能になってしまったからだ。今や選択肢は、Unityのような新しい環境で初心者としてやり直すか、以前のようにROBLOX内で高水準の成果物を出し続けるかしかない。各コミュニティで築いた友人関係や評判があるからだ。正直、API互換の代替がここまで遅れて登場したことのほうがむしろ驚きだ
    • 開発者が自分のRobloxゲームをスタンドアロンゲームとしてリリースし、プラットフォームロックインから脱出できる機会になるかもしれない。もちろん、既存ユーザーがついてくるかは別問題だ
    • 自分はRobloxが好きではないが、Robloxの制作ツールの完成度は実際かなり高いと聞く
  • このリポジトリはかなりクールだと思う
  • これがローカルでのテスト機能やQA向上に実際に役立つのか気になる。最近、react-luaアプリでjestテストを回すためにLune上でLemur(アーカイブ済み)を動かそうとしていて、in-game outputを出すテストランナーまで作っていた。問題はRoblox StudioがまだLinuxでvinegarパッケージ経由だとうまく動かないことで、単に RobloxStudio.exe --place game.rbxlx --script test_runner.lua --keep-open のようなオプションでコンソール出力を流し続けられるだけでも非常に便利だったはずだ
    • LemurリポジトリにloadPlaceFileを追加しようとして、そこに入れるのが正しいのか迷って止まっていたときにLibreboxを知り、今ではこれでreact-luaアプリをJestによるローカルCIテストに持っていけるのではと期待している
    • 参考までに、Robloxにはplace内でLuauコードを実行できるOpen Cloud Engine APIベータもある。[Beta] Open Cloud Engine API for Executing Luau
    • テストをローカルで回す利点: テスト失敗時のスクリーンショット・動画の記録、即時フィードバック、-iオプションやinteractiveで失敗時にそのままゲームセッションへ入れること