Skip to content
This repository has been archived by the owner. It is now read-only.
Compare
Choose a tag to compare

This release is compatible with the Superpowers app >= v6.0.0 because of some breaking changes.

  • Updated all dependencies to latest versions
  • Moved to HTTP Basic Auth with rate limiting and constant-time string comparison for authorization
  • Add a checkbox to confirm when trashing an asset since it cannot be undone without restarting
  • Made it so saved sessions are invalidated when the server password is changed
Compare
Choose a tag to compare
  • Fixed crash when checking a data schema rule violation for an invalid key in a ListById
  • Upgrade to TypeScript v2.0, now using types from NPM instead of tsd
  • Upgraded dnd-tree-view, resize-handle and simple-dialogs to TypeScript v2.0 too
Compare
Choose a tag to compare
  • Fixed default revision names: date was wrong and not formatted correctly
  • Fix plugin installation when root folder doesn't match the ZIP URL
  • Improvements to color field API for plugins
  • Updated Italian localization (thanks @marcosecchi)
Compare
Choose a tag to compare

Fix core update failure on OS X when path contains a space

Compare
Choose a tag to compare
  • Updated Russian locale #142 (thanks @passazhir)
  • Added Italian locale #138, #146 (thanks @marcosecchi)
  • Build with latest Node.js on Travis again 2eeb775
  • Fixed crash when moving a folder and cleaned up some related code
  • Prevented creating a project when no system is installed, #148 (thanks @Pangoraw)
  • Added support for setting a serverName in config.json, displayed on hub & connection screen
  • Removed support for deprecated port property in config.json
  • Handle errors when downloading the registry
Compare
Choose a tag to compare

We've split the app into its own repository, which means we can easily release small fixes and updates to the server & client without making you download the whole app again.

More powerful project export system

Systems can now expose multiple export options with settings. A system could upload your game directly to a portal or offer exporting for different platforms.

image

The way your project is run from within the Superpowers app can now also be customized on a per-system basis.

Revision system

A revision is a "checkpoint" for your asset. Asset editors which support it will allow you to save revisions, preview and restore them at any time.

image

New translations

Thanks to our contributors, Superpowers Core is now available in:

Miscellaneous changes

  • You can now install and update systems from the command line
  • We built a proper session mechanism to keep people logged in
  • When double-clicking on an asset tab, the corresponding entry in the asset tree will be scrolled into view and focused
  • When opening an asset in its own window, that window will now have its own tab bar and you can reveal the asset tree to the left (it is collapsed by default)
  • The ordering of items in the "Find Asset" dialog has been improved
  • You can now filter assets from the asset tree (thanks @chrisbubernak!)

More changes

There were many more bugfixes and small improvements. See the commit history for a full list of changes in this release.

Compare
Choose a tag to compare

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.
Compare
Choose a tag to compare

This release fixes a bug introduced in the midst of the many refactorings we did over the holidays. We missed one rename of api to typescriptAPI. This prevented the list of behaviors and properties (as seen in behavior components in scenes) from being properly updated.

All commits in this release: v0.18.0...v0.18.1 and superpowers/superpowers-game@v0.18.0...v0.18.1

Compare
Choose a tag to compare

Superpowers is now Free and Open Source!

We're incredibly happy to release the first public release of Superpowers!
THANKS to all the awesome supporters who helped us get this far.

Changes and improvements

There's no major new editor features in this release since we've been focusing on the Open Source transition, website, videos, etc. but there are lots of under-the-hood improvements.

  • The hierarchy of project folders on disk now matches the hierarchy in Superpowers
  • When joining your local server, Superpowers won't ask for a password anymore if there is none
  • The launcher now checks for new releases on GitHub rather than on SparklinLabs.com
  • Superpowers Game
    • The Behavior scene component editor has improved ergonomy
    • Fonts
      • The editor's sidebar has been improved a lot and you can now download uploaded fonts
      • Support for TextRenderer.setColor for bitmaps font
    • Improved ergonomy with sliders for setting opacity on sprites and models
    • The Gamepad API was improved (Sup.Input.wasGamepadAxisJustPressed with auto-repeat)
    • Sup.Actor.getChild now supports nested child lookup with slashes
    • Shader materials can now be manipulated from scripts

For plugin developers

  • SupCore.system.api has been repurposed into a more generic plugin API on SupCore.system and it's been used for ComponentConfig classes.
  • Superpowers's core is now more generic and has been cleaned of (hopefully) all the Superpowers Game-specific stuff.
Compare
Choose a tag to compare

Superpowers can now be translated!

We've added internationalization support to every part of Superpowers (except the launcher, coming soon!). This means people will now be able to translate it into their preferred language!

It might not feel like a big deal, but it helps a lot for those who don't speak English fluently.

Cannon.js has been updated to v0.6.2

Thanks to Harraps for contributing the updated definition files and of course, schteppe for his great work on the library itself!

Startup scene badge

The scene that will be loaded on game startup now has a badge in the assets tree to make it stand out.

Noteworthy fixes and improvements

  • We've switched back to XMLHttpRequest for network requests as the Fetch API isn't available everywhere yet
  • We've updated to Electron v0.35.4, fixing some bugs people have been experiencing with earlier versions
  • The buggy behavior class selector in the scene editor has been replaced with a simple dropdown box that works well on all platforms

Plugin development

There were quite a few changes for system and plugin development this time around!

SupCore.Data.Base.Resource constructor

All SupCore.Data.Base.Resource classes now take an extra id: string parameter at the beginning of their constructor.

Publishing methods for assets and resources

Assets and resources can now override the publish method for customizing how they are written to disk when making a build.

Internationalization and localization

Plugins and systems now support internationalization. Documentation will be added to http://docs.sparklinlabs.com/ very soon.

Centralized pluginGulpfile.js

You should now use an npm script named build for triggering whatever build system you use for your plugin.
There's a shared pluginGulpfile.js you can point to if you use Jade, Stylus and TypeScript like we do:

"scripts": {
  "build": "gulp --gulpfile=../../../../../scripts/pluginGulpfile.js --cwd=."
}