4 ms·
I respectfully disagree. I write raw WebGL but I also have written 6 game engines. I'll never do that again. I just want to get shit done. That means for a game
by greggman 11y ago
I respectfully disagree. I write raw WebGL but I also have written 6 game engines. I'll never do that again. I just want to get shit done. That means for a game I'll start with Unity or Unreal.
Similarly for 3D most people just want to get shit done. In that case Three.js is a great way to to just get stuff done.
There's man years of work to do to a full 3d engine. You can easily spend a couple of man years just writing exporter/importers and trying to get every little piece of data out and into some meaningful way into your engine. People spend years making rendering systems and shader combiners and post processing system.
I'm not saying three.js is perfect but at least at some level much of that is already in there. Why should anyone skip all of that? Just to make years of extra work for themselves?
If you want to do raw WebGL then go for, but don't push that on others. To me that's like someone saying "you should write in assembly language". No, I'll choose something that provides existing solutions so I can move on to my actual content instead of re-inventing the wheel.
- wtetzner 11y agoThat's fine, but he makes a valid point about tutorials whose title makes it sound like it's a WebGL tutorial but mostly cover Three.js. It's like finding a tutorial about assembly, and having it be about C.
- ladybenko 11y agoHi, I'm the author the post. I agree that it is important to know how things work without 3rd party helpers, regardless of whether you'd use a game engine / library later or not. However, the post on the Hacks blog presents some articles and demos we created for the MDN and IMHO the title is appropriate, since one of the two articles introduced (https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_collision_detection https://developer.mozilla.org/en-US/docs/Games/Techniques/3D...) is generic and it's about algorithms in raw JavaScript. I just thought there would be value too in showing how to do collision detection using one of the most popular 3D graphics library and a physics engine as well, since that would be the most common case when people are developing games (versus making an engine)
- wtetzner 11y agoJust to be clear, I wasn't suggesting anything was wrong with your post (especially since it's about collision detection), just that there was valid point made in general.
- angersock 11y agoI agree that if the thing you're trying to show is "Here's bounding volumes and intersections in 3D", then the Three usage just cleans up a secondary implementation detail. However, it seems to be rare that people will write "Oh, and the drawing part is just for visualization, ignore this code because it's convenient". The problem with the wide spread of Three is that it is some crazy sprawly combination of utility library, engine, and framework, and that it encourages a particular worldview on new graphics programmers that don't have any understanding on how the underlying hardware or math works. It's useful in the hands of somebody that already knows that stuff, but harmful from a pedagogical point of view.