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!
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
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
2D UI would be nice too, but working with the font_renderer.js is
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:
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?
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
Thanks for your response and for your work!
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.
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.
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.
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).
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.