Hi all, I reorganized the "How to Start" docs a bit (most notably merged the website/mailinglist ones into one) and added some stuff. Please have a look at it (I'm sure there are at least some weird expression errors in it ;) Christian -- Drive A: not responding...Formatting C: insteadTitle: How to Start a new Project
So you have that great idea, the skills to make it work and enough spare time to actually do it? You are fascinated by the bazaar model of development, by those groups of people who have never seen each other yet work together to create something really great, by the cooperative and helpful spirit in them? You want to turn your great idea into an open project aimed at creating the single most wonderful game(1) ever? Welcome aboard, let me take your hand and guide you around the traps and pitfalls to the promised land :-)
We'll look mainly at the infrastructure your project will need: a website, one or more mailing lists, a CVS repository, FTP space etc. There is also a collection of generic project management tips available.
Ok, let's start with a very basic thing:
If you have your own big server connected 24/7 to the internet with a T1, including a tape streamer of at least the same size (for the daily backups) and well-trained staff administrating that setup, well, then you are very lucky. But unfortunately most people have to go out and find someone to host their website, mailing list and all the other stuff.
But where to look? Getting free high quality hosting can't be easy, right? Wrong! There are quite some organizations provide free projects (the free is important) with hosting of the most common services. Here's a list of some of them:
All of the above organizations offer (almost) unlimited disk space, web hosting (including at least basic CGI), mailing list hosting, FTP space, CVS access and a top speed connection to the internet. Sounds good, doesn't it? ;-)
(Note: If you know other hosting organizations offering similar quality, please tell us. Thanks.)
Ok, on to the next topics:
A decent website is a must-have: it allows you to inform the (potential) users of your project about your goals, new releases and practically any news item related to the project. Also, it allows direct feedback from the users.
Go for simply, classic, readable and not for high-tech state of the art. First of all, you want to put most of your efforts in developing a game, and not in creating a superb website representing a vaporware project.
A few items your website cannot do without (in random order, some apply to open source projects only):
And always remember: A website needs to be maintained, the
information on it (most notably the status information and news list)
has to be up-to-date. If people see a website that hasn't changed in months
they usually take it as a sign that the project underneath has died.
Setting up a Mailing List
The mailing list is where the project's action takes place. Here plans and decisions are made, designs are discussed - everything important happens here. The mailing list is every (distributed) project's main home. To put it short: You need one.
Fortunately a mailing list setup is a relatively simple thing, there is not much that can go wrong and there are only a few "optional features" to care about:
The intro of the CVS manual by Per Cederqvist does a pretty good job of explaining ahet CVS is and why you should use it. And as I am a pretty lazy person I'll simply quote it for a starter ;-) :
CVS is a version control system. Using it, you can record the history of your source files.
For example, bugs sometimes creep in when software is modified, and you might not detect the bug until a long time after you make the modification. With CVS, you can easily retrieve old versions to see exactly which change caused the bug. This can sometimes be a big help.
CVS also helps you if you are part of a group of people working on the same project. It is all too easy to overwrite each others' changes unless you are extremely careful. Some editors, like GNU Emacs, try to make sure that the same file is never modified by two people at the same time. Unfortunately, if someone is using another editor, that safeguard will not work. CVS solves this problem by insulating the different developers from each other. Every developer works in his own directory works in his own directory, and CVS merges the work when each developer is done.
Of course it takes a little time to learn how to use CVS, but it is actually quite simple and it makes maintaining your sources much easier. Have a look at the CVS manual (it's really good), play with it on your own computer for some time and then ask your host about a proper setup. Soon it will become an indispensable part of your development work.
(1) No, this text of course does not only apply to game projects. Referring to them just makes it fit better into this site ;) [Back]