Xbox LIVE Indie Games
Sort Discussions: Previous Discussion Next Discussion
Page 1 of 1 (10 posts)

Thoughts for Team Based Development

Last post 9/3/2009 2:26 AM by Planet Idiot Games. 9 replies.
  • 9/2/2009 6:47 AM

    Thoughts for Team Based Development

    I was wondering how a team would go about and work on a solution without having to constantly copy all the code and assets from one machine to another machine via a thumb drive.

    Any ideas towards software that can make life easier or general methods would be great.
  • 9/2/2009 6:50 AM In reply to

    Re: Thoughts for Team Based Development

    You want to look into revision control (i.e. source control): http://en.wikipedia.org/wiki/Revision_control. Popular choices include CVS, SVN, and Git. For SVN (my choice for source control) you can use xp-dev.com which has a free account to host your project rather than having to host it yourself. I highly recommend it.
  • 9/2/2009 7:01 AM In reply to

    Re: Thoughts for Team Based Development

    Awesome thank you very much this is exactly the information I was looking for.
  • 9/2/2009 8:26 AM In reply to

    Re: Thoughts for Team Based Development

    Nick Gravelyn:
    You want to look into revision control (i.e. source control): http://en.wikipedia.org/wiki/Revision_control. Popular choices include CVS, SVN, and Git. For SVN (my choice for source control) you can use xp-dev.com which has a free account to host your project rather than having to host it yourself. I highly recommend it.


    Wow Nick. *Signs up for xp-dev.com*

    I've been literally using windows live mesh, it's not purposed to project development, it simply provides real-time backup across multiple machines. You can check it out at mesh.com , but it's not as suited as xp-dev, it doesnt provide file locking, but it does keep both copies when the same file is edited on both machines before it can be backed up.
  • 9/2/2009 10:02 AM In reply to

    Re: Thoughts for Team Based Development

    Further to using online source control, you could also grab a free DropBox account. Install the client on each members' PC, and share a folder. You can then store any files in the dropbox folder and they'll automatically get updated on the rest of the teams' PCs when they're online. We use it as a dump for the artist and musician to get finished stuff to me quickly, and for me to keep a playable Windows build updated so they can jump on and play the latest version.

    Edit: Very similar to Mesh ^^
  • 9/2/2009 2:06 PM In reply to

    Re: Thoughts for Team Based Development

    I second using xp-dev. The ZMan and I have been using it during development of our current game and it's been working great. Also, if you ever need it, the support at xp-dev is spectacular (we needed a repository renamed). I ended up paying the $40 a year for the premium subscription just because I've been so happy with the service. Definitely has worked great for team development and we keep everything related to the project in source control. Our documents, the website, all supporting artwork along with the code.
  • 9/2/2009 7:40 PM In reply to

    Re: Thoughts for Team Based Development

    Yes, as others have said, you want version control. If you're new to the concept, SVN is a pretty good choice (heck, it's a good choice generally as well), however if you're looking to graduate into the realm of real distributed development (e.g., you have a team of people working semi-independently of each other and need to make merges of your code base painless) then you'll start running into some real problems with SVN (and others like it).

    Nick mentioned Git which can be a great choice on certain platforms, but if you're here, chances are you're working under Windows which means that your dev environment choice will be something of a second-class citizen in the Git-world. Plus, Git is a really unique DVCS (Distributed Version Control System, although Linus would probably argue against classifying Git as that :-) which takes quite a bit of getting used to and quite a bit of brain re-wiring (e.g., koolaid drinking) to fully appreciate*.

    I've been running my little Indie company in a 100% virtual and distributed fashion for over a year now (recently got our first game in peer review) and can give you a bit of advice as to what we've found works well.

    Personally, we went with Mercurial (or 'Hg'). It has a lot of advantages over other DVCSes (crazy fast compared to things like BZR, easy to pick up CLI that is very similar to the traditional CVS/SVN interface- thus well documented, etc.) but the biggest one in our minds was that it was written in a language that is truly cross-platform (Python) and runs wonderfully in Windows (as well as Linux, Mac OS, and presumably whatever else you would want to work in). Additionally, if you install and use TortoiseHg, you get it very nicely integrated with Explorer (which means you can actually get at Hg GUI commands and repo stuff through Visual Studio- a huge plus IMHO). Plus, it's all open-source, which means it'll be free (as in beer) and wont cost you a penny to use.

    There's plenty of sites that offer Hg project hosting (you can find some here), but I'm not sure which will host non-open-source Hg projects for you for free (if you're doing, say, a proprietary and closed source game, chances are it'll cost you). That being said, you don't need a hosted central repository like you would in something like SVN as you can just send merge bundles between your developers using whatever means you have available, like email or chat (DVCS development is different from classical VCS development in that there is no central repository... a hosted DVCS repo merely provides convenience but it's not necessary at all).

    Beyond the version control system, if you need a quality issue/task/schedule tracking software, I highly recommend Redmine. The really cool thing about Redmine is that it can integrate nicely with Hg (and other DVCS/VCSes) which helps making workflow seamless in a distributed team. I bet you'll have a hard time finding someplace that'll host Redmine and Hg for you, however, so your best bet there is to just get a hoster that lets you have root on some Linux boxen (or virtual boxen) somewhere and run it yourself (heh, if you're really interested in the Redmine+Hg set up, contact me on our site contact page and I'll hook you up with a friend of mine who hosts ours and would likely be able get you the best deal you'll find for the two :-)

    Hmmm, this post has grown a lot longer than I expected it to... It's just a topic I know quite a bit about (before trying this indie game company thing, I worked for the last 15 years in the open source industry, so I know all of these tools inside and out :-) ... I really should probably just write up something on the topic, post it on my site, and then link it in these forums... but... meh...

    Some related things I've written on the subject (likely all very "ranty" and likely full of foul language- you've been warned): All DVCS suck, Converting from SVN to Hg.

    * : Okay, I can be a bit harsh on Git... I probably shouldn't be, please don't yell at me Git-fans! My biggest problem with Git is that when Linus first started the project years ago he basically threw out everything that came before and started from scratch. I realize he was trying to solve some problems that he viewed as gianormous, but it still felt like throwing the baby out with the bath-water. Anyway, the end result is that Git has an interface that's all over the place. Yes, this scattershot interface gives you some supreme powers when you want to do strange things that sound like anathema in other VCSes (git-rebase is a delightful little bit of evil that makes me booth swoon and recoil in fear :-) but at the end of the day, you have to swallow a lot of stuff I'm not comfortable swallowing to really appreciate and enjoy Git... And this is coming from someone who worked professionally on a git-based project for two years and was a strong advocate for it :-)
  • 9/2/2009 8:47 PM In reply to

    Re: Thoughts for Team Based Development

    Since I'm the only programmer on my team a lot of times I have to figure out why the latest version builds on my machine but not on someone else's. Non-programmers can be notoriously bad about providing information so I use Remote Desktop or Remote Assistance to bring up their desktop and diagnose the problem personally. Those kinds of sessions usually end with advice like "please don't delete or rename the .svn data folder." :-p
  • 9/3/2009 12:56 AM In reply to

    Re: Thoughts for Team Based Development

    Funavision:
    Hmmm, this post has grown a lot longer than I expected it to... It's just a topic I know quite a bit about (before trying this indie game company thing, I worked for the last 15 years in the open source industry, so I know all of these tools inside and out :-) ... I really should probably just write up something on the topic, post it on my site, and then link it in these forums... but... meh...
    "Meh" be damned... I did it anyway...

    Here's a more detailed post on my website which goes into what we've done at Funavision: http://ww2.samhart.com/node/172

    If there's interest, I'd be happy to re-post it in a fresh thread so others can see it as well. Bear in mind that a lot of what I talk about is likely rudimentary for many people. I was just trying very hard to present something for any person who has really no clue where to start with this sort of stuff (I was trying to make it very general purpose :-)
  • 9/3/2009 2:26 AM In reply to

    Re: Thoughts for Team Based Development

    Nick Gravelyn:
    You want to look into revision control (i.e. source control): http://en.wikipedia.org/wiki/Revision_control. Popular choices include CVS, SVN, and Git. For SVN (my choice for source control) you can use xp-dev.com which has a free account to host your project rather than having to host it yourself. I highly recommend it.
    Nice... I was planning on trying to set up tortoise SVN but it's good to know I have a fallback if that doesn't go as smoothly as I'm hoping :)
Page 1 of 1 (10 posts) Previous Discussion Next Discussion