PlayCanvas in 2015

Re-Import Assets: As 3D designer i usually make lots of changes in textures and models and i like the engines to have a reimport button so i don’t need to grab the file and upload it manually. Not so important, just workflow ideas :wink:
Scripting tutorials : I think that very basic tutorials would be helpful to grow the community. I know that there are lots of information about javascript and documentation, but is not so easy for beginners to start building things. I don’t know, maybe a step by step camera and controls tutorials (besides the existing tutorials, which are great, i mean, typical FPS camera,top down and such), basic raycasting for click events, UI counters for example, launching animations with inputs… that kind of stuff to build simple things. Just ideas :blush:

Thanks for your response and for your work!
Cheers!

Thanks @Lizzip, some good suggestions.

We might re-introduce the FPS one, but TBH I’m not sure how useful it is to people. I think that the simpler game types you suggest would be more useful. The FPS starter kit is very attractive for beginners but I think it’s hard to use and get much out of.

One thing I really miss in Playcanvas is something like Prefabs in other engines, where you can save an entity with all its components for later use, and instantiate it all over your projects. If you changed anything in that prefab, that change should be applied in every instance, so you don’t have to change them manually. And those prefabs should be available in your asset library everywhere. This also should help instantiating entities from code without having to create them first in the editor and cloning them.

Another thing (I have read it also) is a better organization in the asset library, with the possibility of creating folders.

Anyway good job!!

When you get around to adding tessellation properties, could you keep the API friendly and accessible for use in procedurally made meshes?

1 Like

I suggest adding a D3.js-ish (Graphical-DATA-Interface) component to the designer as well as a GUI entity. This way a developer can add a Graphical-DATA-Interface component to desired entities to manipulate and/or visualize entity data via the GUI entity. The GUI entity could be constructed with a screen system where each screen is a grid with grid blocks that could contain ui controllers (buttons, sliders, etc. …), dynamic data-linked visualizations, or simply static PNG images.

The Graphical-DATA-Interface component could have some basic property linking abilities within the designer as well as provide a more advanced API via scripts. For example a developer could declare an attribute via the pc.script.attribute(‘someAttribute’, ‘number’, 100); method which could then be linked to a graphical representation within a grid block of the GUI entity and updated onAttributeChanged().

The GUI entity could have a setScreen() method with the last parameter being an “ANIMATION_TYPE” string or JSON object for more precise control.

Will Eastcott’s UI Entity from his “Soldier of Yellowism” game is a good start toward this end. I would then define a grid object, then a grid block object for layout purposes then proceed to create a data_link object which would link entity properties (attributes) to visualizations and/or controllers.

1 Like

Hey eeisaman,

I was thinking about few concept suggestions before. After reading this issue I saw Im not alone:
https://github.com/playcanvas/engine/issues/128 I made a small project. I did it for fun and just because I like to think. It is about how playcanvas interface might look like. But my suggestions are not backward compatible.

I 100% agree with you

I did stuff with procedural terrain generation and I wasnt able to reuse many playcanvas components. I used a lot of native webgl api instead.

So I made my small project live: https://github.com/EntityB/pc-interface

I see you have something you would want to contribute. Feel free to do so.

Hello EntityBlack,

I like your proactive contribution-minded approach. I will have to read through your github project.

Best,
SirFizX

In addition to the above requests

Here are my requests -

  • 2D Support - Like others have said it would be beneficial to make 2D Support available in PlayCanvas.
    I personally think that mixing 2D and 3D should be considered.

  • Large world support - I know that this sounds weird but I have some crazy ideas that I want to try out in HTML5 without writing an engine from scratch. These ideas mostly revolve around a large worlds.
    Anyway - Proof that it can be done. http://www.zephyrosanemos.com/windstorm/20130301/live-demo.html

  • More Starter Kits - A Third person and flying starter kit would be an awesome addition to PlayCanvas.

  • Multiplayer - Multi player would be greatly appreciated. I am putting this down as a just to be sure sort of thing.

  • VR Support - VR is getting very big It might be worth looking into seeing if PlayCanvas can support something like VR.

Thank you for your time,

HeadClot

One of the benefits of WebGL compared to other platforms is having mixed use of HTML along with the canvas. Doesn’t that lend itself to User Interfaces already?

I just posted a solution that demonstrates how to call back into a PlayCanvas class from the HTML document:

