#How can I dev with Rojo in a place with multiple developers ?

1 messages · Page 1 of 1 (latest)

honest steppe
#

Hello, could someone help me understand exactly how I can work effectively with developers on a game ? I would like developers to work on a place using Team Create, and for scripters to collaborate too using Rojo, while ensuring everything is properly set up. I've looked at many resources, but I don't understand the use of Git, PULL, PUSH, MERGE... and how overwrites or version issues can be avoided if I use rojo upload or rbxcloud. I don't mind if the scripters are in a separate place from the other developers, or if everyone has their own place; regardless of the workflow, I'll accept your solutions. I ONLY want to know how people do it, because I find very little information on the subject.

Thanks in advance.

crude stag
#

For git:
PULL: Pulls the origin of the given branch to update your files to match them. Basically it will update your local repository with the remote one
Example:

  • You have 1 script file pushed into the github repo
  • Someone else fetches that and then pulls the remote repo to update their local repo
  • Their local repository is now updated and they can work with it

PUSH: Pushes whatever changes you made to the branch you are in. You need to do this for other people to be able to pull the changes. Basically it pushes your local repository to the remote repository.
Example:

  • You pulled a repository with 1 script
  • You add another script with code in it
  • You push that to the remote repository once you are done
  • Other people can now fetch and pull the changes that you pushed

MERGE: Merges a branch into your current branch. Note this merges the branch, meaning it wont overwrite anything, it will just combine the 2.
Example:

  • There are 2 branches: Main and Testing
  • Main has files:
    • Movement.luau (idk the file extension but if its wrong just pretend its real. Its just meant for the example)
    • GuiHandler.luau
  • Testing has files:
    • Movement.luau (with different code from the one in main)
    • SpawnHandler.luau
  • If you are in the main branch and merge the testing branch into main, you will end up with this:
    • GuiHandler.luau
    • SpawnHandler.luau
    • Movement.luau (CONFLICT)
#
  • What conflicts are: If you had this script first:
print("Hello")

If both branches (Main and Testing) pulled this into their branch, and both made changes, once you merge/pull it will cause a conflict.
For example:
Main

print("Hello")
-- Added below
local test = 0
print(test)

Testing

print("Hello")
-- Added below
local movement = Vector3.new(0, 1, 0)
print(movement)

Since both branches made changes to the file it will cause a conflict. You will then be prompted to pick between these options:

  • Keep file from Main
  • Keep file from Testing
  • Check changes in VS Code (or another preferred code editor)
    The first two are self explanatory, you will just pick which file to keep. If you click the last one you will open the file and go through what changes were made and pick case by case which one you want to keep. Here it would show the following:
print("Hello")
-- ++ Keep Main - Keep Testing - Keep Both (these are buttons)
-- Main
local test = 0
print(test)
--
--Testing
local movement = Vector3.new(0, 1, 0)
print(movement)
--

I showed the example in this but it looks more fancy and intuitive in the actual code editor. But yea you just pick which to keep or if you keep both, it will just append both changes under eachother.

I hope this helped clear github up! If you have any questions about it lmk. For rojo I cant really help cause I've never used it. With github the reason its so good is cause u can very easily revert to old versions or keep stable copies while working on new stuff. This makes it so you never risk breaking your entire game without being able to revert. So whenever you work with anything like github or similar, make sure everyone works in their own branches, and you always have a main branch which holds the stable, working version

#

--
Sorry for the wall of text lol but i wanted to explain it as clear as i could

#

Holy shit thats a lot of text

#

Github desktop is the most beginner-friendly way of using github btw

#

very intuitive

honest steppe
#

Unfortunately I still have questions about Rojo and developing on the same place with builders etc but this is a good start

crude stag
#

Building on the same place I can explain without rojo atleast. Cause if u make a place with team create on, and invite collaborators to it. They can join and you can litterally see eachother, and able to instantly see what changes someone else is making while they are doing it. Same thing with scripting aswell. If you are in the same script you can see live what changes someone else is making

#

But yea you are gonna need to wait for someone else to explain rojo