Freeblox
Progress!
I chose a name for the project. At least for now, it is called Freeblox. I initialized the git repo at codeberg.org/norawibb/freeblox, and I also obtained the domain freeblox.org (which I’ve currently set up to just redirect to the Codeberg page). I’m pretty motivated to work on this stuff right now since I have time on my hands and I’m wanting a fun thing to play while hanging out in voice chats. Also Roblox has been in the news lately, not really related to the things I mentioned before, but I do think my project will be able to fix those issues too.
This is still an early update on stuff and I’m still learning a lot of these tools, so the stuff I’m showing off below may be a bit of a ramble.
The Engine
I’m still not super familiar with Rust, so some of this is a learning process. I am very much not familiar with Bevy (the game engine I’m using). However, so far I am impressed with what it allows me to do with so little bloat in my code. I did add an extra piece to Bevy called Avian, which is going to hopefully handle most of the physics stuff for me. Since most of what I missed about classic Roblox was playing with the physics, this is going to be a very important thing for me to assess and learn.
Window Creation & Camera Movement
It was extremely simple, following Bevy’s examples to get a window to open and add input handling to control the camera. What I’ve added so far is the controls for what the camera would be like in the Studio client, as normally in the game the camera would follow your avatar.

Mesh Picking
Bevy had good examples for how to do mesh picking, but I struggled a bit with it because I didn’t understand observers or really the entire flow of things in Bevy. So this is sort of the first non-trivial thing I did in Bevy. This simple highlighting of meshes with a gizmo is done in Roblox in a lot of the standard tools and in Roblox Studio.

Next Steps
I really want to implement the functionality of each of the basic Roblox building tools: the copy tool, the move tool, the resize tool, and the delete tool. I think I will want to have that working before I make my next post, so I can show off building something.
I also want to try and implement a basic avatar to control that the camera can follow, rather than being in this floating view. This might be more difficult so I may or may not have this by my next update.
I have looked a little into the web side of things. I am not familiar with implementing ActivityPub, besides knowing it can be complicated. I’ll want to get some basic functionality at some point, as the web page is what will launch the game, but I don’t think I should start on it yet. As a test I did launch what I have so far in a browser by compiling it to .wasm, and it worked just fine.
Anyway, that’s all I have to show off for now. My code is on the codeberg page if you want to see it, but it isn’t that interesting yet.