Skip to content
This repository has been archived by the owner on Mar 5, 2021. It is now read-only.

v0.19.0 — A week of Open Source

Compare
Choose a tag to compare
@elisee elisee released this 14 Jan 03:21
· 408 commits to master since this release

First week of Open Source

It's been almost a full week since we went open source. Some highlights:

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 in systems/$SYSTEM_ID
  • node server init $SYSTEM_ID:$AUTHOR/$NAME will generate a new plugin skeleton in systems/$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 system
  • publishedPluginBundles 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.