spheredev / neosphere

A lightweight game engine and development platform using JavaScript for game coding, based on the original Sphere engine by Chad Austin but with a redesigned, modern API and brand-new command-line development tools.
http://www.spheredev.org/
Other
105 stars 15 forks source link

Implement Sphere Package Manager (spm) #59

Open fatcerberus opened 8 years ago

fatcerberus commented 8 years ago

Like npm for Node.js, spm would allow Sphere developers to quickly and easily download and install Sphere 2.0 packages. These packages can then be loaded by calling require('package_id').

Sphere packages would be set up for semantic versioning to allow for painless dependency management. A package could specify its dependent packages and the minimum version numbers required, and spm would automatically download the correct versions.

The package server will likely be implemented in Node.js and be fully open-source under the same BSD license as the rest of minisphere, allowing anyone to run a package server. To avoid the potential for malware being distributed, packages could be digitally signed and spm would only accept them if it could match their signatures against a known public key. Public keys would be able to be added by the end-user, of course.

This could even be integrated with Sphere Studio to work like NuGet: A project specifies which packages it depends on, and the IDE could download them automatically at build time, avoiding the need to commit third-party packages to version control.

Implementing this would go a long way in making Sphere a more serious game development platform, I think.

fatcerberus commented 8 years ago

Continuing the Dragon Ball Z theme started with Cell and codified with SSJ, I think I will call the package server "Shenron". Basically, you use the dragonballs and make a wish to Shenron who gives you the package. I'm also thinking of calling the "spm" command goku but that might be a bit too goofy. :stuck_out_tongue_closed_eyes: