Unity scm - git + perforce or...

So far I have been planning to use git with bitbucket for text-based assets, but despite being solo for the foreseeable future, I would like to work on projects with a scalable methodology/workflow. I have never used perforce but I hear good things…

Is it advisable to use perforce for versioning the Project and all my assets, then continuing to use git to manage the code and configs?

I am struggling to decide on the best way to proceed, so any input would be appreciated.

ps. I am not interested in paying for solutions such as plastic scm.

Git is used by linux kernel.

So, which part of it isn’t scalable?

The only two issues with it is that it stores every version of every file, and because of those repo with lots of binaries in it, can grow big and that you usually need to download entire repository to make local clone.

I want to manage models/art and Unity assets like AudioMixers and Animators etc. Git makes full copies for snapshots so it seems like it will get way out of hand, and bitbucket only allows a hard limit of 2GiB so I don’t fancy my luck with that option…

I like using git/bitbucket for the code. But it seems like I will need a second or alternative solution when it comes to managing the project as a whole.

Perforce or subversion on an old laptop seem like an option, but I’m not certain I like that idea…

Would it be ill-advised to use git and bitbucket, but to store bulky assets on a cheaper service like a Subversion server or just a Dropbox/Google Drive account, have a script generate an XML/JSON/whatever file with reference to the assets then have that in the git repo. The config could also hold license info for any assets, as an added benefit. Then devs/artists could just run an update script to update the assets on the local version without using up the 2GiB hard limit on bitbucket, or setting up an expensive Plastic SCM/ Perforce etc. It would also reduce the complexity of having multiple tools and keep it simple.

Seems like a viable option to me… advisement would be appreciated.

Github has large file support,the issue you mentioned is not an issue there. Pricing is $5 per 50gb for LFS.

I think you won’t be able to fit revision history of binary files into bitbucket size quota, regardless of version control system you’ll use. Also, while git makes full copies, as far as I know, it tries to compress them.

You’ll need to use some paid storage service, or host the repository yourself.

Free dropbox storage is tiny, about 2 GB.

Google Drive has a nasty habit of killing the files. Basically, in case of conflict or problem, it may decide to resolve it in unwanted fashion and, for example, delete all your files only to replace them with older version it stored on the server. Also, it locks the files it is syncing, which may cause problems within the editor.

In this kind of situation I would consider getting myself some secondary box to host the repo (heck, even raspberry pi might be able to handle that), or subscribing to some version control hosting service.

Writing your own script is a high risk, because it is a new tech that hasn’t been tested yet, so in the middle of the project you might find out that your script screwed up the project. Instead of making custom solution/script/whatever, it is always advisable to look into existing tech, like rsync.

Github + SmartGit works extremely well for me, for all assets and code, on all my projects.

I use Plastic SCM locally. A single user, Individual license is free. I just don’t like having all my data somewhere in the cloud.
You have as much space as your harddrive allows and you don’t have to worry about your internet speed / volume / server connection & uptime, hacks etc…
But scalability seems limited when it comes to more users on a project, since it seems quite expensive for that. Also if you plan on using Unity’s Cloud Build, you’d need to get an online service.

Yet the cloud is one of the safer ways to store your data. After all what are the odds you’re more capable of securing your data than a team of security experts working for the company owning that cloud?

You just have to worry your local storage doesn’t suffer a catastrophic failure. Or a disaster doesn’t hit the location itself.

How is your storage server connected? Do you unplug your Internet prior to attaching the storage device? If not then you may not be as safe as you believe. It’s not unheard of for people to have their home connections hacked. Especially if they double as business networks.

1 Like

I’m using Hg (mercurial) along with BitBucket. Great pair and works nicely. It isn’t as hard to use as Git, especially with visual hg clients such as TortoiseHg and it’s a solution that AFAIK Unity itself is using (though they probably have their own hg servers instead of using bitbucket).

That’s what Apples’ iCloud advertised, too. :stuck_out_tongue:

That’s right, but i think i can live with the relatively low chance of hat happening, after all it’s a seperate hard disk just for that. So i have the current version on one hard disk and the versioning/backups on another.

I’m behind two routers with active firewalls and another software firewall on the system for the rest.
But besides that i could rather see some well known services being the target of a hack than some random guy that is who knows where.
I know hacks of online services are relatively unlikely, too, but something to keep in mind as well, imo.

What about those who hire you for commission work? Your site shows you’ve taken on some. One of the first things I would inquire prior to hiring someone is their backup policy. If I felt that it wasn’t secure enough I would turn them down regardless of their actual skill at game development.

If one example is all you need I’m more than confident I can find one example of a home network being compromised.

Do you know what the difference between a well-known service and a random guy are? A slightly different IP address.

A backup plan for two hard disks failing at the same time?
A serious meeting with miss fortune i guess. (Not the best answer to give in that situation - i know)
I guess many are happy enough to hear there’s at least a backup on a seperate disk. And the company i did those commissions for also diskiled cloud services, and i feel like that’s the case for many companies. They don’t like to have their data flying around the world.
Also, those aren’t AAA titles i’m doing, and I’m relatively sure that’s also not what OP is going for. But as far as I’m aware there are also AAA-Studios with failing backup/data management.
For example(first google result i found of that): http://www.siliconera.com/2013/06/25/kingdom-hearts-1-data-is-lost-square-had-to-recreate-everything-for-hd/

It’s interesting to hear that the company had a similar opinion but I cannot imagine it’s the case for many companies.

Actual budget behind the title does not matter in the slightest in my opinion. Certainly not when cloud storage for backing up your data is so readily available and easily affordable. If you cannot bother with a few dollars a month in what is effectively data insurance why would I bother paying you potentially thousands for a game?

They don’t provide enough information to draw a conclusion. They may have had adequate backup measures in place or they may have only kept a master copy. Unless you have a better link that example is pretty worthless.

IMO, I’d prefer to rent a VPS and setup hg/git/whatever there instead of having a “backup drive”. Backup drive is still an option, but you need something beyond it. With VPS your data is secure, it isn’t technically a cloud and you have something to fall on in case you need to get backup and your disk one is old.

1 Like

Yes. That can happen.

I saw a people crying on the net about losing either 5 or 10 years worth of data because of that.

Also, don’t forget cataclysmic events, disasters, and emergencies. An unexpected house fire can destroy both disks. Same thing can happen in case of flood, earthquake, zombie apocalypse, ISS deorbiting right into your house, alien invasion or elder gods awakening.

2 Likes

If my backup system wasn’t enough for the project i have to deliver, I’d have no issue switching to whatever the client demands. It’ll just show up on his bill in the end if it costs something, because why should i pay for extra services from my own pocket?

OP stated he just wants

And if he’s just a single individual I made my suggestion for this.

@neginfinity
Correct, but if we go that far than the NSA can spy on your data on cloud services and the whole US can profit from industrial espionage.
Where did i put my tinfoil hat again?!
But luckily i’m living at a quite save place from floods, eathquakes and similar and also have overvoltage protection for my system. But i don’t know how safe the place is where other services servers stand. You know, people even build nuclear powerplants in unsafe locations.

1 Like

I do believe it is on your head already. :stuck_out_tongue:

People do many dumb things. That doesn’t mean you should imitate them though.

1 Like

Well, tornadoes and thieves come to mind.

Either way, the whole talk reminded me about that one time when NASA lost moonwalk recordings. If you’re worried about spies, NSA and united states stealing your game, backup encrypted volume on which the data is stored, instead of actual data. And try not to accidentally forget the password for the volume.

Of course if these organizations wanted your game that badly they would find an excuse to raid your home. :stuck_out_tongue:

1 Like