Just a FYI but none of Rojo, git or Github are mutually inclusive. You can use Rojo without using git (all Rojo does is syncing files into Studio), and you can use git without using Github. (e.g. Gitlab is also a thing, or many other sites, or do your own hosting, or keep your repo local-only) The argument about Github reliability is not very relevant here for that reason.
I made the switch to Rojo after reading testimonials in this thread. I have now been using it for about a week and wanted to share my experience using Rojo+Git vs using the packages feature Roblox provides.
There are many good things about using packages:
- Packages can sync any instance and its properties without the friction of using things such as .meta.json files and manually declaring properties to sync in Rojo. This is big.
- Anyone with access can easily update packages. For our team this means that when we want to push an update to our game, multiple people can update multiple places at the same time for improved efficiency.
- Rollback if a critical issue occurs is very simple, as long as you know and keep track of the last âworkingâ version of a package. Just change the one version number on the link and it rolls back to that version automagically with no fuss.
All of these things are great when they work.
Roblox Studioâs requirement to always have a completely stable internet connection, very long load/wait times to update/publish large packages, as well as the servers handling packages at times being unreliable and failing, makes Rojo+Git the better alternative for me personally. Hereâs why:
One of our games has 15 separate places right now and is growing. For every place, any one of the mentioned issues may happen. Having 15 places, and updating them all, itâs almost guaranteed that at least one of these issues will slow down our update process, as compared to using Rojo and pushing updates through syncing, which has worked 100% of the time so far and is consistently fast.
After switching to using Rojo, I get more work done in less time. With an official Rojo integration for Studio, I would spend less time starting up sessions, and more time working.
Do you (still) use packages to sync scripts/code between places? I used to do this, but without two-way sync, Rojo keeps overwriting the changes.
Two-way sync was being worked on for Rojo.
One question. I have shared scripts between places but also some scripts are different.
IS it possible to just edit the 1 script and push it to all places? How easy is something like this in Rojo? (never used Rojo but am considering it)
You can also store instances as rbxmx
files and âeasily updateâ them from there as well. Most properties sync perfectly fine with a pre-ran rojo build
.
You can do this with git or any other VCS as well. Most, if not all of the features you see in packages already exist in external version control systems. âPackagesâ are just a form of dependency management - if you search for âdependency managementâ, youâll see a huge rabbit hole of tools, platforms, etc for just this.
In most cases, itâs possible, but in the cases where it is not, itâs completely disruptive and prevents builders/modelers from working on something while using Rojo. Itâs also an extra step of going from Studio>Filesystem>Back into studio where itâs not really necessary for our workflow.
Iâm aware of all this, but from the standpoint of a team making games entirely for Roblox, and using Studio, it is a lot more convenient to use packages because of their first-party support and tight integration. The points are listed because of that, convenience, not necessarily because packages are overall better vs using an external VCS.
Ideally your builders/modelers shouldnât have to even worry about version control or know what it is. You should have your dev environment setup so that they can simply DM you model files / Roblox assets and you can take care of it from there (you can even automate this with remodel!).
Rojo is the best tool ever created for Roblox studio. Roblox need to take this seriously if they want people to take their platform more seriously.
We want professional code editors, we want github repositories, we want industry standard code collaboration and we want the security of having our work saved to files instead of relying on a cloud that could go down at any moment and cause us to lose our work.
Rojo already opens all these doors for us. Rojo official integration; make it happen. Your move Roblox.
Honestly at this point, who needs official integration. Itâs apparent they donât want to listen to us because they want everything in the cloud under their jurisdiction and technology.
We have the information we need to create and host tools like rojo, we just need a smart community backed effort to reverse engineer Robloxâs file formats and protocols so we can build our own solutions to the problems Roblox doesnât have the immediate resources and response time to deliver on.
I know they have positive intentions with what theyâre doing, but they really shouldnât be shrugging off niche crowds. I feel a sense of discomfort with the direction Roblox seems to be going, as far as itâs attitude towards 3rd party software interacting with studio goes.
We should be free to hack studio to our needs. Roblox does not need to be an all in one tool-kit. They canât cover everyoneâs niche needs, they have limited resources and a complicated internal process for shipping features. I feel like the silence on some of these issues speaks volumes to how they feel about it, and I donât like it.
I hope theyâll make the right decision with all this feedback. Seeing everyone spam about rojo during RDC was hillarious.
I think itâs important to reflect on what youâre asking here. Rojo already works and does all these things â Roblox doesnât actually need to do anything here to fulfil any of the productivity use cases, itâs already a thing today.
The only use case here that isnât already fulfilled by Rojo is âmake Rojo-like file syncing functionality easy to use for non-power-usersâ. Which is fair, but itâs not really warranting of all the hysteria Iâve seen around this topic.
Iâd rather Rojo keeps being its own thing rather than a built-in feature so it is not subject to engineering cycles of various Studio teams to maintain and improve it. Iâd rather they spend the engineering effort elsewhere. The community can work on making Rojo even more user-friendly.
If Studio / the platform provides solid APIs for interacting with all of Robloxâs functionality, we donât need Roblox to take ownership of everything. We can build our own things on top.
So:
- Yes to APIs that allow Rojo and other external tooling to work as it does / better.
- No to âIntegrate Rojo into Studioâ.
(Note: Iâm a Rojo user myself.)
For crying out loud, why is this not implemented yet? The biggest developers on the platform have shown support for this due to how many problems it solves.
Please let the programmers use their own code editor, instead of Studioâs lackluster one. Roblox Studio is first-class in programming, which breaks workflows and makes it much harder for teams to work with. Yes, Iâm in support of all Studio code editor updates! But, in the meantime, we need tooling in Studio that allows other tools such as Rojo to directly interact with Studio.
This quote really says it all. Can any Roblox staff at least give a response to this post? Itâs crazy how there is radio silence here, and leaves us with less trust in the platform.
Honestly, want to hustle down and try and figure out what this mysterious rbxp file format is? I have a few leads (also engineers accidentally leaking it), but not sure on what its for outside of being an external project thing.
On the topic of the main post.
InternalSyncService was Robloxâs first step here yet as the name implies, internal only, and contrary to popular belief its still being developed somewhat, since there were localisation strings for it pushed a few months ago.
We finally got some confirmation by Roblox that this is coming!
Iâm really excited about this, Rojo is great but it can be awkward to set-up, Having official support for such a workflow is huge for the future of Roblox.