[Ed Bartley of Flowerpot Games (Flower Battles) suggests several valuable tools for indie developers to help with source control, communications, and issue tracking, in this #altdevblogaday-reprinted opinion piece.]
Youíre thinking about starting, or have just started, your indie game development company and you want to get started coding right away. But there are some things you need to do first, lest you lose data, time, and money.
You need to pick the tools you are going to use for Source Control, Team Communications, and Issue Tracking. There are many options to choose from, and rather than dwell on each option, Iíll present the tools that Flowerpot Games uses for its development efforts.
You need Source Control! You need it even if you are a lone-wolf working in your spare time on the weekends. Eventually you, a teammate, child, spouse, or cat will accidentally delete something or make some small forgettable change that introduces a hard to find bug. Even if you keep source backups, you will eventually find yourself banging your head on the keyboard and yelling ďStupid! Stupid! Stupid!Ē
While Source Control is not perfect, it will minimize the impact of deleted/modified source and will help you track down bugs by allowing you to revert to an older set of code and do side-by-side comparisons of source changes. If you delete a file, no problem, just restore it from Source Control.
Flowerpot Games uses Subversion (SVN) for source control. We have a remote server with SVN installed allowing easy access to external clients. The SVN directory tree is automatically backed up daily to a separate hard disk to further minimize risk of data loss.
Windows machines can access the SVN repository using many different clients, the most popular being TortoiseSVN because it integrates cleanly with Windows Explorer. Mac machines can use SCPlugin to integrate SVN into the Mac OS X Finder. There are also some nice Mac clients for purchase, including SourceTree.
But SVN is not the only option. There are many options, including GitHub (using Git), Bitbucket (using Mercurial), and Google Code (using SVN or Mercurial). Which one is best? Many of my personal projects use Bitbucket because of the flexibility, but itís really up to you to decide.
Communication isnít usually a problem if you are a lone-wolf or your team is in the same room with you,. However if your team is distributed across the globe, or even across the city, then team members need a way to communicate. There are many choices to chose from and the best choice is dependent upon your team and the technologies they are comfortable using.
Flowerpot Games uses a combination of communication tools including, Internet Relay Chat (IRC), Internet Forums, and email. IRC is excellent for instant communication (instant messages) across the globe and best of all itís free if you have an internet connection and an IRC client.
We use Newnet (irc://irc.newnet.net) for our IRC communications on a password protected IRC channel (but anyone can join us in channel #fpg). There are many other free to use IRC servers available like Freenode (irc://irc.freenode.com). There are many IRC clients available for nearly all platforms. The downside to IRC is that the conversation is not persistent.
The other technologies we use are email and Internet Forums. Email is a no-brainer, but cc and reply formatting can make it difficult to follow a conversation. We use Internet Forums hosted on our company server to share ideas and thoughts that are too long for IRC or email. Forum posts can be read by anyone with permission and are persistent. They also make it easy to follow a conversation thread as others post their comments and arguments.
Internet Forums take time and resources to set up and maintain. Youíll need a server to host the forums and someone to apply software updates and remove spam. There are free or low cost forum services available like ProBoards, but many of them insert advertisements into the conversation thread and donít make it easy to backup the forum database. Email is available from Ö well Ö if youíre reading this you probably know where to get an email address.
Other options include Instant Messaging systems (IM) like MSN, YAHOO!, and Skype but your choice of communication systems are up to you.
You will have bugs and feature ideas that pop up during the course of building your app and you need a way to document and track their status. The system Flowerpot Games uses is Trac to track such things.
Trac needs a server and database to function. It integrates with Version Control Systems and also provides a wiki to store information. We use Trac to maintain bug status, milestones, and our game design documentation.
You now have a starting point for figuring out which tools will help you and your team prevent loss of valuable source code, communicate better, and track issues. There are many options available, but none of them are perfect or will fill all your needs. Some of them require money to start-up and maintain while others are free to use. Carefully pick the tools that will work best for your team because changing them later will be a painful process at best.
What tools does your indie team use?
[This piece was reprinted from #AltDevBlogADay, a shared blog initiative started by @mike_acton devoted to giving game developers of all disciplines a place to motivate each other to write regularly about their personal game development passions.]