Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

As a developer I'm used to Subversion for source control and I think it's great for sharing source code between developers.

Now thinking about my graphists and game designers, they need to have a slightly different approach I think.

  1. They need to share binary files
  2. They need to be able to have a thumbnail and preview of their work
  3. I don't want to include their binaries into my game repository (would be much too heavy for developer when updating)

I've seen that some graphists uses personally created website to share their work but I was wondering if some "standard" application existed in order to provide my graphists a cool way of working together.

Is there a common way of dealing with this? Is the way I want to do (only final sprites on my game repo) correct? How do you guys do this as game developers?

share|improve this question
1  
    
@Tetrad Thank you but I want a solution more on the graphic side. All those tools are perfect for code sharing, but not so cool for graphic work sharing... –  Andy M Sep 12 '12 at 17:52
1  
@AndyM They're for sharing binary data. –  Byte56 Sep 12 '12 at 17:55
    
@Byte56 It's working perfectly with binary data, that's right, but imho, it's not so friendly when trying to compare binary file (such as images)... It's really friendly when you diff two text files but If you want to see the complete history of a png file, it's a "lot" of pain... –  Andy M Sep 12 '12 at 18:00
4  
That's a problem with your diffing tools, not with the version control itself. For example: tortoisesvn.tigris.org/TortoiseIDiff.html –  Tetrad Sep 12 '12 at 18:20
show 1 more comment

2 Answers 2

up vote 5 down vote accepted

If your artists are more like members of your project and less like casual freelancers that do one time contribution, they should be using version control too, because it's inconvenient to go downloading and uploading stuff from/to websites instead of just keeping everything in sync with simple svn update.

Personally I tend to use the the main version control repository also for data needed to play the game and then a separate repo for source art files (e.g. images in a layered format which are flattened for usage in the game), if any.

If source art files are small, I'd just slab everything to the same repo. On the other hand, if I e.g. had lots of level files and other stuff that might not change that often but take up a lot of space, I might put them into a separate data repository, but always using version control software (Git in my case, but subversion works too).

Some comments on your points in your question:

  1. SVN can hold binary files without a problem, although you will most likely not get meaningful diffs. Only thing to look for is conflicts as they cannot really be merged easily. It shouldn't be a problem as long as the artists communicate and don't work with the same piece at the same time and commit their work frequently. Note that conflicts would also be a problem with manually uploading stuff to websites etc.

  2. They can have thumbnails in the file browser from the svn checkout. If the file cannot be thumbnailed automatically, a separate preview jpg could be added.

  3. Depending on what kind of art you are using (you mentioned sprites so 2d pixel art?), you might not have anything else than the files your game needs anyway, and svn update is going to be the easiest way for developers to fetch the latest art to use & test.

share|improve this answer
    
Thank you very much for your answer ! I was thinking about two different repos, seems to me it could be a cool idea. I really don't want my game checkout to be 3 go just because of graphics. I know subversion can handle binary files but it's not so cool when trying to see diff between those file... All those version control tools (git, svn, etc) are really code based which makes sharing graphics not really friendly... –  Andy M Sep 12 '12 at 17:56
    
Subversion allows locking files to avoid conflicts. It could be a bit burdensome though. –  liori Sep 13 '12 at 1:07
add comment

I maintain two directories:

  • Working assets - Has textures/models/GUI graphics in their native format (Blender files, whatever gimp uses, etc.) This is not packaged into my game. Similar to how the source files are used to create the binaries, these files are used to create the resource files
  • Assets - Has all the exported textures/models/graphics. These are all in formats that my game reads, they're the "final" format. Blender files are exported in to .x files with meshes and animations, art files are .png. These are packaged with the game.

When switching between my laptop and PC, I just check everything in, including what's in the working directories. Then I have the same tools on both computers, and I can just open the native formats with the appropriate tool and pick up where I left off. No problems.

There are some repositories that have additional functionality, specifically for art. For example, github has Image view modes. Which has features like comparing images side by side, swipe (swipe a seperator across a single image to see "before and after"), onion skin (overlay a transparency of "before and after") and difference which shows just the differences.

enter image description here

Or TortoiseSVN shows images side by side.

The bottom line is, if you're hosting this repository yourself, you're going to need a lot of extra storage for graphics diffs. Because, like you said, it's not like a source code file where you only have to store the differential, you're likely going to end up storing multiple copies with only slight changes.

share|improve this answer
    
Thank you for your answer ! I see, i could really do this but I'm afraid my repo to grow to a huge size. Imagine I have 100 coders and 2 graphists, I'll annoy 100 people with big checkouts and slow updates because two guys are drawing a hell of a lot of sketches and mockups (just an example)... You see what I mean ? –  Andy M Sep 12 '12 at 17:58
    
As Tapio said (and maybe you, by saying two directories), maybe two repositories could do the job (but it would still be unfriendly to use version control tools I think) –  Andy M Sep 12 '12 at 18:05
    
The coders can easily only checkout the source portion of the repository. They only care about the finished art and the source code. No reason to update the source art. –  Byte56 Sep 12 '12 at 18:06
    
I didn't know it could be possible to diff images... It's cool... I'm hosting my repo and yes, I've thought about the images size ! I'll probably switch my repo on my NAS which can safely hosts up to a 1 To. –  Andy M Sep 12 '12 at 18:27
2  
@AndyM, your developers don't have to checkout the entire repository. They can checkout anything they want, from the trunk, to a folder in the trunk, to a single file. That means all you have to do is separate your assets from your source code and now your teams don't have to fret. –  Cypher Sep 12 '12 at 20:24
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.