How can I get people interested in my open source projects?

So I’ve noticed that once I’m done with something and I open source it no one does anything with the source.
How can I get people interested in actually expanding my projects and making them their own?

Well one of the biggies is how well it is documented… i dont just mean the code… i mean big picture documentation such as the data flows, class contracts, etc.

When i am looking for code to use in my own projects i look for succinct logical units i can plug into my project with the minimal effort on my behalf… only when i need to tweak it to my particular circumstances will i actually dive into actual source…

Make them good.

Kev

What Kev said, and even then it’s no guarantee.

A lot of people like writing stuff from scratch.
I would never keep working on a project someone else has started, but I might use good and useful open source components. (In fact, I do. I use LWJGL, and riven’s NIO code thingie, and soon paulscode’s sound library)

edit:

Good documentation matters, yes. Data Flows and class contracs and stuff like that are totally uninteresting. I only look for clean, self-documenting APIs.

Not only good but useful. They need to fulfil a need for a lot of people before anyone will care.

Cas :slight_smile:

I have no personal experience in this area but a Google search for “successful open source projects” produces a lot of useful links.

CyanPrime, come on .
It’s difficult to have anyone to play our java games, do u really expect a mad crowd of people reading and modifying your source code ?
If it’s something that can be reused and extended (i.e. Slick2d), I believe somme people will download the code, and a few less will actually modify something .

Btw, I already guessed who started this thread before I readed the nickname . I think you should really put something in your mind : it’s not because YOU made it, it means it’s good. I’m not saying your games are bad.
I’m just saying that people might not have the same enthusiasm and interest YOU have for your projects . It’s sad, Cyan, but the world does not spin around you or your projects . If you want lots of attention and praise for your projects,

.

I agree with Teletubo, your expectations are not very realistic. How many people actually played your games? If you don’t know, adding some form of download statistics is a good place for improvement. After that, remember that about 0.001% of the players are able to read code. After that, remember that your project needs to have some added value in order for people to start looking at the source.

I use jMonkeyEngine because it would take me years to build my own scene graph on top of LWJGL, let alone the years of bugfixes reported by hundreds of users that have gone into it. So, I use the jMonkeyEngine source because it benefits me.

I’ve looked at the source code for Drive Buster, and I don’t really see anything I can possibly reuse. So even if the game was coded perfectly I still wouldn’t use the code because it won’t benefit me in any way. And btw the code isn’t perfect, from looking only briefly I can recommend the following:

  • If you want t publish source code, use something like Google Code or SourceForge instead of forcing people to download a zip file.
  • Use packages.
  • Provide an Ant or Maven file so that it’s clear how to build the project.
  • Add some form of documentation.
  • Don’t use class names like Enemy1, Enemy2, Enemy3, etc…
  • Use private/protected/public for class members, instead of making everything package-private.
  • Currently the classes have an enormous amount of members, and all are primitives.
  • Don’t use code like
pv[j] = new Point2D.Float((float) ((((bounds[j].x * axis[i].x) + (bounds[j].y * axis[i].y))/(Math.pow(axis[i].x,2.0) + Math.pow(axis[i].y,2.0))) * axis[i].x), (float) ((((bounds[j].x * axis[i].x) + (bounds[j].y * axis[i].y))/(Math.pow(axis[i].x,2.0) + Math.pow(axis[i].y,2.0))) * axis[i].y));

because it’s impossible to read and a maintenance nightmare.

This should get you started. And like Teletubo said, just try to be realistic in your expectations.

Open sourcing something is doing a big favour to anyone who wants to pinch a useful bit of code. That’s about it, people rarely extend an open-source project.

The best open-source developers make sure the useful parts of their code are loosely coupled. The greatest example i’ve seen is kev glass’s slick-util.jar which is used by everyone now for LWJGL image loading.

The only things that might be extended by gracious coders are libraries that are used as a whole, like slick2d or lwjgl.

Maybe you would get a kick out of working on tutorials for new java coders CyanPrime? They’re always very useful and popular, and much appreciated. You seem to have the broad set of web and java skills to set up something pretty good.

I didn’t know your games were open source, and after following the links in your signature and profile I still have no idea where to download the source. Your signature should link to pages made for those two games rather then a .jnlp file. On that page have screenshots/videos, info, .jnlp link and a section about getting involved or downloading the source code (probably at the bottom). That’s my number 1 tip!

But what would really get people involved is an amazingly interesting project with lots of original and innovative ideas. Very easy to say that, but I’m getting at something that stands out from the rest of the (very large) indie game-dev crowd. This would attract more potential developers. To put it another way, why should people be interested in your open source pojects?.

That brings me to my second point. You should develop better questions and ways for finding out specific feedback about why people are and aren’t interested in your games source code. Again this is not an easy thing to do, but if you can work out what aspects people like, don’t like, think are missing or should be changed then you have things to aim at. In short; I think “How can I get people interested in my open source projects?” is a good start but too broad and generic on it’s own for you to really answer this question. Dig deeper!

Finally people don’t join projects in large waves or flocks. It takes years to build up a mature project with an active community.

or maybe, with kev’s permission of course, fill in some of the slick tutorials, there are a lot missing. And I have noticed that you have beenn using slick lately.

CyanPrime, how much of other people’s code have you used in your games? Why did you or why did you not use it?

Evaluating an open source project is a lot of work. Writing well organized APIs that are self documenting goes a long way toward making it easy for others to use. If you find it difficult to document your project, it means you probably need some refactoring. A well thought out project needs only minimal documentation and some examples. In my experience, most projects with more than one page of documentation are rubbish.

I agree with him and I already did such remarks concerning your source code. I have read it each time you released something.