If you've ever worked for a big game company, you know that there are tools out there to keep track of things. Here are a few categories:
Design Documentation
This is the architectural plans for your game. This is where you store what is going to go into your game, how it works, and how it works with other game mechanics. I could spend hours on writing game design documents.
A few tools that can be used are Word, Google Docs, Wiki, Project.
Project Management
Mostly you see producers with this type of work. There's plenty of tools out there for this. Microsoft Project is a big one.
Project Management mostly consists of high level task tracking, team budgets, deadlines and timelines, things like that. If it's a thing that can be reported to upper management, it would fall in this category
Source Control
Source control is something we as developers should be in every day. This is how you back up your work on your game. It can be as simple as manually copying your work to another disk drive up to using replicated off-site source control in the cloud.
Some common source control programs are GIT, SVN, Perforce, VSS
Bug Tracking/Task Tracking
I put this together as a single category, although I am of the belief that these are completely separate things. Task Tracking is used to keep track of what your team members are doing, what they need to do, and how close they are to finishing it.
Bug Tracking keeps track of game defects and who is responsible and how close they are to finishing it.
A lot of times the same tool can be used for both. Jira is a good example that a lot of companies use.
So what should you use?
I can't make that decision for you, but you definitely have to keep track of where you are on your project and what needs to be done. As an independent developer you should also be using these tools. That's about all I can say.
So what do you use, Tim?
A completely different question, and the answers are different based on the projects. But, in general:
Design Documentation
If I'm working by myself I don't always use a formal design document. Not to say I only keep it in my head. (I do). But what I usually do is keep the important design notes in an excel spreadsheet (or more commonly Google Sheets). That is usually enough for me alone. Frequently I don't make the important decisions until it's time to implement. But I'm a seasoned veteran!
When I work with teams, I tend to use Word or Google Docs. It's a tried and true formula though not always the easiest to read. I try to break out the design documents into smaller chunks so you don't have to comb through the whole document to find what you need. This is why Wiki can be a good choice.
Project Management
Another tool I rarely use by myself. When I'm managing teams, I usually keep track of things in Excel or Google Sheets. Easy and quick that way.
Source Control
I know you're thinking I'm going to say "Here's something I rarely use". But in this case you're absolutely wrong. For me source control is the most important part of a project. Without that, you don't HAVE a project. One little accident and your work is lost forever. (Happened to me). One time when I was at EA, an engineer accidentally deleted everything from our source control. Fortunately there were backups, but there was a lot work lost that day.
There's a couple lessons to be learned there. #1 is using source control at all. #2 is backing up your source control. #3 is backing up your backup offsite. (trust me)
Anyway, for a while I was using the simplest of simple. I had a robocopy script that I ran at the end of the day that copied my project to a NAS (Basically a network hard drive). It also backed it up to my dropbox for offsite storage. (I wouldn't work out of dropbox though. game engines can have issues with that).
That got to be a hassle, and there wasn't any revision tracking. So I changed my methodology. I stood up a virtual SVN server on a home server that I built. That ran a script that copied to dropbox as well.
So what happened with that? Well the hard disk crashed and I lost all of my work. What happened to the backup? Well the cron job had been failing and I didn't know.
Then I set up an SVN server in the cloud. Specifically Google cloud. I configured it to do daily backups and all was good. Until it wasn't. The SVN server crashed (again). the backup came up fine, but the SVN project on my local computer could never connect to it.
FINALLY TO THE POINT
Now I use Google Source Repositories. It's a GIT repository (that I had to get used to using) where Google manages all the backups and stuff. It's been a godsend. Even with a large project I'm paying basically nothing.
So yea. Use that.
Task/Bug Management
I'll try to keep this short because I've been babbling on a lot.
I use two separate things for these. For task management I use a simple Google Sheet. Easy, quick and works good. At least for a solo project. It gets kinda clunky for groups, and I'd probably move to something like Jira for anything larger.
For bugs I use MANTISBT. It's free, and I set it up on a google cloud server. It's not the best bug tracker I've used, but it's good enough and you can do cool stuff like send bugs via email. It's cool though is a bit hard to maintain.
Conclusion
This should have been separate blog posts so I could go into more detail.
Until next time, toodles!
Comments