Hey Dave and others,
For example this is my question waiting for answer. One answer was already provided but unfortunately, it didn’t solve the problem:
Providing better feedback, engine from inside look is very well commented. I felt very happy with these comments from the start. But soon enough I was missing the larger concept. I didn’t find any component preview. For example diagram, series of diagrams in presentation, or video would be really helpful.
“To be really specific I didn’t understand mesh and meshInstance concept at all. I wasnt able to recognize which from them is responsible for what. Names of these components are confusing. I couldnt find shader storage. Then I recognized it is part of material, but it took a while. Im still a bit lost with renderer part and its connection to scene. I didnt notice scene is not a graphNode, which I consider as super important. This messed with all my knowledge about scene from before. I didnt know each model has only one arraybuffer in very deep part. It was a long journey to understand graphic device, since graphic device is part of every second/third call, Im still not sure if placanvas can handle 2 graphic devices at once and share resources between or not.”
I could have ask every question on the forum, Will is, indeed, very active. But problem is one answer bring another question. One needs to go step by step. It is better to be able to find answers on your own, since questioning takes a lot of time. But finding answers must be reasonably fast then.
Major problems of your engine
Few components are tight coupled. So far as I know it is
Forwardrenderer (render) and
Mesh (system of meshes). These components are not extendable for me, extend one => extend more of them => extend 1/2 of engine. I’m lack of mediator (signals) pattern. (It is similar to observer.)
There is no visible graph, tutorial or walkthru thru components. If programmer jumps into documentation, picking components by name and with 6th sense is very bad idea right now. You get lost, for sure and you won’t find the way out.
The last thing I notice is a lot of things are just badly wrapped webgl, arraybuffer, typed arrays or others API. Imagine you are a guy who already knows all of them. Since these API are already compacted to minimum, it is not possible to compact them more. Then that guy must remember twice as much constants as before + remember connections between them. It is like implement multiplexer/demultiplexer in your head. Something must be done with this, I don’t know correct solution, personally I would remove it.
The biggest advantage of playcanvas is, use something it already knows for example display model, is super easy.
The biggest disadvantage of playcanvas is, teach it something it doesn’t know is nearly impossible or at least very long run.
This was a feedback about things that doesnt work for me. Ofc there are thousands of things that are awesome like community, way you speak to us, events, engine is small and compact, overall design and a lot more… So yes I still love you, you do great job and I hope my feedback will be helpful.