Hey,
Due to some recent events that will probably cause me a direct economical damage I find it deem to make clear my personal stance regarding cocos2d:
Background:
I started cocos2d for iPhone 2 years ago. cocos2d for iPhone is based on cocos2d-phython, of which I'm also one of the co-authors.
I ported cocos2d-python to iPhone and I thus used cocos2d for iPhone to develop a few games for 3rd parties, and also to develop my own games.
After a few months of developing games I decided to work full time on cocos2d.
It was as that point that the community started to exist, mainly through the contributions of many developers which kindly invested their time and knowledge in further developing cocos2d. Therefore, it is important to keep in mind that, though I am the lead developer, cocos2d as you know it wouldn't have been possible without all these contributions.
This said, in order to make a living I was and I still am selling the source code of my games: Sapus Tongue and LevelSVG.
~85% of my income is from the proceeds of these sales, ~15% from donations.
I'm not getting rich doing this, far from it. In fact I would earn more money working for a big company.
BTW, may be you think this doesn't concern you, but just to stress how much dependent I am on this income I want to let you know that I'm married, and this is at present the only income that my wife and I have.
I spend ~75% of my time developing cocos2d, and ~25% developing LevelSVG and Sapus Tongue. I spend between 8 and 12 hours per day working on this.
During the 1st year we used an email list to discuss cocos2d stuff. I used my company blog (Sapus Media) to publish cocos2d articles.
1 year ago I registered the cocos2d-iphone.org domain where the forum, blog and wiki are hosted.
At the same time I stopped publishing cocos2d articles on my company blog, and I started to use the cocos2d blog and wiki so as to foster the further development of the community.
Working in cocos2d:
Maintaining an developing cocos2d is very demanding. These are some of the daily tasks that I do:
Developing:
- Check/update roadmap: Which features are needed ? Prioritize them
- Develop features planned for the release according to the roadmap
- Read the newly created issues & categorize them, browse older issues to see if it is related to a previous issue.
- Test the issues. Create Test cases. Try to reproduce the error.
- Sometimes the issues contains patches and/or test cases, sometimes not. If not, I need to create them.
- Fixing an issue: sometimes the bug is fixed in 10 minutes, sometimes it take more than a week. The complexity varies from bug to bug.
- Ditto for new features: Sometimes they are really easy to implement, sometimes they take 2 weeks of work.
- Depending of the newly added feature/patch it is also needed to run the performance tests.
- Performance Test should run as fast as previous version, else the patch/feature should be re-evaluated.
- SDK: When a new SDK is released I try to make sure that cocos2d compiles and works. iPad support was added almost immediately.
- SDK: Every time a new SDK is released, I check if a new feature appeared. If so and if it is applicable, I try to add it in cocos2d.
- New Devices: I have at least 1 device of each generation where I test cocos2d (no iPad yet).
- Editors: I keep cocos2d updated to support the latest versions of the editors: Tiled, ParticleDesigner, Zwoptex...
Releasing:
- For every release all the test cases are executed on a device.
- All the performance tests are run on a 2nd gen device. The performance test is updated in the wiki
- Before releasing v0.99.3 I compiled and tested almost all the test cases in SDK 3.1, SDK 3.2 and SDK 4.0b3.
- Write the Release Notes: I document the important changes
- Package the source code (.tar.gz), Upload it, Download it and test if "build all" actually builds all. If so, announce it on the blog,forum,twitter.
Site:
- I check 2 or 3 times per day messages filtered as spam. Some of them are not spam.
- I try to read all the posts. if the post is on the incorrect forum, I move it to the correct forum. Most of the time I move it "silently", the rest of the time I add a "moved to …."
- Incorrect or missing tags: I try re-tag or add possible useful tags for the post.
- If the post is unanswered, and if I know the answer I try to answer immediately.
- I also try to answer when a question is answered with a suboptimal cocos2d solution.
- Someone posted a new tool ? Either he is invited to write an article on the blog, or I mention it on the blog.
- Check if a new version of the used web-tools were released: wordpress, docuwiki, bbpress, plugins. A new plugin is needed ? Test it, use it.
- Check the logs for possible attacks.
- Check Google Analytics (every week): Which page is being read more ? Does it need to be improved ?
- Make backups (every 2 weeks)
Bills:
- I also pay the site hosting / domain names / cocoslive. There were months that I had to pay more than $400 which I did gladly because I believed in the importance of developing this community.
cocos2d eco-system:
Not only don't I have issues with members of the community developing commercial products, but I even encourage them.
- Editors: Particle Designer is commercial editor.
- Books
- Conferences / Talks:
- Blogs/articles
- Jobs
- Friendly commercial License (cocos2d recently migrated to MIT license)
It is good for cocos2d that these sites/tools/conferences/open jobs exist.
And I'm very happy to have been able to humbly contribute to others peoples making a living/getting a revenue from these kind of products.
Also I would like to mention that the cocos2d site doesn't contain any ad or affiliate link.
I try to keep it as "neutral" as possible. I neither receive nor ask for money to either include, mention or promote the above mentioned products.
What is more, I don't use the cocos2d site to promote neither myself nor my company. The only place you'll find info about Sapus Media is the "store" tab of the site.
So what's the point of all this explanation ?
The point is that I love doing cocos2d, and I'll do everything I can to keep doing it.
I'm not asking for charity, nor am I begging money. If fact, I'm not asking anything from you. I just want to make my stance very clear so that there are no misunderstandings in the future.
For all the above said:
- If you want to get a revenue developing a cocos2d game, writing cocos2d books, developing cocos2d editors, getting hired as a cocos2d developer or give a talk about cocos2d I'll be happy to promote your site/editor/talk on the cocos2d site.
- But I won't/can't let you promote in any way whatsoever any product that competes directly with my sole source of income: The sales of Sapus Tongue and LevelSVG source code.
Thank you for your understanding.