Support for Web 3.0 (the web in 3D) - not for games, but websites
I don't know if Web 3.0 is even a term, but if it isn't, I'm coining it here. I believe quite strongly that the next frontier for 3D artists will be websites (high-def version of a site just like used to be with flash). The web will become 3d very soon, but there isn't much support in terms of development tools for this. The web tools would likely create a combination of WebAssembly and WebGL. Web assembly would hold the libraries for the overall 'engine'.
I believe this is a much bigger opportunity than a full-featured game engine, and would be quicker to implement. Instead of exporting scenes to something like unreal, unity, or godot, what if Blender could itself target the web directly. No need for physics (first run), but would have need for "click handling" (button or 3d object) to drive animations - with first animation support going to simply transformations of objects, lighting, and camera movement (likely the most useful ones for web), and later support for armature based animations. Other feature of course would be 2d overlay system for textual information.
Down the road, considerations for physics as well as particles, but these are nice to haves, and would not be part of an mvp implementation. Grease pencil would also fit into nice to have imo.
Because this would be such a huge thing for the web, I also believe that acquiring funding for said project would likely come easier than for games - at least, that's my guess.
Also wanted to add that Mozilla could be a possibility of companies to hit up for said funding as they are leading the way on web assembly effort, and would likely be very willing / eager to work with Blender Foundation on said effort.
Additional considerations:
- Lazy loading of scenes (think areas of a website) from a web server
- web server communication (dynamic loading of data / text / images)
6 Comments
You've written a lot of words, but somehow I don't think that there's yet an actionable proposal in there. What exactly are you proposing? An output target to export to WebGL? How would this differ from what's available with Sketchfab or Verge3D or other web-based 3D platforms?
Please be more specific and provide an actionable design for what you're hoping to achieve.
* @Jason van Gumster * - Hi Jason, thanks for the reply. This would be much much different than something like Sketchfab. It wouldn't be for viewing 3D models. It would be more like creating a 3D version of something like Flash player. This capability exists in some 3D game engines, but having directly in Blender. The "player/engine" would likely be statically linked together with the "application" - IE, no plugins needed, just all 1 web assembly app that makes use of the browsers webGL2 functionality.
Yes, it would be an export and similar in some regards to a game engine for webgl, but also functionality within the blender interface to add script actions for interaction - could be python coded, but would be re-written by the engine to whatever language is used in output.
An action could be something like playing a stored camera animation to navigate from one spot in the 3D world to another upon button (or object) click perhaps based on defined "pathways" (curve object perhaps). User wouldn't control themselves (no w,a,s,d functionality - just click action). Camera location/rotation would likely be the most important of animation type.
It's just that if you rely on something like Unity or Godot for something like this, then there's all of the yuckiness that comes with working in multiple tools, and all of the issues that arise when doing so.
It would certainly be a major effort. It's not a small thing what I'm proposing, and maybe RCS isn't best place for this - not certain.
* @JeffG * Wouldn't blend4web, verge3d or even UE4 or Unity have these capabilities? I've created many web 3d interactive resources mainly with blend4web.
* @twistedpancreas * - Unity certainly does. Haven't followed UE4 regarding web, but likely. Godot either does, or will have relatively soon. And Blend4web is very cool as well, but what I'm talking about is having full featured web functionality directly within blender. This would be a KISS approach to start with, then add more and more functionality over time.
The possibilities here are endless. Really, the idea is a stripped down version of BGE, but specifically for the web - and initially with limited functionality, but would be directly done within blender to make the process seamless. No jumping between apps. No compatability issues for things like particle systems and materials - etc, etc
* @JeffG * You're still essentially exporting to WebGL. It's still basically an export process. And that need has largely been met with fairly tight integration by the likes of blend4web and verge3d. It's probably better to tighten the integration there than build a BGE-style executable export from Blender. If there's anything to be learned from the BGE, it's that Blender's wheelhouse is in content creation and that the engines to deliver interactive content move faster than Blender does.
* @Jason van Gumster * - good point, thanks