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

Releases: superpowers/superpowers-core

v0.8.0

04 Jan 01:29
Compare
Choose a tag to compare
v0.8.0 Pre-release
Pre-release

User interface improvements

Most panes are now resizable to your heart's content by dragging their edge.

The asset tree widget gained a proper icon for the "Open in new window" button, and very long names are now properly ellipsed.

Dialogs now support client-side validation so you'll be greeted with a nice informative message before the dialog closes rather than afterwards.

Resigned game splash screen

The default game splash screen has been redesigned to feature our mascott, Leonard. The screen resizes automatically based on the viewport width so it should look great both on desktops as well as mobile phones, even in portrait mode.

If your game can't be loaded for any reason, an informative message will now be displayed, be it because the build wasn't found, there was a script compilation error or even if WebGL couldn't be initialized.

Script editor improvements

When hovering code, a tooltip will now appear providing useful type information about whatever your cursor is pointing at.

We merged the workers responsible for auto-completion and error reporting (for lower memory usage) and made them persistent for faster error reporting and auto-completion.

The auto-completion popup doesn't blink anymore and it provides type and signature information about the choices it offers.

Debugging, restored!

We're using source maps to let you debug using the original TypeScript code of your scripts even though they are compiled to JavaScript (ES5) when running the browser. Sadly, this was broken in Chrome 43 because source maps can no longer be loaded from blob URLs. so we switched to data URLs.

It's actually a little nicer since the scripts will now appear in a folder bearing the name of your game rather than in a (no domain) node.

Builds are served on a separate port

Serving builds on the same port as the client led to funny things like Sup.Storage.clear() clearing your server authentication settings. So the builds are now served on port 4238 by default. You can configure this in the launcher settings.

Color picker

When tinting sprites, models or text renderers, you'll now be presented with a native color picker rather than a simple text field.

Camera ordering and layers

When working with multiple cameras, you can now explicitely define their rendering order (which one appears on top) with the depth setting and correspondig API methods. Previously, the cameras were ordered by their position in the actor tree, but this isn't very convenient.

A rendering layer system has been added. Each actor now belongs to a layer and you will soon be able to customize which layers a camera should render (Elisée wasn't able to finish that part in time). This will be particularly useful for rendering your game's user interface with a separate camera without having to move the related actors far away from the in-game actors.

Mouse picking in the scene editor

You can now (finally!) select actors by clicking on them in the scene editor. Transform handles to move, rotate and scale things around are coming very soon!

glTF import fixed and improved

It turns out the glTF animated 3D model importer was broken in the latest release.
Apparently no one uses it at the moment since no one complained ;).

