OpenBlox - an open-source re-implementation of ROBLOX's API

OpenBlox is a project aimed at re-implementing ROBLOX’s API in an open-source, stand-alone manner. Right now, it’s being worked on by me, JohnMH and zars15.

Right now it’s currently in a pre-pre alpha sort of stage, where we’re just bringing the basics together (i.e. Instances, Enums, Vectors, CFrames etc.) but it is already extremely multi-platform (for example, earlier today I managed to compile a slightly older version of OpenBlox on my Raspberry Pi Model B+) and we hope to support even more platforms in the future.

I can’t really supply any images of it yet, as there is very little rendering code, but as an example of the GUIs, this is what we have right now:

We’re yet to provide tools to help compilation, but if you have a basic MinGW installation setup with g++, you should be able to build it without any problems.

So, any opinions? Also, if you find any bugs, it would be nice if you were to report them and give instructions on how to reproduce it.

3 Likes

I would like to point out that we are not copying the ROBLOX API exactly, we are dropping certain permissions and implementing some things (such as HttpService, which has no limit on HTTP requests and currently supports WebSockets) in a way that we think is “better” than the way ROBLOX handles it. We will be trying to maintain loose support, so games should be easily ported to OpenBlox from ROBLOX with minimal (if any) modifications.

It has been a misconception in the past few days that OpenBlox is a recreation of ROBLOX. We are not developing a website or account system to link to the game, it is meant as a standalone API.

ROBLOX has patented it’s joint system, among other things, so you should be aware that you cannot use that idea for another 15 years.

Fortunately, APIs cannot be copyrighted, as far as I know.

Best of luck to you!

Thank you for using GLEW and GLFW and not GLU or GLUT or something.

Love the idea, nice job guys.

EDIT: Why did you stop using GLFW? D:

4 Likes

[quote] ROBLOX has patented it’s joint system, among other things, so you should be aware that you cannot use that idea for another 15 years.

Fortunately, APIs cannot be copyrighted, as far as I know.

Best of luck to you! [/quote]

That’d be real problematic, if roblox joints were actually good. Well welds and motors are still useful, but that’s about it.

Over the past few months OpenBlox has been recreated, largely from the ground up. We are no longer using GLFW, and have opted to go for the more common SDL library. As of last night I am able to compile OpenBlox on Android, with untested networking on Android. Networking code works, and I currently have an implementation of both NetworkServer and NetworkClient that have been tested for one-way replication. OpenBlox implements a networking modal similar to FilteringEnabled out of the box, there is no way to disable this. Currently the only implemented 3D code is the skybox, which is using legacy OpenGL code thanks to my limited knowledge of the OpenGL APIs. I don’t feel comfortable letting that slip into production. I have implemented text rendering using SDL2_ttf with TextXAlignment and TextYAlignment properly implemented on the TextButton class as well as TextBounds. I can easily do 2D GL code, but I haven’t found any good tutorials for 3D that don’t use GLU or similar libraries.

TLDR
[ul]
[li]Networking[/li]
[li]Replication[/li]
[li]Frames[/li]
[li]TextButtons[/li]
[li]Enums[/li]
[li]Players[/li]
[li]Sounds[/li]
[li]Yeah, stuff![/li]
[/ul]

Have a screenshot

Oh, you also probably wouldn’t mind having another screenshot:

Pretty damn cool. Amazing!

I have to question why you’re posting this on a forum for roblox developers… like… why? I understand it’s neat, and all of us have dreams for what we would like roblox to be like, but this is a privileged forum, owned by Roblox, and you’re posting what’s essentially going to be competition to them if you finish it.

1 Like

Weeve’s right, this is really cool. This isn’t the place for it though.

OpenBlox is not a commercial product, it is meant to allow developers who are used to ROBLOX to get a feel for actual game development. While OpenBlox’ GUI system currently outperforms ROBLOX majorly, clicking on the screen once causes about 1MB of memory to be quickly allocated and deallocated because I am by no means brilliant enough to roll my own rectangle transformation code in an efficient manner among other things. OpenBlox is not competition for ROBLOX and never will be.

“Somebody could edit OB and make a commercial product!!!”

Yes. That’s entirely possible. That’s actually something I would love to see, but I fail to see how it would be competition for ROBLOX. They would have to host their own servers, write the entire client even before connection to the server.

1 Like

To be competition, it doesn’t have to be commercial. It’s competition because roblox makes money when devs make games, and making a program like roblox, and advertizing it on roblox, will lure roblox devs away, who will spend their time making games with your system, instead of roblox’s

In fact, competition that gives something for free is some of the worst competition you could foist against roblox, and I would side with this thread being locked or deleted, because of the enormous amount of ingratitude you show by posting this here, if you want to market your product, don’t use your competition’s forums to do so, especially when you were one of the people selected especially to be allowed in here.

OpenBlox is not competition, and this is not marketing. You don’t market a free product, unless you plan on loading it with ads, making it pay-to-win or adding some way of generating profit. In any case, I don’t know why you’re trying to act as if this is an exclusive forum anymore. Have you seen some of the people they’re letting in?

In any case, OpenBlox is not as similar to ROBLOX as you’re thinking. OpenBlox is like ROBLOX, if you remove the CoreScripts, cloud platform and everything that makes it ROBLOX. OpenBlox is a game engine. Not a platform.

1 Like

I just think it looks cool…

1 Like

[quote] To be competition, it doesn’t have to be commercial. It’s competition because roblox makes money when devs make games, and making a program like roblox, and advertizing it on roblox, will lure roblox devs away, who will spend their time making games with your system, instead of roblox’s

In fact, competition that gives something for free is some of the worst competition you could foist against roblox, and I would side with this thread being locked or deleted, because of the enormous amount of ingratitude you show by posting this here, if you want to market your product, don’t use your competition’s forums to do so, especially when you were one of the people selected especially to be allowed in here. [/quote]

  1. They are not advertising on roblox, they’re posting in a sub forum that says “HEY GUYS LOOK AT THIS COOL STUFF”
  2. How you think anyone can be lured past “huh, that looks neat” is beyond me.
  3. Guess Blender is competition because I like to build and render stuff in Blender too.
  4. Your entire last paragraph: Stop being a stick in the mud

1 Like

OpenBlox now properly renders the skybox on Android. It looks pretty cool.

For anyone who’s interested in messing around with OpenBlox, builds are available from my Jenkins server for both Windows and Linux.

Server builds are headless, client builds are currently only good if you want to do something with GUIs. To connect to a server you must use NetworkClient’s PlayerConnect method. To start a server you must use NetworkServer’s Start method.

To start OpenBlox with a specific script, put your script in the “res” folder under OpenBlox’s root and specify the --script parameter followed by your script.

OpenBlox implements custom protocols that must be used. The “res://” protocol is basically “file://”, but locked to the res folder. OpenBlox currently disables the “file://” protocol for safety.

Example:

./OpenBlox --script res://server-init.lua

So this is a copy of roblox…?

No. If we were copying ROBLOX, it would be illegal. (We’d get DMCA takedowns and stuff, our project wouldn’t be on GitHub.)

This is just a ‘re-implementation’; we’re doing things our way and if we really want a feature, we just open up the source code and add it in.

I should also mention we’re looking for someone who knows how to do 3D graphics using SDL and OpenGL.

1 Like

SDL isn’t a graphics library, we’re currently using SDL to get an OpenGL context. (We use OpenGL on Windows and GL ES 1.1 on Android)

1 Like