Advice on Handling Multiple Programmers?

Hello to the UE4 community! Young developers here wondering what methods or software you folks prefer to use when handling multiple programmers on one team effort!

We’ve heard about the likes of Perforce and such, tool-based methods of literal attempts to merge programmers’ work, as well as the good old-fashioned preference to share and communicate diligently, but we wanted to gauge the community’s thoughts on what you all find useful (or asking for disaster). Whether you have recommendations with pros and cons, anecdotes, or simply a one-word response on what you like, anything is appreciated! We’re looking for your styles and biases as creators.

For those wanting context:

  • Project overview: turn-based
    simulation game with themes of
    family, risk, and building from the
    ground up
  • One generalist (Unreal prototyping,
    designer, 2D animator)
  • Two programmers (one versed in C++,
    the other knowledgeable in machine
    learning and theory)
  • One asset creator (Maya, Blender)

Thanks for listening, and we hope to hear from you!

I think GITHUB is a good choice for source control.

My personal recommendation goes roughly along the lines of:

  • Git repository is great for the C++ components of Unreal Engine. …Less great for UASSETS, as they are binary files. Merging several people’s work here is a PITA.
  • Keep people somewhat separated in what chunks of your project they’re operating with at any given time. Saves you a lot of headache.

Interesting! Since our main programmers are pretty new to Unreal and how things are compartmentalized, I could see this being a great asset for them to punch out code and share it to whoever can translate it into the Unreal workflow (after all, we might be passing this project along to new staff later, so having the option is a help in its own right). Thank you!

Excellent! That’s the second vote for Git, so I imagine we’ll be checking that out, but more importantly, I’m glad you weighed in on separating tasks. We’re at a stage right now where collaboration is key (our main programmer and AI designer have to work closely together to simply decide on a reasonable starting benchmark), but once we’ve got that working build, I agree that dividing and conquering would be immensely effective. Thank goodness for small teams! And thanks for your input!

The distance doesn’t have to be far. :slight_smile: But you can’t have two people working on the same blueprint at any given time, because those are not code files, but binary files.

While git repository doesn’t handle it too great if you still do the above, at the very least you can still cheat by redownloading the copy that was lost in a merge, and manually merge them by cutting and pasting from the copy.

Most alternative solutions today tend to be mercurial or house rules, but I can’t really relate to it meaningfully. I’ve only worked with git repos for the longest time.

You still want some houserules though. Having some control internally on what people are working on is very important in avoiding the need for merge conflicts and such from the outset.

Since GitHub is mention theres also another git hosting alternative that not much people talk about called BitBucket, they have a bit slower servers but they provide free private repositories, only limination for free private repository is number of users that can be assigned to repository (or else repository owner is student and register via university email) and they warn you (there is no hard border) that your repo is getting too big when it cross 1GB which should be no issue if you hold only code files there. Good for starters but i think when project get bigger it better to move it somewhere else or paid service

Bitbucket is nice. And Atlassian offers a very wide suite of tools that tie directly to their repos as wells.

I’ve never heard of BitBucket or Atlassian, so we might look into those! We’re fortunately still at the stage where we can program in individual chunks and integrate our stuff together without stepping on toes, but I imagine that we’ll be making use of at least one of these tools once the summer hits, especially if we have a change in our lineup. Thanks a bunch, folks!

We’re definitely coming in contact with that right now! We’re pretty lucky in that our systems aren’t complicated or intertwined enough yet to cause problems if one programmer zooms ahead, but we’re spending more and more time on whiteboards, drawing out and sharing exactly what we’re planning to implement before we go at it in Unreal. Handling this evolution will be a challenge, but for good reason! And thanks again for the detailed responses, despite my delay!