Maybe this is just computer 101 stuff that I never learned, but whether you are a programmer, artist, animator, or whatever else there is, do yourself a favor and practice good version control.
I don’t know if I’m using that term precisely or not, but version control is a method programmers use to help them debug their work. In a nutshell, it means don’t keep saving your progressive work in the same file. Make new saves, and date/name them accordingly.
I’m practicing some rigging, and somewhere in a massive hierarchy of complicated parent/child relationships and constraints that make my eyes hurt to look at – somewhere in here:
there is a mistake. If I could just revert to before I started the previous tutorial lesson, it wouldn’t be a big problem at all. But I can’t do that, because I’m a lazy moron.
No, that’s just ordered saves. That’s not version control. Ordered saving is useless in the face of true version control. If you don’t want to think about how it works then you can use the built in Unity Collab although that’s definitely version control-lite with just enough to qualify as version control. It’s enough for me.
I’m always amazed by the people who show up complaining about problems despite the fact we’ve told them in the past about version control. There is at least one member of this community who has repeatedly lost data only to repeatedly be told to use version control only to repeatedly tell us his backup solution is just fine.
Not really, as when developers talk about versioning or version control, they talk about having it managed on github, and being able to pull sources from different places without screwing your entire code base. It’s about rolling back highly specific mistakes or being able to maintain branches of code then merge them further along into new branches, or main branches. It’s a big subject and far more than just “oh lets name this one today’s date” which is just numbered backups.
If you want to progress you need to stop using save as and stop doing backups. Let the internet take care of it with proper managed version control and source control.
The rename backup thing is something that I used to do 20 years ago (and still do but only out of hardcore habit if I want local backups).
I was being facetious there. Like you said, actual version control is a much greater degree of organization versus just keeping saved work in a timeline.
But, on a semantics level, it’s the same principle. Anyway, for my larger projects there is a github and proper version control, but in this instance, I am working through a tutorial about rigging and thus just keeping a series of saves for each major step is sufficient, and I think is an important thing for beginners to understand that they ought to do this.
When you’re speaking about technical details, semantics is important, just as in code. Ordered saves isn’t a system, it process. And one that doesn’t work the broader scope of software development. Try doing that with a .cs or fbx or .dll in a project and you’ll quickly get into trouble. Ordered saves is a terrible practice for game development.
I believe he is referring to the fact that an ordered save will reload that entire project in that version. If you use version control you can change 20 scripts and 15 textures etc, screw up two of the scripts beyond return and then upload the successful work and roll back the two screwed up scripts to the version where they last worked. Sure, you could update the 18 scripts to the ordered save reversion…but what a PITA.
For the kind of graphics work that I do as a freelancer, version control would not work. You can’t do all the fancy stuff that version control is really good for (branching, merging) with Photoshop documents anyway, let alone push 2gig big files onto github on every saved change. On some jobs I probably even outpace my upload speed with the amount of data I’m saving. For stuff like certain Photoshop documents or 3D content creation imho saving versioned backups is a valid way to go. I’m not talking about code here, because neither did the opening post. Actually I’m not even talking about gamedev…
I’d be interested in an online backup solution that can handle a simple automagic backup of all data on my pc. Backblaze claims to do this, but I’m super skeptical it actually is truely unlimited and unthrottled. Hell, I don’t even know if my ISP would let me upload over 10 TB of data without throttling my upload speed below the rate at which I create or update data. Uploading 2gig files onto an ftp in my experience seems problematic at the best of times, and I don’t know how an automagic tool could handle that. I also have forced auto-disconnects every ~24h, so a very robust resume function would be mandatory.
I’m well aware this isn’t version control, I have a gitlab repository for that, but I can’t use git for the big stuff that I need to back up.
What @ippdev said. You are just making a mess of your project and creating potential conflicts. Moreover, “rolling back” to previous versions of assets/code via renaming files is going to screw up assetdatabase links, trashing references in scenes and prefabs. Basically it will just create an unmanageable mess and break your project. VCSs exist for reason. And that is just for basic version control, things like branching/forking/merging make VCSs invaluable. Doing it manually is a horrible idea, and terrible advice to new users.
I think I understand what you are saying about messing up references, etc. Sometimes if I step away from something I’m working on for awhile, I might forget what the latest version I was working with was, or I need to file through lots of directories to associate things like texture files with .fbx models.
So what you are saying is that if I use an online repository to hold my stuff, then my computer stays clean and only holds on to the pieces I need at the moment?
Sorry, I don’t know what half the words people are using here mean, so I have to break it down very simply.
It doesn’t have to be online, it can be on a local network or on your computer (though not a good idea, as it creates a single point of failure). But essentially yes. It keeps a complete history of all your versions (check-ins). You can view or revert to any version, or roll back the entire project. You can branch, which essentially creates a copy of the project that you can work on (typically for features or releases) and work on without affecting the trunk, then merge back in. The files in your project are just he most current (or whatever branch you have checked out).
Ok. When it is explained simply, it sounds like what I am already doing. Maybe some people thought I was a programmer… I just do art. Typically I practice good backup techniques, but because I haven’t suffered too greatly yet my discipline lacks sometimes, like today. For the project I am working on now, there is a programmer and he does use all that stuff and has shown me a bit about how he uses github to keep version controls with commits and all this stuff, etc.
I keep a temporary backup folder on google drives, where I keep versions of assets as I develop them. I also keep a library of completed things that can be used as starting points for future things.