How Multiple People Work on One File [Programming & Tech]

preview_player
Показать описание
Given how large dev teams tend to be, what do you do when multiple members make changes to a file at the same time? I used to wonder about that myself, so allow me to explain.
Рекомендации по теме
Комментарии
Автор

I find it amazing that we live in the timeline where Sakurai makes a video explaining version control

metashrew
Автор

I feel so much more confident as a developer knowing that even a legend like sakurai can struggle with git sometimes

Yamartim
Автор

It should also be noted that version control software is super important even if you're working solo. With it you can, for example, work on new features in separate branches so that you can continue releasing patches for your game without those unfinished new features interfering, among many other useful things.

mystman
Автор

Good to know that large teams are having the same kind of headaches we do

thegreendude
Автор

To all viewers who never heard of merge conflicts before: Ah, what a nice life you are having.

Lugmillord
Автор

Okay this is genuinely the one huge questions I’ve always had about Game Dev

Axoleah
Автор

Gotta love it when the program says it saves your changes, and then it just doesn't. While not working on anything nearly as complicated, similar things have happened at my own job.

ExploDjinn
Автор

I'm really curious as to what software is used inside Japanese dev companies to handle their version control.

Git is the standard in the wider software dev world, but it can have some serious trouble with managing media and binary files (at least by default without extensions). Many Western game devs use Perforce, which does have a lock/unlock model like Sakurai mentions here - but maybe Japanese devs run their own custom software?

I'm really curious what their environments are like.

(Version control tools shouldn't be mysteriously reverting changes like he describes! That'd be a tool you want to avoid.)

cytokindness
Автор

on point about file merging - we have this happen at my job all the time, since we work a lot with spreadsheets. sometimes it's a pain to figure out which is current if 2-3 people are working on the same spreadsheet. Reversion is a pain too.

thecunninlynguist
Автор

And remember kids, nowhere is truly a safe place to save your files, especially the internet. Keep at least one physical backup that doesn't require being plugged into the wall at all times. Your team will thank you for it.

connordarvall
Автор

Honestly, these videos are really helping me get insight on the videogame industry! Thank You Sakurai

ImaNoobATgames
Автор

I use perforce because merge conflicts are a nightmare, and actually I do my very best to keep every little manageable system in its own separate file. There is usually 1 to 5 major controllers, i.e. player character, game, instance, UI, player controller, then player character has -> movement and etc and all the variables associated but take damage is handled by the Enemy Component, Level up is handled by the Exp Component, Purchase Item is handled by the Shop Component.

If you keep it all manageable but within their respective categories. I find far less merge conflicts happen and it's a lot easier to manage everything overall.

Jdfskitz
Автор

I love watching these as a software engineer

JohnSmith-cozv
Автор

The game my group's is working on is in Unity and that has Perforce integration. It's alright as long as you don't go back into P4V after you've set Perforce up in your project.
The main problem we have is when people forget to pull from the server before pushing their updates, which causes people to lose their work. I kind of wish it automatically pulled and applied any incoming changes before it let you push your changes to the server.
I dream of the day where making changes to the project becomes as easy and instantaneous as google docs.

ZacCarpenter
Автор

I just love watching these little videos about making games. Its really cool.

LinktheCommunistWaifu
Автор

I like to explain version control as a kind of library. In a regular library, you need to check out a book to read it and no one is allowed to change the books. In a version control 'library', every can read all the books without needing to check them out, but you need to check out a book to write in it.

Platanov
Автор

This was our second lesson in Computer Science. The best way to combat this is to have a convertation on who's code (or part of the code) will be kept. Most programming apps have tools like this installed by default and will not let anyone go any further until this problem is resolved.

chrislamp
Автор

Glad to know that even Sakurai has problems with source control

laneacampbell
Автор

I just finished catching up with the last eight months of videos.

Wonderfully informative, I will not let that happen again.

nygamery
Автор

This is a solved problem for text files, such as code or configs, with tools such as git or mercurial. It’s possible to collaborate with these files in real time too using tools such as Jetbrains. For media files and other binary files, the locking mechanism Sakurai describes is the best I’ve seen unless there’s tooling for a specific file type, which is why to my understanding Perforce or Plastic SCM are common in game companies. It’s possible to do simultaneous edits with non-text files but it requires specific tooling for every file type, so I haven’t seen it done. I would expect to see popular commercial products such as Photoshop, Maya, Unity, and Unreal and implement solutions like this eventually if there’s a demand for it.

unknown-kjqp