I know this question was discussed for decades, and I read a lot of them, but since we are using a Open Source Engine, I think this will be a good discussion, even if it was discussed already.
Let’s say I have a project, when should I think of releasing it as Open Source? Just to share knowledge to community or there are other benefits?
I ask it because even i’m not new in programming, I never engaged in a Open Source project (never found one suitable for me), so whenever I think making a Open Source project (which is different from just release code) some questions come to my mind, like how to control its main objective (not saying about managing commits, branches and such, but the project goal or objectives).
I’m slowly developing a Voxel Engine, but since there are ton of others Voxel Engine, i’m not very excited in starting an Open Source project, but I always got myself thinking on how to do it…
Sorry if this is a non-sense or too long question, but I thought about it
Maybe there’s some misunderstanding that releasing a project as open source implies revoking control over it. Many people seem to believe that …
It doesn’t actually work like this. Once a project goes open source, the original author(s) can update their repository, maintain the bug list, the wiki, etc, without actually allowing anybody else to have write access to those resources. Forks may appear, and even if a particular fork becomes more popular than your original code, you still retain control over your own fork and you can even merge interesting features from other forks if you like.
Some people are scared that forks are bad becomes they create too many incompatible implementations … the reality is that forks don’t happen all that often, as they are very costly to maintain.
My advice is, don’t start it to late as well
Start it as soon as the core is working somewhat stable.
For jme-jfx this was a blessing, as many of it’s current features (like video playing, color buffer conversion in gpu ect) are not done by me, but the others.