I am not a pro game developer and I haven’t used cocos2dx for real. I like to browse your sources occasionally though.
Since you are in the process of a refactor I thought to drop my comments:
- The project structure, in general, is to a certain extend ugly. It includes everything and the kitchen sink. Some examples:
/ cocos2dx / Android.mk <— Android makefile among the sources. Not pretty.
/ cocos2dx / proj.xyz <- Makefiles in sources. Not pretty.
/ cocos2d_libs.xcodeproj <— IDE trash.
/ cocos2d / plugin / plugin-x_ios.xcworkspace <— IDE trash.
/ samples / samples.xcodeproj <— More IDE trash, I use Eclipse btw.
/rpm <— Distribution package descriptor. Not pretty.
On the other hand sample projects are mostly done right.
/ samples / Cpp / TestCpp / Classes <— Clean sources. Beautifull.
/ samples / Cpp / TestCpp / Resources <— Clean resources. Beautifull.
/ samples / Cpp / TestCpp / proj.xyz <— At project root, not in sources. Beautifull.
/ samples / Cpp / TestCpp / .externalToolBuilders <— Ah, at last some Eclipse trash too!
/ samples / Cpp / TestCpp / .cproject <— More Eclipse trash!
/ samples / Cpp / TestCpp / Android.mk <— At project root. Not cool.
- Source code uniformity. Really guys, you need to use an automated source formatting tool. And you could also use rules about class layout, order and consistency.
https://github.com/cocos3d/cocos3d/blob/master/cocos3d/cocos3d/Nodes/CC3Node.h <— Simply great! and the whole project structure is neat too.
- Modularity. User projects shouldn’t have to live inside the cocos2d project structure.
In conclusion, I realize that I may be talking nonsense, since I haven’t used cocos2d professionally. Please don’t take my criticisms personally I appreciate your hard efforts.