Sponsored By

Why use Trac/SVN?

Why should indie/hobby developers use Trac and SVN or something similar? In this post I try to make the case for staying organized using both of these tools. I also provide links to a hosting service that I use, it has greatly increased my productivity.

Kristian Carazo, Blogger

January 22, 2010

5 Min Read
Game Developer logo in a gray background | Game Developer

Why should you use Trac and SVN? There are many good reason why you should use these two tools. I will attempt to provide a case for them below, as well giving some real world examples of cases where these two tools have been invaluable.

Trac Logo

Trac Logo

Being an indie/hobby developer is tough, there is a lot to keep track of and when teams usually only consists of 1 or 2 people it can be even harder. I know the previous statement might seem contrary to popular belief but let me explain. When your team only consists of one or two people and there isn’t any form of documentation or formal issue tracking things can get forgotten and this is bad. Especially when that ‘thing’ is a nasty bug, or a cool feature. Using Trac changes all that, it makes it very easy to document all of the changes that have been made, all of the outstanding issues that still remain, as well as anything that still needs to implemented. Trac also has a built in wiki which I use to store my game play doc, technical doc, art requirements, sound requirements etc..

Being able to have an organized central location where everyone involved with the project can go is great. It is certainly a lot better then trying to pass around .doc files from one person to the other and having to worry about out of date versions. If you’re going at it solo it’s still a great boon because you can access your data online from any computer (more in this later).

The greatest feature available in Trac is the ticketing system. Basically these work like elaborate post-it notes. You can give your ticket a title “Fix input system bug”, and then you can elaborate on the details such as “happens under XYZ condition”. You can also assign someone to the task (if you have multiple people). You are also able to set a variety of attributes for each ticket such as the subsystem this ticket refers to, which milestone it needs to be completed by, etc..

Subversion Logo

Subversion Logo

If you are not already familiar with source control now is a great time to get acquainted. Source control basically lets you back up your source code, saves the difference between check-ins, and lets you make specific builds by using branching/tagging (for example: different licensing providers, etc..).  Personally I use SVN. It works really well for the type of projects that I am working on, I don’t have much experience using it on “big” projects. We use something called Seapine SCM at my day job, even though the interface is different the concept is the same. All source control systems allow you to “check-in” your code once your done building a particular feature or if you just want to save your work for the day.  They also support revisions which basically let you see snap shots of the file after every check-in. If you are working with other people on a project source control is a must. It’s very error prone to manually merge source code changes with in projects, even if the source files that have changed are isolated.

One great thing about using Trac is that it integrates with SVN. This has many benefits including being able to resolve tickets when you check a file in, viewing the source code from with-in Trac, referencing actual source files from within the built in wiki, and many other great features.

If you decide that you want to use Trac and SVN you have a couple of options. The cheapest option is to set them up and run them yourself.  When I implemented this I did it on an old pc I had laying around, I installed linux and put a big hard drive in there, then I set it up so I could access it remotely if I was away from home. This is a great option and the cost is very low, the only downside is that access speeds can be slow when your not on the same network, and you have to maintain all of the hardware and software yourself. Another option is using a VPS system, when I tried this method I used http://www.vps.net/ it ends up being like a dedicated server, this options is very expensive consider what you get. If you only plan to use SVN and Trac I do not recommend this.

What am I using now? https://www.projectlocker.com/ for a very low price you basically get SVN and Trac, a good amount of space and a very fast connection. I have only had 1 issue while using this service (adding a user failed for some reason) but their tech support was fast and friendly. Considering the price I think it’s great. Beware! There are many other websites that offer similar services to project locker, SVN + Trac. Before you choose to go with any service always do a trial period. The reason I didn’t like any of the other services is because they did not offer the same degree of configuration available at project locker. Basically, other than the web interface for Trac it also supports adding “plug-ins” and many other low level admin options. These options are usually only available if you have access to the machine on which Trac is installed (root access). The guys over at Project Locker have done a great job at exposing these interfaces on the web, ditto for their SVN.

In conclusions, I hope that you have found this article helpful in some way. I was hesitant when I first started using these services but after having used them for a while I would not go back.If you have any questions or comments feel free to post them. This is my first blog post so any and all feedback is appreciated.

 

Read more about:

Blogs
Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like