| Very few questions are stupid, these are not. Yes, you can definitely build an entire fps game using WebGL for rendering. Typically using JavaScript to handle physics, collision, gameplay, etc. My current WebGL project is rendering high definition terrain, high-poly animated models, thousands of particles, shaders, sound and more over 150 frames-per-second on a 10 year old PC with a RTX 3060. I have found hardware acceleration is often not enabled in the browser, or Windows will default to using the integrated-graphics card when running the browser and that must be changed in the Windows Graphics Settings. WebGL is a graphics API for talking right to the graphics card, supported by The Browser.
ThreeJS and BabylonJS are libraries that make it easier to render 2D and 3D graphics, both use WebGL and/or WebGPU behind the scenes for rendering. Development with HTML/CSS/JavaScript and WebGL is my favorite stack to work with. Development is fast, re-loading is quick, errors and debugging is handled directly in the browsers which have great debug information and performance tracking. No compile time and support on lots of devices. Yes, OpenGL came first. WebGL is a JavaScript binding of a subset of OpenGL functionalities. |
- as a guy who is very much new to gamedev, threejs etc but not to programming (have a decade of programming experience on backends, android apps etc) i am running into lots of questions as i try to build a mental model of what game dev process looks like
- let us say i wanted to add a player 3d model into this setup, the player can walk, run, crouch, shoot, throw a grenade, go prone, take cover to the wall etc. how do these animations get implemented? what kind of tools are needed for making these animations
- i read that the technique used is called skeletal animation. how are you supposed to think about this? you press w, the character moves forward. in terms of animation that means your character needs to play the standing at one place animation initially and transition to the walking animation as long as the w button is pressed. now you press shift and this walking animation needs to transition to running animation as long as shift is pressed. is this the right way to think about this?
- do we need intermediate animations like "transition from walk to run", "transition from run to walk", "transition from walk to crouch" etc? that would add a lot of states would it not?
- are there LLM tools that you are aware of that are capable of generating these animations?
- i also read there are different file formats like obj, fbx, m3d, glb etc. is the same data stored in these files in a slightly different way like csv vs json or are they completely different?