v0.16.0
Pre-releaseNow powered by Electron!
Until now, NW.js had the heavy responsibility of powering the Superpowers app and it did a fine job. But we've decided to embrace the newer, more regularly-updated and better-supported Electron runtime going forward.
Electron runs the latest stable versions of Chrome and Node.js under the hood and has a lot of momentum behind it.
While this is a very positive change, it might be a little disruptive and we're sorry about that. For instance, your server list will be reset because it was stored inside's NW.js local storage and Electron has its own. Also, there might be new bugs, though we've done quite a lot of testing. Let us know if you find any!
Oh and if you're running your own stand-alone Superpowers server, we recommend upgrading to Node.js 4.x as that's the version we'll be working with from now on.
New login page
The new server login page asks for the server's password and your chosen username at the same time. Much nicer than the terrible one-at-a-time prompts of yore! Still looks a bit bare, but we'll get there.
Redesigned asset search popup
The search popup is now bigger, cleaner, features asset type icons and its keyboard ergonomy was improved! Use Ctrl+P
to trigger it, or Cmd+P
if you're on a Mac.
Project hub improvements
The new "Edit details" button opens a popup that lets you edit the project's name, description and icon all at once.
The new "Open project" button lets you open projects on smartphones and tablets! Ergonomy of the various editors isn't great for touch devices at the moment, but hey, at least it works!
When hovering over a project, its type is now displayed next to its description.
First release of the cubic model editor!
The cubic model editor is finally here for all to play with!
It's pretty rough around the edges still but you can build your own cubic models in Superpowers now, just like you could in CraftStudio. How cool is that? :D
Support for animations, custom unwraps and more shapes (!) will be coming in future updates.
Shiny new icons and buttons
We did a lot of visual clean up.
- The icons to manage assets above the project tree were redesigned.
- The tile map and tile set icons have been redesigned.
- The scene editor's ugly text buttons were finally replaced with pretty icons.
- The vectorized Superpowers icon is now used everywhere!
"Stop project" button for closing frozen games
From time to time, you might get your game stuck in an infinite loop. It's alright, it happens to the best of us. Thanks to our upgrade to Electron, you can now get out of this sticky situation with the click of a button!
New documentation tool
The controls and hotkeys for the scene and tile map editors have finally been documented inside Superpowers!
This new built-in documentation is pretty barebones at the moment, we'll be giving it some love over the next few releases.
The documentation tool inherited from the TypeScript API browser's old icon, and the API browser got paid back with a more fitting one.
Redesigned settings tool
With the toolshelf getting more crowded, the Settings tool got jealous so we gave it a paint job!
We don't hide each editor's settings in its own page anymore, and we've separated global game and project settings from the rest.
Noteworthy fixes and improvements
- The launcher now properly handles offline servers and will check if the server's version is compatible with the launcher.
- Exported games now feature an
index.html
at the root, which makes uploading them to various hosts simpler. - Asset types, tools in the toolshelf and component types are now sorted by name in the user interface
Sup.Actor.getBehaviors
has been added, for getting multiple behaviors of the same type.- Component destruction has been fixed to work properly in all cases.
- Tile map renderer components are no properly destroyed too.
Sup.SpriteRenderer.setAnimationTime
now correctly handles animation speed.- The shader editor's stylesheet has been reworked quite a bit.
- Updated to p2.js v0.7.1, which no longer bundles unnecessary dependencies, saving ~20 MB of disk space.
- Scene asset dependencies are now correctly initialized when loading a project.
Plugin development
SupClient registration APIs have changed
SupClient.registerComponentEditorClass(name: string, plugin: ComponentEditorClass)
and SupClient.registerSettingsEditorClass(name: string, plugin: SettingsEditorClass)
have been superseded by SupClient.registerPlugin(context: string, name: string, content: any)
.
context
should be "componentEditors"
or "settingsEditors"
for instance.
Settings editor registration
When registering a settings editor plugin, you should now pass a namespace. For instance,
SupClient.registerPlugin("settingsEditors", "CubicModel", CubicModelSettingsEditor);
becomes:
SupClient.registerPlugin("settingsEditors", "CubicModel", { namespace: "Editors", editor: CubicModelSettingsEditor });
SupClient.query
You can now use SupClient.query
to access the search parameter passed to your editor, like project
and asset
.
tslint
We recommend you use tslint
for your TypeScript plugins. There's a tslint.json
at the base of the core Superpowers repository.