Librebox: An open source, Roblox-compatible game engine

(github.com)

210 points | by libreboxdevs 12 hours ago ago

57 comments

  • koshergweilo 7 hours ago

    > Librebox is currently in demo stage (it implements a limited subset of the Roblox API

    Probably worth mentioning this is just a demo. There's a looooong list of API features that aren't implemented (most notably servers and networking)

    • jay_kyburz 2 hours ago

      I would start with the servers and networking if I were them. It can be really hard to bolt that on later.

  • poly2it 10 hours ago

    Best wishes, this is really neat. I hope it won't get slaughtered by Roblox's legal team. A potential use-case might be to create a Linux-native client. The one used by most right now (Sober) is proprietary, after the previous (Vinegar) got shut down because of Linux haxxors.

    • Wowfunhappy 9 hours ago

      > I hope it won't get slaughtered by Roblox's legal team.

      I'm not saying Roblox won't try, but this project strikes me as very obviously legal.

      If legality was a spectrum, I'd rank this higher than VLC Media Player (patents) and way above an NES emulator. I suppose it'd be below Android, and Oracle did sue over Android.

      (Disclaimer, I am not a lawyer, etc.)

      • LocalH 5 hours ago

        Emulators are unambiguously legal as long as the emulator author doesn't distribute copyrighted software without permission, and as long as no encryption is involved (recent action by Nintendo have made that bit a little unclear).

        • pbhjpbhj 5 hours ago

          In all jurisdictions? What are the principal pieces of caselaw?

          • hnlmorg 4 hours ago

            I don’t know of any country where emulation is illegal? Do you?

            As the GP pointed out, OEMs use copyright and encryption to protect against unapproved execution. But that doesn’t apply to all systems.

            Given countries like the UK and US have the strictest intellectual property and computer misuse laws, and emulation is legal there (bar the aforementioned caveats), I’d be surprised if there was a jurisdiction where emulation was illegal. However if you do know of somewhere then please do share.

            • Belopolye 2 hours ago

              To my knowledge emulation is illegal in Japan, as is modding consoles.

              Edit: I looked into it a bit more. As it is against the law to dump ROMs from games you have legally purchased, as well as acquiring them through other channels, there is no way to emulate games in Japan in a legal manner.

      • 999900000999 9 hours ago

        Two factors are at play.

        This looks like it just reimplements a few Roblox APIs in an open source engine. It would of probably made more sense to just create a Roblox to Godot translator or something.

        Second, your poking a multi billion dollar bear. If this project ever takes off Roblox will take action, right or wrong that's enough to stop most small projects. You can be right, but you don't have millions to fight non stop lawsuits.

        In reality this is a cute proof of concept. It's never going to compete with the actual product. If it does Roblox will have it stopped in 72 hours

        • giancarlostoro 3 hours ago

          > It would of probably made more sense to just create a Roblox to Godot translator

          Its meant to be running live so you can play the many dynamic roblox games, I guess you could but it would be a mess.

        • axus 7 hours ago

          The open source part is key. Plenty of online Pokemon and World of Warcraft clones out there, they can't seem to catch them all.

          • lukan 7 hours ago

            No need to. But anything too succesful should be ready to be brought down any moment.

            • Imustaskforhelp 3 hours ago

              pokemon showdown is insanely and I mean insanely successful but it seems to have been almost blessed by the pokemon company.

              I genuinely don't know how its legal, when I shared the link to pokemon showdown to one of my friends, his first thoughts was, wait how is this legal? This is such a good thing, I wonder why this is free. Only for me to tell it its open source and bro was flabbergasted to say the least.

        • gjsman-1000 9 hours ago

          In practice, no society has ever overcome “might makes right.” Or, arguably, ever will.

          The good news though; it’s lawyers shutting down your project. Yesterday, it was hiring someone to break your knees.

          • DANmode 3 hours ago

            The Pirate Bay, SciHub.

            The Internet interprets censorship (legal, moral, or otherwise) as damage, and routes around it.

            • Muromec 25 minutes ago

              The actual piracy also existed, until it wasnt

      • jayd16 6 hours ago

        You don't need to be doing something wrong to get crushed by legal fees.

      • kartoffelsaft 9 hours ago

        Curious what makes you say it'd be less legally dubious than an emulator? To me, it seems this would be at the same legality as the NES emulator because you're basically 'emulating' the environment Roblox game code runs in. To be fair if that intuition's correct it'd still be legal like emulators are if they're careful.

        (also not a lawyer)

        • conradev 8 hours ago

            So long as the specific code used to implement a method is different, anyone is free under the Copyright Act to write his or her own code to carry out exactly the same function or specification of any methods used in the Java API. It does not matter that the declaration or method header lines are identical.
          
          Emulators often require handling copyrighted materials like games or firmware, whereas APIs are not copyrightable.

          https://en.m.wikipedia.org/wiki/Google_LLC_v._Oracle_America...

          • LocalH 5 hours ago

            The NES itself contains no code. Any NES emulator that ships with no software, or software under proper license (such as homebrew) is unambiguously legal. Does your PC, and the OS that drives it, suddenly become inherently illegal if you, as a user, installed pirated software? No, of course not.

            • pbhjpbhj 5 hours ago

              No firmware, no microcode? It's all completely hard-wired?

              (Genuine question, I've no idea what chips it uses or anything - was never rich enough to have a game console until I started work myself.)

              • ronsor 3 hours ago

                No firmware, no microcode. The NES uses an old 8-bit CPU and a few custom chips; at the time, including firmware would've been too costly (think of the RAM and ROM!).

      • RealStickman_ 4 hours ago

        VLC is French, so the US law on software patents doesn't apply to it.

      • shortrounddev2 5 hours ago

        The supreme court ruled against oracle that an API cannot be copyrighted, but Roblox can still ban you for using an unofficial client (like discord does)

    • bitwize 6 hours ago

      I have a feeling projects like this rank higher on Roblox legal's priorities than does the rampant child predator activity on Roblox's platform.

      • echelon 6 hours ago

        100%. Roblox will snuff this out immediately.

        You need to make custom servers. In fact, make a server that patched official clients can connect to. That's the correct order of operations.

  • paweladamczuk 4 hours ago

    >missing :WaitForChild()

    That's good... isn't it?

    • DistractionRect 4 hours ago

      It's not the end of the world, it's a minor convenience and better than busy waiting.

      There are plenty of cases where you want to manipulate an object but it's not guaranteed that it exists before your code is run. You get similar functionality with:

      while not parentObj:FindFirstChild("childObj name") do wait() end

      AFAIK, wait() is >= 1/30 of a second, if you wanted to be extra timely you'd instead run every heartbeat.

  • extraduder_ire 10 hours ago

    Cool. There's an incredible amount of content created for roblox that's stuck on it currently.

    • wernerb 10 hours ago

      Need to set free all that 'Club' content for sure.

  • bstsb 6 hours ago

    can't find anything about the developers from the github repo.

    their discord server is even stranger; there's absolutely nothing in the channels, and the only member with a developer role is an account dedicated to the "project".

    looking at the source, work has absolutely been done - this isn't just a README - but it's still all a bit strange

    • JoeOfTexas 4 hours ago

      One man shows be like that =(

    • mattigames 3 hours ago

      My most charitable interpretation is that they are hiding their identities because they are afraid of any legal trouble, after all Roblox is an 81 billion organization.

  • glitchc 10 hours ago

    Yeah but can I spend Robux on it? If not, pass.

    The whole problem is Robux isn't it? It's not like the engine is anything special.

    • a2128 9 hours ago

      There's a number of developers who get stuck on ROBLOX because they learned their creation tools when they were younger (they're easy to use and easily accessible to any desktop ROBLOX player), spent their formative years mastering their skills, and those skills turn out to be niche and not easily transferable to most other game engines. The choice is between basically restarting as a beginner in Unity, or continue making advanced creations on ROBLOX with all their friends and prestige they've earned in various sub-communities. To be honest I'm surprised it took this long for someone to try making an API-compatible alternative

    • andybak 10 hours ago

      Maybe the idea is that developers can release standalone versions of their Roblox games and escape the platform lock-in? Of course - whether their audience will come with them is a different question.

    • Wowfunhappy 10 hours ago

      I haven't used them (and I despise Roblox) but my understanding is that the Roblox creation tools are actually pretty good.

      • jay_kyburz 2 hours ago

        I have some kids into editing Roblox, and I'm a full time Unity / Unreal dev, and I would say that the Roblox editor and engine _are_ really good.

        Kids don't care about fancy graphics, they care about connecting and running around with their friends, in a wide variety of games, that are downloaded and up and running within seconds.

  • Imustaskforhelp 3 hours ago

    OH PARDON ME BUT Y'KNOW WHY I AM GETTING SO EXCITED to talk in caps on HN?

    Because I was on discord the other day and was talking about roblox and literally everyone hates it but people there were saying eh, we just play with friends we don't care, and I was like we definitely need to figure our shit since roblox doesn't give a (if I might swear since roblox disgusts me, but roblox doesn't give a fuck about child safety) I was thinking of having roblox be sorta as the what'd you say, minecraft but less blocky.

    So to me, an open world which can be modded till now was maybe creating a whole game (which imo is wrong approach for things like roblox) and to me the thing which made sense back then (2 weeks ago) was Luanti (formerly minetest) with custom mod and hosting the server.

    I am so excited,so doped for this one man. Heck, I will build products for this and host them for free or maybe create jupyter python notebook scripts which can run the games don't worry. I want open source to succeed so badly in this genre just because of the safety aspect.

  • difirant 3 hours ago

    This is some fine repository.

  • westurner 7 hours ago

    Does this increase local testability and thus QA-ability for roblox devs?

    I was just looking at trying to get Lemur (archived) running in Lune in order to run jest tests running in a react-lua app the other day. I have a start at a test runner with optional in-game output, but getting jest tests to run at init in studio in order to not require run-in-roblox which doesn't yet work on Linux with vinegar flatpaks studio or vinegar in a devcontainer. It would save so much trouble if RobloxStudio.exe could take `--place game.rbxlx --script test_runner.lua --keep-open` args and regularly flush console output to a file.

    westurner:lemur:patch_for_roblox_support: https://github.com/LPGhatguy/lemur/compare/master...westurne... .. new require() implementation in lune v0.10: https://github.com/lune-org/lune/issues/311#issuecomment-320...

    I started to add loadPlaceFile to read an rbxlx to lemur and thought it probably the wrong place given that it's archived. TIL about Librebox, which can hopefully run tests with Jest with this stemgame react-lua app I've MIT licensed, in local CI too years later.

    There is a hosted CI service for running Luau code in Roblox places.

    "[Beta] Open Cloud Engine API for Executing Luau" https://devforum.roblox.com/t/beta-open-cloud-engine-api-for...

    Advantages to running tests locally: record screenshots and screencasts and save on test failure, immediate feedback, -i/--interactive drop into game session on test failure

  • doctorpangloss 7 hours ago

    There are a lot of free remakes of commercial games, and a lot of free remakes of commercial game platform engines. How do the developers of Librebox decide to work on this instead of:

    - remaking one specific, good game on Roblox, such as remaking Bloxburg, in something more practical like Unity?

    - working on an existing free remake of a Roblox game, like Nexus Battles, which of course, was archived?

    - working on something else?

    I’m asking the “Libreboxdevs.” It’s nice to hear these POVs directly from the developers. As you guys read this on a Saturday morning, consider that I’m not asking for, what features are going to be added to your GitHub project, or a comparison between Librebox and other game engines or whatever. I’m asking about your personal decision making.

  • ktallett 9 hours ago

    This is fantastic! It is a very useful tool for preservation of games on Roblox. I hope this can be used for good to save the many creative and original works on the platform in a way that we didn't with flash games.

    • Dilettante_ 9 hours ago

      >in a way that we didn't with flash games

      I thought Flashpoint[1] did pretty well about that? The full download is 1.68TB, I'd wager most stuff you'd have seen back then would be on there.

      [1]https://flashpointarchive.org/

    • unleaded 8 hours ago

      Roblox preservation has pretty much been a solved problem since around 2016. The clients all have built-in network servers and many people have built launchers to let you easily play a server with your friends. A lot of the knowledge is unfortunately gatekeeped inside Discord communities of crazy people but there are a few "good names" out there (Novetus is the big one)

      • jhatemyjob 7 hours ago

        Thanks for that info.

        To be honest this librebox project looks kinda fishy to me. Seems like the author never used version control before. They put everything into one commit [1] and are making changes to the repo using the Github web UI. I wish the dev the best of luck but I wouldn't be surprised if this project gets abandoned in a few months

        [1] https://github.com/librebox-devs/librebox-demo/commit/e70ea3...

  • 533474 7 hours ago

    You should rename the project to OpenBox if you are not using a copyleft license. It is not libre.

    • LtdJorge 7 hours ago

      Libre means free. MIT gives more freedom than copyleft.

      • F3nd0 3 hours ago

        Whether MIT-type licences give more freedom than copyleft is very disputable, since they make it extremely easy to lose. But you are right that terms like ‘free’ or ‘libre’ are in no way restricted to copyleft.

      • tombert 5 hours ago

        I think they're saying that "Libre" typically implies Copyleft, with a GPL or AGPL or MPL License. Something that (in some cases) forces you to make your changes available.

        LibreOffice, for example, is Mozilla Public Licensed, which is a weak copyleft, like LGPL (I think).

        • danieldk 5 hours ago

          It's just silly gatekeeping. E.g. LibreSSL is permissively-licensed and is from 2014.

          • tombert 4 hours ago

            Yeah fair enough. Pedantry about names can get silly.

      • ekzy 4 hours ago

        French native here. Libre means free in the sense of freedom, not in the sense of free as in free beer (the term for that is “gratuit”)

  • daft_pink 5 hours ago

    The Roblox debacle really reminds me of the 90’s where almost every arrested child predator was using AOL, but the news media would use the word “online service” or some really generic term as AOL spent so much money on advertising.

    A 5 year old isn’t going to be using IRC after all.

    • sejje 5 hours ago

      This is about an open source coding project