Golden Paths for Babylon.js!

How about a full fledge ECS?

Walking simulator has been done umpteen times, Postprocess lib would be cool but it would be nicer to see it presented as a galley that you could pick different process and create a rendering chain and preview the results prior to compiling the script to use in your scene.

Not sure what the viewer configurator would be.

Yeah my vote is the Postprocess, or a robust ECS that we can start making modular scripts and having them on some sort of catalog to preview and download.

2 Likes

This looks promising:

They even have a babylonjs example.

Edit: Looks like the last commit was over a year ago.

Edit 2: GitHub - simonihmig/ecsy-babylon: Experimental implementation of ECSY for babylon.js.

Last commit for that was 10 hours ago.

2 Likes

I’m not 100% sure what an ECS is (entity component system?), but it sounds pretty neat!

To clarify, I’m not necessarily expecting the experiences created for golden paths to be something we’ll continue to make and use indefinitely; I don’t anticipate making a lot of tools, for example. Rather, the golden paths are supposed to exemplify making a kind of experience that people will want to make a lot more of. That’s why walking simulators and viewer/configurators (basically just viewing/manipulating a 3D object on a Web page) are high on the list, even though people have made many of both before. Lots of people (we suspect) want to make such things, and many who may want to do so may not know how to go about it or go through it sustainably, so having a well-traveled, well-documented golden path will hopefully help people make other similar experiences, even if the experience used to pave the golden path isn’t independently that compelling.

With that said, is an ECS something lots of people might want to use, or is it something lots of people might want to make? If the latter, it might make a great subject for a golden path. If the former, it might be better suited to be shown as a tool, a step along the way in a golden path showing how to make the thing people would want to use it for.

2 Likes

I have one targeted for BJS but it has been sitting with a few demos. It would just need people refining it and start adding components.

It has a full communication bus between entitles and components as well with a subscription system.

I just don’t really have the time to dedicate to it, but it for sure has all the foundation there.

What I would really like to see is like a catalog of components, materials and postProccess like the Unity asset store, but for BJS with all the code viewable and extendable. Then there could be rack of “golden paths”

1 Like

Hi golden patch is silver without khr extensions. We need full support khr material properties in exporters like transmission and tickness. Now i found only one editor program with full support this extensions. Im understand shader way but we need something standards in 3d commerce in our pipeline

1 Like

What I would really like to see is like a catalog of components, materials and postProccess like the Unity asset store, but for BJS with all the code viewable and extendable. Then there could be rack of “golden paths”

That’s exactly what I want too. I just wrote a long post with a post-mortem: Post-mortem analysis of a Babylon project and this would be my #1 request for BJS. BTW, if that project can be useful for this golden path initiative I’d be very happy to help.

2 Likes

@Pryme8 @brunobg Gotcha, I think I understand. While I’m not sure making a catalog, as such, would constitute a golden path, both creating components for such a catalog and using components from such a catalog are very much golden path items—in fact, those are both things I want to explore when making the, “Postprocess library published through NPM.” My impression right now (subject to change) is that NPM represents probably the best way to distribute such reusable components, at least for code and probably assets as well, and using such components through NPM should slot very well into the Template Repository Workflow. A rudimentary usage of this pattern already appears in the last two sections of the first golden path, but I’m pretty excited to explore the pattern more deeply in future golden paths, specifically the postprocess library one. As for there being a catalog of these things somewhere (On the forum? In the docs?), I hadn’t really thought about it, but it sounds like a great idea!

I do not want to start an asset store because of all the constraints (Content management, review, ownership, compliance, security, privacy) that come with it.

Remember that Unity is making money with their tool where babylon.js is (and will remain) entirely free.

7 Likes

Thouuuuugh there is nothing stopping a private individual from monetizing the idea.

2 Likes

Oh my gosh yes!!!

These might be quite specific, but since I’ve just gone through this;

  1. A simple editor; add primitives, move and resize, set/change material, save/load/export.
  2. Something around shader development - I came to babylon because of the visual node editor. So something allowing people to use this to create a custom shader and then put that in their own website; as a background or effect for example.

If you weren’t already going to do this, getting up and running with webpack etc was a big deal for me - so for these golden paths I would like the complete project put up as a zipped template; download, unzip, npm install…etc…then access http://localhost:8080 or whatever to see the final project. Then people can see a running babylon project doing what they want, and use that as a jumping off point.

