Package Manager

Package Manager

This has probably been discuss before. But something that i feel that is missing from cocos2d-x is a package manager for extensions or even for core components of cocos2d-x.

And yeah i know that this may sound easier than what it really is. But at least i would like to start a discussion on the high level architecture of how this would work.

My sources of inspiration are:

  • Cocoapods (xcode package manager)
  • npm (package manager for node.js)
  • bower (web front end package manager)

Obviously is going to be a lot of work to try and do everything that cocoapods does but we could probably leverage on what they have done or just take them as a source of inspiration.

Because cocos2d-x can be use with different IDEs I would say that to start of we would have to make a simple client that only downloads from git repos (doesn’t update the projects) the source code for the packages you have defined in some kind of config file.

But the first step would be to define:

  • Folder structures standards for extensions.
  • Schema for the config file where all your package information would be at.
  • Client side language/architecture. (python, something multiplatform)
  • Server side architecture. Shouldn’t be to complicated would only act as a router between client and git repos.

Well let me know if you have some suggestion or comments.
I’m currently working on a extension for cocos2d-x once I’m finish with that I will probably try to do a small POC for a “extension manager”.

I was just about to start a thread with the exact same topic. The need for an extension/package manager is certainly gonna help the engine grow “horizontally”, with a wide breath of possibilities.

Personally, I would like to start working with a simple package manager for Actions. There are sooo many actions that are easy to implement, but would be cumbersome to just add all of them into the main repo. Having a set of actions with a gallery would be ideal.

I am willing to lend a helping hand if someone wants to start this, or if I can ever find time in my schedule, I just might give it a shot!

If possible, make cocos2d-x into a pod in CocoaPods :slight_smile: