Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

SVN or Git for RPG game

Discussion in 'General Discussion' started by Magpul, Aug 20, 2016.

?

Which system is better for 3d game

  1. GIT

    15 vote(s)
    71.4%
  2. SVN

    10 vote(s)
    47.6%
Multiple votes are allowed.
  1. Magpul

    Magpul

    Joined:
    Aug 27, 2014
    Posts:
    25
    Hi i have simple, but very important (for me) question i don't want to start flame wars or something like that. Basically i have my own server and i m thinking about having a backup over there, but i don't know which system to choose to store (code, 2/3D stuff, SFX and music) right now i'm single person, but in future i'm thinking about collaboration with other people, so my question is what i should choose Git or SVN
     
  2. MV10

    MV10

    Joined:
    Nov 6, 2015
    Posts:
    1,889
    If nothing else, git has almost completely eclipsed every other source control solution out there, so your tooling options will be better with git these days. Do some searches here though, traditional source control isn't optimal for asset storage (graphics, models, etc) and I've seen threads recommending other media-oriented source control / archiving that people are using specifically for game dev. I just can't remember the names of them.
     
    Kiwasi and Magpul like this.
  3. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,322
    Definitely git for code.
     
  4. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    I don't ever use any of that crap to be honest. I've tried, and it ends up being so much more work than just pressing extract and putting on multiple drives/servers for backup.

    Heck the crap is so complicated for me that I always have to have someone set it up.
    I can use them, just really dislike anything source-control wise...

    Don't see nor have ever had any single issue ever extracting my package from Unity and storing multiple copies.
    And for the whole reverting back to old files, I could live without that feature, I've never once had to revert back to old script because I messed something up. Granted yes I've messed things up, but it wasn't nothing a simple ctrl+z couldn't fix.
    And yes I've worked on things that were thousands upon thousands upon thousands of lines of code and still didn't need anything like crap git.
     
  5. passerbycmc

    passerbycmc

    Joined:
    Feb 12, 2015
    Posts:
    1,739
    Just take a week to learn a system like git, it's pretty much a necessity for working with a team and can make your life a lot easier even if your the lone person on a project. It's still easier than managing backing stuff up manually.
     
    wccrawford and angrypenguin like this.
  6. THoeppner

    THoeppner

    Joined:
    Oct 10, 2012
    Posts:
    205
    For me Subversion was much easier to learn than Git. Git is much more powerful than Subversion but also more difficult to learn. If you don't need the advanced features of Git like branching you can use both systems. You make no mistake if you choose one of them. There are also converter tools which convert Subversion repositories into Git repositories.

    Maybe you can work with both system for a while to see which one fits better to you. There are free provider for both systems so that you don't need to setup them by yourself for the tests.
     
    Kiwasi and Magpul like this.
  7. Magpul

    Magpul

    Joined:
    Aug 27, 2014
    Posts:
    25
    Thanks guys for quick answers and there is no other way than check which one will be better for me :)
     
  8. Magpul

    Magpul

    Joined:
    Aug 27, 2014
    Posts:
    25
    @MV10 I just find those two tools for version control, if there is another software for this i will check it aswell
     
  9. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    There's always Visual Studio.. It has something like GIT and stuff.... It's what an old team I used to work for used.. It would transfer anything. Models, textures, audio, music, scripts, etc.

    Not sure if that's the best thing to use, but it worked.
     
    Magpul likes this.
  10. Magpul

    Magpul

    Joined:
    Aug 27, 2014
    Posts:
    25
    Thanks i will defo try this aswell especially that i'm using VS Community instead of Monodevelop
     
    N1warhead likes this.
  11. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    8,968
    Git can bog down and can swell pretty quickly with large binaries. But git is fantastic for branching/stashing and working offline. We use both. All source and working art is svn. Client, code, final assets and pipeline is git. Our new projects are all in perforce, which is the best of both. For personal stuff, I use git, it is fast and efficient, and for source binaries, I just use old school scheduled back ups.
     
  12. passerbycmc

    passerbycmc

    Joined:
    Feb 12, 2015
    Posts:
    1,739
    its managed that better now with the git-lfs extension, for dealing with binaries, and art assets. Though the best i used in the past was using git for all the source code, and p4 being used for all the art.
     
  13. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    The reason I refuse to use these things (besides being a solo developer) is because these things can be made much simper to use... I literally don't even know how to set one up because each place has like 50 downloadable things, such as perforce helix this helix that, over and over. Like I really know which to download. And then have to figure out how to set it up (which I have yet to figure out on my own without someone else doing it for me).

    I don't know why it can be as simple as a basic FTP Interface by connecting to something similar to an IP and just press load and save, or load newest items kind of thing. Not all this extra bloatware I have to download and figure out all the unnecessary stuff that will only be used once just to get it to work.
     
  14. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    You do realise that with a modern UI client version control is a one click process. There isn't really much that could be done to make it simpler.
     
    angrypenguin, Ryiah and zombiegorilla like this.
  15. ToshoDaimos

    ToshoDaimos

    Joined:
    Jan 30, 2013
    Posts:
    679
    If you think that Git is for backup then you are not ready to decide what to use. You need to learn more about the purpose of source control. Git offers for ex. cheap branching is very useful for various reasons. It will also not clutter any of your asset folders with special files.
     
    angrypenguin and zombiegorilla like this.
  16. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,128
    You're just choosing the wrong ones. Getting started with Github is practically a matter of creating an account, clicking the Start a Project button, entering some basic details, and then uploading your project. It's very quick and easy to use.

    If you want a more in-depth explanation with images just check out the official beginner's guide below.

    https://guides.github.com/activities/hello-world/
     
  17. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    BitBucket is about the same. There are plenty of valid reasons to avoid version control. But complexity is not one of them.
     
  18. Metron

    Metron

    Joined:
    Aug 24, 2009
    Posts:
    1,137
    Now this caught my attention. Could you elaborate some reasons to avoid version control?
     
  19. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Darn it, someone called me out ;). Here are two reasons I can think of.

    Version control on a public server can open up security risks. It just takes one devs account to be compromised to let the whole project out into the open.

    Traditional version control doesn't play nicely with large binary files. If your project is binary heavy and code light, you may not see much of a benefit from version control.
     
  20. N1warhead

    N1warhead

    Joined:
    Mar 12, 2014
    Posts:
    3,884
    Is Visual Studio Team Foundation any different to Git and stuff? Because I've used team Foundation with Unity and it just worked and worked fine.

    But what I mean is, is it safer than Git and stuff? It wasn't my server it was on, it was an old teams. But from my understanding, it goes directly to a private server don't it?
     
  21. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,128
    If you're concerned about third party servers you can always host your own Git server and access it through one of the newbie friendly clients available. You don't have to use BitBucket or Github.

    http://softwarerecs.stackexchange.c...bie-friendly-graphical-git-client-for-windows
     
    N1warhead likes this.
  22. Perrydotto

    Perrydotto

    Joined:
    Jul 18, 2016
    Posts:
    42
    My team is currently looking into Git, SVN, etc. and I'm curious why exactly you feel Perforce is the best of both worlds, if I may ask? Checking their website, Perforce seems to be free for small teams of up to 5 people which is what my team falls under, so I'm intrigued.
     
  23. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,509
    With Git, each user has to download the whole repo to use it. With Perforce, each user maps just the directories they need to work with.

    That aside, they work fundamentally differently as far as storage is concerned.

    Git is "distributed", meaning that while there is generally going to be a "master" repo somewhere every user actually as their own full repo to work with. For complicated stuff you can even have intermediaries, so on a large project each sub-team could have a repo for their own branches or whatnot. The benefit for this is that everyone always has the full project history for their part of the project, even when not connected to the repo servers.

    Perforce is centralised, though, so it has one central server, and everyone works directly with that. I don't know that I'd describe it as "the best of both worlds", but that could well be purely based on different past experience. The benefit is where there's a lot of work with large binary files, as people who aren't using them don't have to sync them.
     
    Last edited: Aug 23, 2016
    Perrydotto and Kiwasi like this.
  24. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,509
    It seems this way at first, but it's simply not true in the long run. As @BoredMormon says, it can be as simple as a once click process.

    For me, after completing a task or change I do the following:
    1. Right click the folder my work is in, select Git Commit.
    2. Write a comment that describes what I did.
    3. Click "Commit".
    4. Click "Push" and, if prompted, enter my login details.

    That documents my work, gives me infinite undo, and makes sure I have both local and remote copies, all in just a few seconds.

    When working with teams it's even cooler because a heck of a lot of the time it merges changes without you having to lift a finger. You just say "pull" and it integrates other people's work with your own. Sometimes you have to help it out or, at worse, do the merge manually... but that's what you'd be doing all the time if you didn't use version control at all.

    In some cases it gets a little tricky if there's conflicts with auto-generated files that you can't just ignore. That's a tiny issue as compared to the time savings and added security offered by using version control overall, though.

    There are plenty of people who'll host it for you cheaply or even for free. I've used BitBucket, Unfuddle, am now on Visual Studio Team Services, and there's plenty more only a Google search away.

    Setting up with those places is as simple as 1. Register an account, 2. Create a project, 3. Create a repo. That's it, it's ready to start pushing data.

    Setting up your own isn't even that huge a deal (with Git you don't even have to do anything special, you just use the "create repository" command, because it doesn't even need a server), though I'd recommend going with 3rd party hosting if for no other reason than because it gives you a built0in backup for zero extra effort.

    The catch, as @BoredMormon says, is that there are security risks. For my own game projects I consider the risk of data loss to be greater than the risk of data theft, so 3rd party hosting is a no brainer. When working for clients it's a different story, though - often you're dealing with data that's not yours to decide such things about, so an in-house repo with formal backups is probably the way to go.
     
    TeagansDad, N1warhead and Perrydotto like this.