For me, maybe setting up some hooks to simplify the process of communicating between the two is all that is needed. In all honesty I really don’t know, I’m just working this out too, but obviously the UI is a major piece.

Also, what about using the 2D context over 3D? That would give the UI a more vibrant look and feel over flat HTML. Is it doable with WebGL?

Then again, I have a 3D UI that I wrote with GL ES roughly six years ago that may be of some use (just rambling now).

That’s a nice demo HeadClot. Thanks for the link.

1 Like

Thanks for the feedback, @headclot88.

Some comments:

We’d love to have more 2D support, but we’re currently concentrating on making the best 3D support we can so no promises on timescales for that. I’m guess you’d like to see sprite animation in particular? What else would you like to see in a 2D system?

Large world support, the Editor tool is geared around creating scenes with hand-crafted artwork. But there is nothing to stop you procedurally generating terrain at run-time. Would love to see any work you do in this area.

What do you mean by “flying” starter kit? Like flight simulator style?

Multi-player servers are a massive job, so generally we work with partners that can already do this. Like https://www.exitgames.com/en/Realtime or Stormancer.

VR Support, have you seen this library, drop-in support for Oculus in builds of Firefox and Chrome which support them. :smiley:

I would like to see sprite animation in the vein of Pyxel Edit or Photoshop. As for everything else I Would like to see. Dedicated tools such as a Sprite atlas and perhaps Box2D support. EDIT: Totally forgot about this - but support for spine and Spriter would be awesome!

Can you at least offer some basic networking support via Node.js or something else? I would like to host my own servers if possible. There are some reasons for this which I will go into.

If my game turns out to be unsuccessful I can just release the server binaries and game art, and hopefully source code under an open source license.

I am not 100% sure if I can do this with a games as a service but I just want to be certain that I can.

I am personally going to be making some pretty big scenes by hand which players will be in and shooting each other. That said there is no terrain as it is going to be set in space. I am more worried about floating point problems than anything with this game of mine.

OK, guess I should have clarified here sorry about the confusion. This is more of a personal want than anything. A six degrees of freedom flying template as well as something similar to a Combat Flight Sim.

Also a turn based strategy sample game would be nice as well.

Do not believe that I have seen that. Thanks for the link.

Welcome. :smile:

It would also be cool if we could highlight one of our own projects and that would appear at the top of our project list in some highlighted way, kinda like pinned tweets on Twitter.

I would personally use this to highlight which project I am currently working just because I am lazy and it being at the top would make it easier to find, but also if you use your project list as a display of your work then it would be good to put the best at the top to encourage people to look at that one.

Edit: Also the cone is the only primitive not to have a matching collision type. That would be useful

A new user just mentioned to me that it would be nice if they could follow a person, not just an individual project (I agree)

Yep, definitely. That’s in the works, Lizzip. Watch this space. :smile:

1 Like

Raycasting with a sphere (spherecasting). Seems like Bullet physics engine supports it so I assume ammo.js does aswell. Would be of tremendous help to be able to use it in playcanvas also.

Having a folder system in the asset pane of the designer would be greatly useful so I don’t have to manage assets hierarchy offline and look for specific things by name with the search field in the designer.

CORS or JSONP with “Refresh attributes (local)” from the designer. Currently same origin policy blocks all attempts of loading the scripts from localhost and I have to use some hacks (chrome flags / CORS addon) to load scripts and refresh attributes.

Hi @redka. Isn’t spherecasting just intersection testing with a capsule? :smile:

Most of the foundational work to support folders in the asset panel has already been done actually. As you may or may not know, we’re launching a next-gen PlayCanvas Editor early next week. Once we’ve released that, adding support for folders is high on the priority list.

@max What’s the deal with local coding and script attributes in the new editor?

Very cool to hear about the new editor.

Where can I learn about it? My approach was adding the collision component but raycasting is much simpler. What you propose is creating a shape and checking what it intersects with? (I must have missed how to do that in the tutorials) How is it performance-wise?

A keyboard controls component is something I would make use of. Add it to an entity then specify 12 or fewer buttons and which axis they translate or rotate on and the speed. If this worked properly with dynamic rigidbodies I would use it all the time, as I still find those a hassle to control properly sometimes

In case people didn’t notice it already, we deployed autocompletion today! And as an added bonus, API reference docs show up against function/property names too. So, so nice. Enjoy!