PlayCanvas in 2015

A little early, but Happy New Year to everyone on the PlayCanvas forums!

We’ve got loads planned for the next year. We’re working on more graphical improvements like the Physically Based Rendering. Massive amounts of features lined up for the Designer. But I’d like to throw it open to the crowd.

What is the most important thing that you think is missing from PlayCanvas?

What frustrates you most?

What can we do to make it easier for you to build games?

Thanks to everyone who made 2014 our best year ever, and look forward to seeing you all in 2015!

:fireworks:

Thank you for all your hard work, guys! PlayCanvas is amazing!

Here is some things I think are missing:

  • Built-in UI on Designer.
  • Sprite animation. For 2D characters, for example. (I know playcanvas focuses on 3D, but 2D sprite animations are aways useful).
  • Hook to auto-sync github/bitbucket repos with playcanvas.
  • Some more built-in scripts, like character-controller and drag-and-drop objects. And maybe some AI built-in scripts too, like entity.moveToPoint().
  • Autocompletation feature on Code Editor. Don’t need to be a intellisense from IDE. A simple list of all functions, with fuzzy search would make it faster to code.
  • A text-chat system for the Designer (for when we have a team working there)
  • A scene system, cause using packs as scenes is currently not clear.

Happy New Year!

4 Likes

Happy New Year!

A few things from myself, some already mentioned by felladrin:

  • Would be nice to be able to see who (username) has starred/watched/forked a project
  • Auto-syncing with github (I don’t use it currently as there are too many steps from writing the code to getting it in the project)
  • More/different kinds of Starter Kits would be useful for a lot of people (for example the FPS one which no longer exists)
  • Being able to sort assets (and possibly scripts too) in projects into folders/categories both on the assets page of the project and in the assets pane in the designer with the ability to hide categories
  • Torus primitive
  • Auto-completion in scripts
3 Likes

-Re-Import button for assets
-Autocompletion
-Ability to separate RBG channels to store different maps in a single texture(for example 3 different lightmaps)
-Scripting tutorials for dummies

Thanks for your work!

2 Likes

You can create a folder by creating a new script named folder/scriptName, but thats not really a nice workflow :wink:

Could you give us some examples of the the sort of scripting tutorials you’d like to see?

First of all: You’ve already done some amazing work!

  • My most missed function is to apply a change to multiple entitys at
    once. Especially to move a set of entitys, that don’t share the same
    parent. I’ve posted about that somewhere else :wink:

  • 2D UI would be nice too, but working with the font_renderer.js is
    okay too.

  • Something like cloning an entity in a special way so that all changes made to the first entity are applied to every cloned entity would be great too, but that would also fit in to changing multiple entitys at once.

Thanks for all the great feedback. Let me update you on a few plans:

  • Autocomplete: it’s pretty straightforward to get basic autocomplete working (javascript keywords, variables you’ve already declared). Proper intellisense is obviously much harder. We should be able to get the basic version in pretty soon.
  • Text chat, we’ve discussed and think it would be great. It’s in a feature roadmap but no concrete plans as yet.
  • List star/watch/fork users is on the roadmap
  • More starter kits
    • Are the existing starter kits (platform and model viewer) useful?
    • Which additional ones would be useful?
  • Torus - we need to add tesselation properties first
  • Assets - We have a lot of new work lined up on the asset system, including folders/sorting etc. It’s still a little way off but it is coming.
  • Re-import assets - What do you need this for?
  • Per channel maps - this is on the road map.
  • Scripting tutorials - we’d love to hear what tutorials you’d like to see?
1 Like

Personally the only one I ever used was the FPS one and I used it a lot, it really helped me when I was learning to use PlayCanvas. I probably wouldn’t use it any more, as I just create blank projects, but I think they’re really useful for people who are still getting to grips with the engine.

I think base implementations of different game/camera/control types would be useful for people new to PlayCanvas. The two there are great, but also maybe:

  • One which implements touch/click functionality with a puzzle type game layout
  • Some sort of vehicle model/camera/controls which would be a good start for someone making a racing game or any game with a vehicle
  • Maybe a Flappy Bird starter project as it seems to be the new gaming Hello World
  • Perhaps simple games in general, or a more obvious place to fork them from (like Pong, Breakout, Pac man, Snake and such)
  • One that uses the fonts and sprites scripts from the github pages

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: