v0.19.0 — A week of Open Source
First week of Open Source
It's been almost a full week since we went open source. Some highlights:
- 🌟 Superpowers has been starred over 500 times, taking the top weekly spot for TypeScript
- 👍 We were on the front page of Hacker News, the top of r/gamedev and featured in HTML5Weekly
- ❤️ Our all-new Patreon page went from $0 to $167/month and we received over 40 donations.
- 36 pull requests were submitted across all repos, 32 of them have been merged or closed
- 📈 Superpowers has been downloaded ~4000 times!
We're thrilled with the warm welcome and the many contributions popping up!
All commits in this release: v0.18.1...v0.19.0 and superpowers/superpowers-game@v0.18.1...v0.19.0
Continuous integration!
Thanks to @BaptisteDixneuf (#26) and some work on our end to correctly report build errors, every pull request and push made to the core repository is now automatically checked for build errors on Travis. The other repositories will be following soon.
Registry and system installation
Following an interesting experiment by @risq (#15), we've spent more time exploring how systems and plugins should be installed and updated. We've set up a registry of systems and plugins and added support for installing systems from the command line:
# List all available systems from the registry
node server install
# Install Superpowers LÖVE
node server install love2d
System releases are automatically fetched from GitHub. Support for installing individual plugins, as well as updating it all, is planned for soon. The redesigned launcher will feature a graphical user interface to manage it all.
NOTE: If you run your server from the command line, you must now start it with node server start
rather than just node server
.
Work on the redesigned launcher
Coding on the upcoming redesigned launcher itself hasn't resumed yet but community member Kilkonie has started a very interesting discussion and created some quality mockups:
Noteworthy fixes and improvements in this release
- Superpowers (all commits)
- The core of Superpowers is now available in 8 different languages!
- There is now a 32-bit package for Linux
- Dashes are now accepted in usernames and there's better feedback for invalid usernames.
- You can now use an URL ending with
?build=latest
to access the latest build of a project - The Documentation tool actually displays something again
- You can now open the documentation page for an editor by pressing F1 while it is focused
- Cut-Copy-Paste in the OS X app has been fixed
- A crash when exporting on OS X has been fixed
- Worked around a major layout bug in Microsoft Edge. Oh and Superpowers runs on Xbox One!
- Project migration should now be more robust
- Now shipping with Electron v0.36.3
- Superpowers Game (all commits)
- The "Stretch" transform mode in the cubic model editor has been fixed
- The API for editing shader uniforms has been improved
For plugin developers
Documentation
The documentation for extending Superpowers has been massively improved. A repository has been created to host a simple and heavily-commented example system. Work on it will start soon.
Setting up new systems and plugins easily
The server has gained a new command for generating the basic structure of a system or plugin:
node server init $SYSTEM_ID
will generate a new system skeleton insystems/$SYSTEM_ID
node server init $SYSTEM_ID:$AUTHOR/$NAME
will generate a new plugin skeleton insystems/$SYSTEM_ID/plugins/$AUTHOR/$NAME
Systems now require a package.json
file
See Superpowers Dummy's package.json for an example.
superpowers.systemId
must contain a unique lowercase identifier for the systempublishedPluginBundles
was added in v0.18.0 and lists the names of the Browserify-ied JavaScript bundles that should be published for runtime use for each plugin when exporting the project. Previously, this list was hard-coded.