It’s really great. I hope I can see how to design high-quality particle effects like particleHelper.

maybe a CLI would be useful as a way to generate these template projects based on user selections. on the one hand it is a maintenance burden on the team, but can be really fast to get running from zero.

1 Like

I’ve voted for the viewer/configurator 'cause I think it’s a use case many people want to do, but I’m personally more interested in a quake-like experience (or at least a FPV one :blush:). Helping to know how to use Electron or similar tools could be very helpful, especially for CG artists which are most of the time feared by developer tools & workflow (and code itself :crazy_face:).

I think this has to do with this topic: a text summary of the great video tutorial series of @PirateJC (like Interactive Hex Tiles - which appears not mentioned in the doc by the way?) could be a nice addition alongside the videos. I say this 'cause I have many of his videos in my “watch later” playlist, and doesn’t often take time to watch them, while a text version could help to easily learn important points (and come back read them in a easy way to retrieve informations).

[edit] oh, and very nice initiative by the way!

4 Likes

Oh yes I agree. Having a clear path to write components, with a template repo that’s easy to fork and example docs would be amazing. Count me in to help and to be among the first ones to release some. You can DM me if you want to coordinate something.

I completely understand. But perhaps a new forum area to post assets/components? It’d make for an easy way to find them and have none of these issues.

Could be something like this Github repo GitHub - BabylonJS/MeshesLibrary: Use this repo as a place to share your scenes and meshes actually. But it may have some storage capacity limits?

It is a good idea! I need to check what would be my personal liability in that case (as I own the forum)

I think golden path end-to-end tutorials are great for “filling the gap” as the blog post states.

In the beginning I too was tripped up about npm/nodejs and the different kinds of bundles, whether it’s the es6 version of packages or the non-es6, and it turns out neither of them are really tree shakable, so do I create my own build, or do I use the cdn and just use script tags. It’s overwhelming choice of the ‘right way’ to set up.

Ultimately I’m interested in multiplayer immersive VR, so I started my journey with a framework based on Phoenix/Elixir (for realitime websocket communications) for my backend and then figured out how to bring babylonjs into it’s esbuild system. Not sure this is what most people want to do. Ultimately one has to be familiar enough with quite a bit of web development, npm, node, and ecosystem build tools to even attempt this. Which, I STILL cannot claim to be an expert on. But ANY reference from end-to-end examples I feel are helpful for gaining insight, because the playground doesn’t help you with that kind of larger set up.

The other thing I think is lacking is, “where does the game go?” In the playground I see lots of impressive demos, but they are visualizations or some small interactivity and I’ve never seen a full game. But now I realize that Babylon.js helps you draw stuff on the screen, helps you listen for user events and detect when things intersect etc. But you still have to figure out how to build your game logic. Where do you put state management? What does that code organization look like? How to you manage the transition screens for when a game is won etc? That kind of thing is probably beyond the scope of babylon.js, where you just need plain ol’ javascript and maybe some kind of state-machine. But even then there are a lot of ways to do this. Some opinions or guidance on making full games is definitely welcome.

I would really like more guides on character animation. There is a huge gap in this area: We have pretty decent guides on animating primitives like moving and scaling a box for example. And we have guides on bringing in and importing files that already have animation on them. And a guide on a pipeline for importing animations from mixamo to blender to babylonjs. There is almost nothing in between for creating your own character animation, or setting up and using bones and meshes programmatically from scratch. Even if it was a crawling worm or spider. I would LOVE @PirateJC to do a video series deep dive on all things animation. (I LOVE his videos!). But even things like a discussion on whether we should use gltf or .babylonjs, what are the pros and cons of using each. Or managing file loading. Can we actually have several files that contains animations only, and can be dynamically loaded as needed, or do they (the animations) all have to be pre-baked into a single file and then we’re limited to only playing the animations from that one file. All the guides and videos I have seen have only demonstrated the later.

5 Likes

If you are looking for character animation stuff you might wanna look up https://www.pixcap.com/

Its an entire animation editor built with BJS.

shout out to @mrlooi <3

4 Likes

You are too kind!
I’ve added this idea to my list of future tutorials and videos :wink:

2 Likes