Visual scripting editor: PlayCanvas Sequencer


#1

What is the PlayCanvas Sequencer?

It is a visual scripting editor in development, a blueprints solution as is called in other major game engines. It allows a user to create PlayCanvas compatible scripts using a node editor. It is currently developed to run as a Google Chrome extension, though if resources allow it, it can be made to run as a 3rd party website/service or even as a desktop Electron application.

It is designed to expose eventually all of the methods and properties available in the PlayCanvas engine. It can be used to script complete games and apps developed in the PlayCanvas editor, as well as work alongside the normal code scripting. Initially the PlayCanvas Sequencer was built as part of a bigger project to handle game AI and rules setting, where visual drawing helps game designers easily draft and test logic in game.

This is a big project and hopefully will have positive impact in the PlayCanvas community, especially to people inexperienced with usual coding. Many artists and content creators are finding the PlayCanvas editor an excellent tool to showcase their creations, but scripting is a big obstacle for the non programmers.

PlayCanvas Sequencer aims to bridge that gab.

What is the progress so far?

The project is in active development. It is re-written from scratch to be have a community release at some point. Things in place so far:

  • Implements PhotonKit as a minimal desktop like UI library.
  • Implements d3.js as the node renderer.
  • Tabbed interface with a main editor window and a tools sidebar.
  • Realtime communication with the PlayCanvas editor.
  • Build as an Ionic/Angular application.
  • Build is packed as a chrome extension.

The project is self-funded though it is huge in scope. You can help in the development by supporting it on Patreon, where you can pledge and take part in the design and development, as well as get access to the latest build.


#2

Hello, excellent tool. If I make a contribution, can I use the current version? Is this operational? what features do you have?


#3

Thanks! No, it isn’t yet operational. That’s the next milestone:

  1. Get the logic and a number of PlayCanvas classes added (pc.Entity, pc.Asset etc)

  2. Get the Javascript compiler in shape.

  3. Get the compile & save in editor method in place.

The communication between the Sequencer and the Editor is almost in place, being able to create/delete scripts from the Sequencer tab. And also I am finishing hooks that get a list of the project entities and assets from the Editor to reference in variables and attributes.

The current build has the following features right now, mainly used to exhibit and get feedback on the UI structure:

Can’t promise for dates right now, but all contributions are most than welcome and bring an operational build closer.


#4

I’ve been studying several visual coding systems like the Unreal Blueprints and some of the popular Unity extensions. Mainly to understand how visual scripting can be an extension of coding and how these two can play together. It seems that from a game design viewpoint visual scripting makes a lot of sense for systems like AI and game rules. On the contrary for app engineering and framework architecture coding directly wins.

Here is a sneak peek of the current progress: create a new node modal in action.


#5

Wow, you have been busy! This looks really good :smiley:


#6

Looks very nice, it’s cool that you’re attempting something like this and I can’t wait to see the results!


#7

:::::::Really usefull… :). Very Thanks!


#8

Progress report on the SequencerJS: DB parsing tools, modular UI, PlayCanvas Engine API bindings, Javascript bindings.


#9

How is this coming along?

Btw is it going to be open sourced? I’d love to contribute into this, can definitely make PlayCanvas more accessible to newbie developers.


#10

Thanks for asking!

Progress is quite slow, due to limited time available. Tried to fund this project in some ways (patreon) so I can have more hours to allocate but progress is still slow.

I was aiming in having the Javascript parser (blueprints -> working JS code) in an alpha/basic level complete and release a build at some point. Might as well open source it at that point if I am proud of the codebase :slight_smile:

But still no release dates! Will keep this post updated when there is progress.

Many regards,


#11

This is amazing. When can we expect to try it ?


#12

Soon! Being silent for a while but there has been a lot of progress.


#13

Hope all is moving on. Is the real time connection to PlayCanvas open for viewing? I’d be interested to see what it looks like.


#14

Thanks for asking. It’s time to revive this thread.

I stopped posting updates to wait for a more production-ready version to be ready to showcase, instead of tech demos sneak peeks. As they don’t do justice to the amount of work behind Sequencer.

Some of the main features currently in development:

  • Full JS AST (estree/babel) compliant structure. User works directly with AST nodes that get compiled to JS code. This means that your node sequences are already Javascript.
  • Javascript code importer, you will be able to import JS code and have it converted to a node sequence in the editor.
  • The PlayCanvas engine API is exposed to work with …: you can spawn Javascript nodes based on methods/properties from PlayCanvas classes. Also common methods from the browser window/document classes will be available.
  • Firefox/Chrome plugin to connect to the PlayCanvas editor and create/update automatically JS scripts.
  • Common edit functionality as expected: select, connect, copy, paste, undo, redo, zoom, pan etc.

Plans are to have Sequencer initially work as a code editor/generator and later add IDE features (like live debugging / code execution for testing etc.).

@happyt about the real time connection to PlayCanvas that you are asking specifically: the PlayCanvas editor already exposes an API so we can work with it. Initially Sequencer will use it to automatically create/update the JS script assets.

After that we might work on a closer integration, if there is interest e.g. make available inside Sequencer the entities hierarchy and assets catalogue to reference in your code.

Hopefully in the coming months there will be a beta release which will make everything clearer.

Thank you for your interest!