Author Topic: Code Sharing  (Read 2688 times)

Offline Oralordos

  • Sr. Member Mark III
  • ****
  • Posts: 433
  • Suffering from Chronic Backstabbing Disorder
Code Sharing
« on: February 04, 2011, 04:54:24 PM »
I was wondering what Arcen uses to share the code between the two programmers. Is it a part of Unity? Or do you use something else?

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 30,700
Re: Code Sharing
« Reply #1 on: February 04, 2011, 05:07:15 PM »
We use SVN.  Specifically, RepositoryHosting.com.  On windows we're using both VisualSVN and TortoiseSVN, and on OSX I use Versions.

Unity has its own source control system, but it didn't look very good.  Having spent many years using SourceSafe, I wasn't about to give up my SVN anytime soon. ;)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline TechSY730

  • Core Member Mark V
  • *****
  • Posts: 4,550
Re: Code Sharing
« Reply #2 on: February 04, 2011, 05:41:13 PM »
We use SVN.  Specifically, RepositoryHosting.com.  On windows we're using both VisualSVN and TortoiseSVN, and on OSX I use Versions.

Unity has its own source control system, but it didn't look very good.  Having spent many years using SourceSafe, I wasn't about to give up my SVN anytime soon. ;)

Oh dear lord, SourceSafe.  :o *goes into a corner and goes into a fetal position* 

Offline Oralordos

  • Sr. Member Mark III
  • ****
  • Posts: 433
  • Suffering from Chronic Backstabbing Disorder
Re: Code Sharing
« Reply #3 on: February 04, 2011, 05:44:53 PM »
Cool! Whenever I want to share some of my little things I use Dropbox. The 30 day rollback feature is nice. As well as how hassle free it is.

Offline Michael_H

  • Newbie
  • *
  • Posts: 1
Re: Code Sharing
« Reply #4 on: February 07, 2011, 07:45:07 PM »
Chris, how do you handle version control relative to the overall Unity project then?  Do you only check in and commit directories with your C# code?  I'm just getting started with Unity (I like Mercurial for version control) and I'm trying to figure out a good workflow with the Unity system and maintain good version control practices.  My initial idea (I'm just getting rolling here) is to only commit code directories within the project while leaving bigger binary files as they are within Unity...
« Last Edit: February 07, 2011, 08:14:05 PM by Michael_H »

Offline TechSY730

  • Core Member Mark V
  • *****
  • Posts: 4,550
Re: Code Sharing
« Reply #5 on: February 09, 2011, 07:09:00 PM »
Just out of morbid curiosity, what SVN revision number are you up to for each of your products?

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 30,700
Re: Code Sharing
« Reply #6 on: February 11, 2011, 10:25:14 AM »
Oh goodness, I just saw that this wasn't giving me email notices of the updates.  Sorry!

TyberZann -- Actually, I use Dropbox for sharing stuff with myself between my mac and my pc.  All of the larger art working files that I want to keep track of but don't want to put in SVN, for instance.  Raw 3D files, larger rendered images from before they are post-processed and shrunk down for use in-game, etc.  I also use MozyHome to back up my main computer in general, so I wind up with triple (or better) distributed protection for most assets.  As a former sysadmin, I don't like to mess about taking chances. :)

Michael_H  -- We check in the entire project directory for unity, but we don't check in any generated binaries for actually playing the game (anybody with unity and the project can generate those themselves).  Those we store in an ignored WorkingBuilds folder, and we have some flags in our game that is able to locate the RuntimeData files (which we do check in to SVN) even when it's in that subfolder.  There are some other files in the Library folder that we don't check in, too.  This is our svn:ignore property for the Library folder:

Code: [Select]
AssetServerCacheV3
FailedAssetImports.txt
ScriptAssemblies
ScriptMapper
Temp
assetDatabase3
cache
guidmapper
metadata
unity default resources
unity editor resources
unity editor resources
MonoManager
BuildSettings.asset
MonoManager.asset
expandedItems
previews
EditorUserBuildSettings.asset
AssetImportState

In terms of the other binary files -- images, music, etc -- we just try to check those in as infrequently as possible.  If a music piece is undergoing a lot of revision, often we use email to send out copies of it and discuss it before it goes into SVN.  In terms of art, I try to only commit things I am at least moderately happy with, and to make as few, but as productive, of changes to those assets as possible.  That still winds up wasting some space, but I really like the security of having anybody with svn access and a copy of unity being able to download the full thing and build a working copy.  If it's too complex, then we risk losing important stuff, I think.

techsy730 -- For AI War up through 3.085, we were on a different repository, which got up to 2579 revisions and about 800MB.  Then between that and 3.189, before we moved to Unity, we had 573 more revisions.  Then since moving to Unity, we've had 1632 more revisions on AI War.

Tidalis, after moving to Unity, had 2114 revisions.  I'm not sure how many it had on the SlimDX side, but I would guess a couple of hundred, but no more.

A Valley Without Wind, so far, has had 263 revisions. :)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline TechSY730

  • Core Member Mark V
  • *****
  • Posts: 4,550
Re: Code Sharing
« Reply #7 on: February 11, 2011, 04:33:01 PM »
Oh goodness, I just saw that this wasn't giving me email notices of the updates.  Sorry!

Yep, notifications work great, except when they don't.  ::)

techsy730 -- For AI War up through 3.085, we were on a different repository, which got up to 2579 revisions and about 800MB.  Then between that and 3.189, before we moved to Unity, we had 573 more revisions.  Then since moving to Unity, we've had 1632 more revisions on AI War.

Tidalis, after moving to Unity, had 2114 revisions.  I'm not sure how many it had on the SlimDX side, but I would guess a couple of hundred, but no more.

A Valley Without Wind, so far, has had 263 revisions. :)

So for AI war, that would be 4784 revisions total.

Among all of your projects, that would be 7161 SVN revisions!  :o
Looks like you guys are really dedicated. And it seems like you are having fun in the process (well, except for the corporate administrative stuff that sometimes sucks up your time).

Maybe you can make a celebratory post once you reach your 5000th revision for AI war (so that would be the 1848th revision in the current AI war repository). That seems like a worthy accomplishment to celebrate. :)