PlayCanvas Editor Feedback

Greetings,

During the implementation of Space Buggy I’ve found a couple of strange issues. I’m not sure if they are engine or editor problems so I’ve decided to write about them here:

  • game.js:33 If you add an enabled entity, collision system will not work. But if you disable it, add and then enable everything is fine

  • game.js:66 in order to remove all track parts I had to write a while loop - otherwise not all entities were removed for the first time

  • Some MP3 files are not playing in Safari. I think that’s because of a slightly different file format - I’ve used http://mp3cut.net first (some of these files are not playing) and then I switched to audacity desktop app and all files I’ve made with it are ok:

    [Error] ERROR: null
    error (playcanvas-0.165.3.min.js, line 17)
    (anonymous function) (playcanvas-0.165.3.min.js, line 839)
    [Warning] WARNING: Audio asset ‘game_0’ is not loaded (probably an unsupported format) and will not be played (playcanvas-0.165.3.min.js, line 17)
    [Warning] WARNING: Audio asset ‘engine_start’ is not loaded (probably an unsupported format) and will not be played (playcanvas-0.165.3.min.js, line 17)

  • Main menu scene was not showing up after you enter a level and return back. All you could see was just space skybox and UI controls but not entities. I’ve manage to fix it by changing the order of entities in Pack Explorer but it was weird. I think it might happen because of cyclic entity dependencies in initialize() methods

  • There is a known but pretty rare bug with level restart. If the buggy moves and spins too fast while entering the finish collision trigger you might start the next level with non-zero velocity (and rotation) so you’ll be flying somewhere out of the track instead of standing at the start position. Could be a bug in my own code

P.S. Other than that the development process was very smooth and fast. I’ve enjoyed it a lot and can’t remember any serious blockers. Great job, guys :wink:

Oh, sorry I didn’t notice that this thread is about the NEW editor :slight_smile:

Thank you @Dave for pointing that out. It will be a welcomed addition :smile:

  • When untoggling world/local button, if you toggle it again it stays as local (even after closing/opening editor) very hard to work with.
  • If you rename a script, you have to re-add it to the entity.

@knownasilya I don’t get the problem with the world/local button. Seems to work fine? And it we don’t save the state of it, so it should always be reset when you reload the editor.

Can you confirm? Do you see any errors in the console when you get this error?

@knownasilya possibly a problem because there was no visual feedback when you click the button? We’ve updated the style of the buttons to show on-off state when being hovered over.

why can’t I drag & drop scripts?

Good question.

Currently scripts as stored separately to assets (mainly because of the way we currently integrate with github and other external SCMs.

This will get unified in the future, but at the moment scripts are not treated the same way as other assets.

1 Like

Hi @Mate. As @dave says, this is being worked on. Scripts only appeared in the Assets panel this week. Expect drag’n’drop to work for scripts in the next week or so. In the meantime, just use the script picker in the script component.

In other news, you can now drag model assets from the Assets panel directly into the 3D view. A new Entity will be created as a child of the current entity selection and the camera will zoom to the newly created entity. This is much easier than creating a model entity in the hierarchy and then selecting a model via the model component’s asset picker. Try it for yourself. Enjoy!

1 Like

Some thoughts regarding physics UX:

-Is there a benefit from having a collider seperate from a rigid body component? Don’t I always need both to make sense? It would be much more user friendly to just combine them.
-The collider should scale with it’s parent
-The unit in which the collider is setup seems arbitrary? Does it relate to world units or is it a relative scale? Either way, now it’s a bit tricky to set up.

-Could cubemaps have thumbnails, too?
-would be cool to be able to drag and drop materials on objects in the viewport
-is it possible to use the same .json model several times but to give it different materials?

I have submitted the cube map thumbnail, material drag’n’drop and different materials on clones suggestions to our issue tracker. Thanks!! :smile:

1 Like

Does an image upload recompress the file? How can I control the quality settings?

PHYSICS

-If I set the collision type to mesh, wouldn’t it make sense to assume that I want the mesh itself to be the collider? Saves me searching for it

It’s a reasonable assumption, @Mate, but generally, I tend to set a low poly version rather than using the graphics mesh. Or it’s just to expense to initialize and process at runtime (depending on complexity of course).

1 Like

If you have a collision component without a rigidbody you will have a “trigger”. i.e. you can receive triggerenter and triggerleave events.

It doesn’t make sense to have a rigidbody without a collision though. We might need to communicate that better.

The collision units should just be the same as world units. Generally I work on the principle that 1 unit is 1m everywhere.

1 Like

Yay new JSON tab!

I’m assuming it will also be writeable? That would be so awesome, because it would allow to save (e.g.) particle presets and migrate to different scenes simply with copy&paste. Also it’s great for learning the underlying sourcecode.

Very cool new feature!

consolidated ramblings:

FEATURE REQUEST
-Spinner Functionality throughout UI
-Delete Unused Assets Function

GUI
-if I resize the hierarchy panel (smaller), the word ‘HIERARCHY’ overlaps with the scene root

PHYSISCS
-The rigidbody could automatically add a collider, but not the other way around

Hey Mate. Thanks for your active involvement with testing and feedback, really appreciated.

Bad news: JSON debugger, I forgot to disable it before deploying.
Regarding particles, it could be an asset in the future, that would be reusable, and you will be able to transfer assets between projects too.

Regarding Spinner - what exactly you mean? Do you have reference examples?

Unused assets are not included in published builds. System identifies what is referenced and loads only that stuff (launcher is different).
In the future there will be option to say what you want to preload straight away, or maybe later on, so will be included in builds.

Resizing Hierarchy - thanks. Same thing happens with Assets panel :frowning:

Adding collision component with rigidbody component, seems like not a bad idea at all.

Thanks for your feedback, we really appreciate that.

1 Like

Quick point on rigidbody adding a collision component. Currently, we don’t support composite collision shapes, but we will at some point. This will work by collecting the (optional) collision component on the entity with the rigidbody component and those on any descendant entities and combining them into a single collision primitive. So imagine a chair entity. I would have a root entity with a model and a rigidy body component, and six child entities with box shape collision components (4 legs, plus seat and back). The root entity doesn’t need to have a collision component at all. So yeah, I can see it might be a convenience to add a collision component automatically, I do expect there to be cases where you don’t want one.

@max I think Mate is not so concerned about unused assets being loaded at runtime - it’s probably more about management of assets in your project. Say you want to optimise your 50 materials down to 10 (because some are duplicates). It would be nice to just reassign materials to mesh instances and periodically delete unreferenced materials in the Assets panel. Maya lets you do this - it’s quite a handy feature.

Regarding unused assets, we could have some indicator in UI that shows if it is not used, or opposite - if it is used.