The long-standing 90° rotation work-around for animations has been removed and replaced with support for any Y-axis orientation. Any existing glTF model will need to be reimported (or it'll have a -90° rotation around the X axis). Sorry about that, we try to minimize breakage when possible but hey, this is early access!

Prefabs didn't make the cut, sorry!

A prefab (scene-in-scene) system has been implemented but we've decided to disable it at the last minute because of concerns about the approach. They are implemented as a special component rather than an actor setting, which after some thought might come back and bite us later.

This issue should be dealt with in time for the next release.

Under the hood

As with each release, we're continuing to brush up the codebase and try to avoid accumulating technical debt. It may not look like much but all those clean ups add up and help us keep Superpowers stable and fun to hack on. With our open source release drawing closer, this is even more important :)

Most editors have been split in multiple files for easier navigation.

While all of the code in the three main repositories of Superpowers had been ported to TypeScript, we still had a few CoffeeScript dependencies. perfect-resize, tab-strip, dnd-tree-view and operational-transform have now been ported too, so we were able to remove coffeeify entirely.

All editors using the game engine now update and play animations in a framerate-independent fashion.

v0.7.0: scripts: Fix build.js crashing when npm or gulp returns a non-zero st…

04 Jan 01:28
Compare
Choose a tag to compare

New light plugin

The light plugin adds ambient, directional, spot, point lights and shadow casting. Sprite and model renderers now let you choose between basic and phong materials.

A plane flying  over water, casting a shadow
Download the aircraft demo project

This is all very new and experimental so there are some limitations. Please report any issues you encounter. Support for writing custom shaders or doing postprocessing effects will come later.

Tile map editor improvements

The tile map editor gained a flood fill tool as well as various fixes and network performance improvements.

New project and scene settings

You can now define a startup scene for your game in the settings.

And you can choose the default camera mode (3D or 2D) for the scene editor.

Error reporting in the script editor

The script editor gained a much-improved, resizable error pane that doesn't jump up and down like the old one used to do.

The new error reporting pane in action

It presents errors in a nice table and you can click on individual errors to jump to the offending line.

Model import improvements

The model importers now report warnings and errors in a resizable pane.

Importing a plane with the OBJ importer

Non-triangle or non-quad faces are now properly ignored in the OBJ importer, rather than stopping the export altogether.

Improvements to the sprite editor

The spritesheet preview area can now be scrolled, it features a grid and provides better feedback for selecting an animation's start and end frames. The animation preview area is now resizable, too.

Measuring text and camera settings

You can use now Sup.Font.getTextWidth(text: string) to measure some rendered text.

The camera viewport can now be configured in the scene editor.

Split screen with camera viewports

New API functions Sup.Camera.set{Near,Far}ClippingPlane allow controlling the camera's clipping planes at runtime.

v0.6.1

04 Jan 01:27
Compare
Choose a tag to compare
v0.6.1 Pre-release
Pre-release

Highlights for this update

  • Fix tile map rendering issues (all black)
  • Add vertical alignment option for text rendering

v0.6.0

04 Jan 01:27
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release

Highlights for this update

  • The Arcade Physics 2D plugin now supports collisions with tile map
  • The Arcade Physics 2D plugin API and default settings has been tweaked:
    • Gravity is now zero by default
    • The default minimum / maximum velocities are now infinite by default
    • setVelocityMultiplier doesn't expect percentages anymore
    • A new type parameter has been added to the body constructor (to support tile maps)
  • Added multi-line support in TextRenderer
  • Unified all plugin settings in a single Settings tool
  • Added button to vacuum trashed asset folders from server's disk (Settings -> Project)
  • Fixed Ctrl+Tab to switch to next tab
  • Fixed layout issues and engine startup bug with Safari 8
  • Actors can be shown/hidden in the scene editor (doesn't affect the game)
  • Copying/pasting text with the usual hotkeys now works on Mac in the script editor
  • Superpowers is officially decaffeinated! All of our CoffeeScript codebase has been ported to TypeScript.
  • Miscellaneous bugfixes

v0.5.2

04 Jan 01:26
Compare
Choose a tag to compare
v0.5.2 Pre-release
Pre-release

Fixes a freeze bug introduced in v0.5.0 that happened when trying to close a project.

v0.5.1

04 Jan 01:26
Compare
Choose a tag to compare
v0.5.1 Pre-release
Pre-release

A quick update to fix a few issues with the 0.5.0 release as well as a few improvements.

  • Fixed game export
  • Allow customizing inherited behavior properties in behavior editor
  • Merged the asset creation dialog into a single one and added option to open asset right after creating it
  • The active line in the script editor is now highlighted
  • Fixed new windows not being focused right away
  • Allow opening devtools in the Superpowers app with F12
  • Added links to forums / subreddits
  • Fixed various bugs with the font plugin
  • Fixed various bugs with tile maps in scenes
  • Delayed triggering of auto-completion and error reporting to a few hundred milliseconds after the last keystroke in the script editor
  • Fixed some weird focus / selection behaviors in input fields in scenes
  • Ported launcher to TypeScript

v0.5.0

04 Jan 01:25
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release

Highlights for this update:

  • Context-sensitive auto-completion in the script editor!
  • Real-time error reporting in the script editor
  • You can now use TypeScript 1.5 features including block-scoped let, const and for(let ITERATOR of ARRAY) ...
  • New text rendering plugin, supports both vector fonts and bitmap fonts
  • You can now remove servers from the launcher's server list
  • Better error reporting in the launcher
  • 14 out of 16 modules have been ported from CoffeeScript to TypeScript. We're almost done!
  • New EventEmitter API plugin, lets you emit and listen for events
  • Many bugfixes (and probably a few new ones, let's be honest, we ported a lot of code :D)

Plugin development

Component editors

The arguments passed to a component editor class constructor have changed (the first one was removed, it was just a copy of SupClient which is a global):

class MyComponentEditor {
  constructor(tbody: HTMLDivElement, config: any, projectClient: SupClient.ProjectClient, editConfig: any) {
    // ...
  }
}

Component updaters

Component updater classes should have a destroy() method (no arguments). It will be called when a component is destroyed.

If your component editor has subscribed to asset(s) or resource(s), make sure to unsubscribe within your destroy method.

v0.4.1

04 Jan 01:24
Compare
Choose a tag to compare
v0.4.1 Pre-release
Pre-release

A quick update to fix a few issues with the 0.4.0 release.

  • Fixed game export
  • Removed unnecessary *.ts files
  • Fixed issues with Sup.Input.getScreenSize() on first frame because of screen ratio
  • TypeScript editor: Fixed context menu position in NW.js
  • Fixed size of game/sprite/tile map settings table

v0.4.0

04 Jan 01:24
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

Highlights for this update:

  • New "Export game" button lets you export your game in a couple of clicks
    See http://docs.sparklinlabs.com/en/publishing-your-game for more info
  • New global game settings let you customize FPS and screen ratio
  • You can now customize the default settings for sprites and tile maps in your project
  • The default port for Superpowers server is now 4237, since Linux and OS X have permission issues with port 80
  • We added a bunch of shortcuts for working with the asset tree:
    • Create asset (Ctrl+N), folder (Ctrl+Shift+N)
    • Rename (F2), trash (Delete), duplicate (Ctrl+D)
  • Initial work on auto-completion (it uses a simple list of words, not very smart for now)
  • Added back Ctrl+Y to redo changes works in the script editor
  • New socket.io plugin lets you make multiplayer games (You'll need to write the server code separately though)
  • A lot more of Superpowers has been ported to TypeScript, including a couple plugins
  • Fix various bugs with asset dependencies, multitouch API, script compilation, etc.

v0.3.1

04 Jan 01:23
Compare
Choose a tag to compare
v0.3.1 Pre-release
Pre-release

A quick update to fix a few issues with the 0.3.0 release.

  • server: Fix asset duplication
  • system: Fix replaying a sound a second time
  • typescript plugin: Fix Input.getMouseDelta