How to Go Open Source

Started by
10 comments, last by Mr Grinch 16 years, 8 months ago
So I've been thinking about taking my little game engine (affectionately called Mocha, with a toolkit called Whipped Cream) and releasing the source on SourceForge. I know that there a tons of projects out there and many of them aren't very active at all, so I was wondering if anyone has any tips or tricks to successfully create a new open source project that gets at least a wee bit of attention. The code base is pretty small (only about 7000 - 8000 lines), but the basics are laid out and functional. The most complete systems are input and video, but both are still in need of serious work. I have some refactoring in mind, and even renaming to fit a particular style and layout. There are some things I'd like to preserve with my project, and I'm not sure if they're all possible with open source software: - Control over the general design and code base. That is, not opening up the project, and having everything scrapped and practically started from scratch. :-) - Major design changes or sometimes require approval (by me or popular vote of active participants). - Guide to style and layout. Naming conventions and comment style remain as they are already laid out. Any suggestions (or realizations)? :-) Please let me know if you're interesting in more details about the engine. It's very simple and tends to focus more on usability than speed. Thanks!
Advertisement
Generally I've found the more successful open source projects are the ones that get documented the most. Document the hell out of the project, provide not only an API reference, but a manual on how to use the features as well as some quick tutorials to get people going that don't want to do a lot of reading. Also take user feedback very seriously as they're potential contributors.
You can open source your code under different conditions, and it would certainly be possible to do what you want, which is managing the workflow of code changes.

Setup your code base on a repository with permissions so the code is readable and downloadable by everybody and only modifiable by people you have given permissions (initally you only)

For code fixes you can promote a patch submission system that you get to approve/discuss with contributors.

If your project grows then you can add people you trust to the list of approvers/reviewers, and keep the patch submission system in place.

Choose licensing terms for your work, there are several licenses out there (GPL, BSD, MIT, etc), note that your license choice will affect who is attracted to your project, some people dislike GPL type of licenses due to the conditions it imposes on potential closed source adoption of the code base, for other projects GPL licenses work fairly well (i.e. Linux Kernel)

Document your project VERY well (not just the standard wiki stuff people do, provide samples, FAQ, diagrams, quick start/getting started section, goals, roadmap, etc), and make sure your code base compiles clean on download and contains all the dependencies it needs to run (several projects fail here, i.e. I wanted to try Panda3D because it looked awesome, but was never able to get it to compile under WIN32/VS2005 cleanly, then I stopped trying, then I tried Irrlicht and OGRE and had no problems, and was happy testing both libraries, you get the idea)

Note that there are hundreds of open source projects out there, and several are abondoned fairly quickly, you need to sell you project to others, recruit contributors, make your project appealing and popular, if you end up getting a solid community you will see the project grow.

Open Sourcing is much harder than setting up a repository on some web site, it is hard work to make an Open Source project successful.
Thanks for the replies.

I'm working on (re)documenting the source at the moment because my commenting was initially very sparse.

How should I go about making a documentation page (wiki)? I've never done so before, so I really have no clue where to start. I've seen plenty of wiki pages that offered download links, documentation, and samples to boot. This seems like it would be the best idea.

Also, I was looking at the LGPL license. Would this be suitable? I've downloaded GPL/LGPL code before and have noticed the elaborate section of comments at the top of each source file. Do I have to add something like this to my code manually?

Thanks again for the help. I appreciate it.
For documenting, you could use a system like Doxygen. You basically put some special comment lines into your code and then run Doxygen. It will create an HTML documentation for your code. It's comparable to JavaDoc which I've used and liked a lot.
IMHO SDL has excellent documentation
I love to use the NaturalDocs documentation system that was recommended to me on this thread.
Doxygen (I have no experience with NaturalDocs) is a fine choice for API reference documentation, but this is only the second level of documentation: only interested potential users read Doxygen docs, after having looked at the first level of documentation (the overviews, manuals, tutorials eedok describes) and having decided from those documents that
1) the project isn't too abandoned/unfinished.
2) the project does something they understand and potentially useful well enough.
While API documentation is necessary for users and a great discriminator between programmers that hack for themselves and programmers that care about users, a good first impression (web site, "marketing", clear basic explanations) is even more necessary.
Compare the web sites for OpenTNL and HawkNL: the architectural overview and other introductory documents of the former build more confidence than the stark function list of the latter, while the respective API reference pages are similar .

Omae Wa Mou Shindeiru

Should I build my own site from scratch? Are there sites where I can build a wiki page without having to pay for the space?

I actually have a layout for a site to promote the engine, but I don't have any web space at the moment. I'd like to get a wiki page up first, I think.

Thanks again for the replies. They're extremely helpful.
There looks to be free places to do it

This topic is closed to new replies.

Advertisement