I can find a lot of complicated books and tutorials that assume a bunch of things like OpenGL or Glad or C++ or Dynamically Linking library X Y Z and magically creating a scene but where is the "build it yourself" path?
I essentially want to build my own "hello world" 3D engine to understand how to manipulate pixels/shaders in 3D space.
I'm searching for tutorials and books around building a game engine from scratch as that seems to be the best fit -- I'm still searching. Nothing I have found yet seems thorough and to the point and self-bootstrapped. For example I find this walkthrough of building a text-editor from scratch absolutely perfect: https://viewsourcecode.org/snaptoken/kilo/
I have no preference for language - I'm familiar with most. Anything more "raw" without including a bunch of libraries will suit me best. So "single file/header libs" are the largest I'd like to play with. Having said that, C might be the best fit if it's the easiest to compile and get up and running without any dependencies.
Some embarrassing questions:
1. What is the most basic way I can create a window and render pixels in it?
2. Same as one but essentially with the most direct way of creating "fragment shaders?" (Is there something more direct than GLSL?)
3. My second question implies OpenGL as the API - is there a more direct or easier way to manipulate a window and pixels within it than OpenGL that is specific per OS?
3a. What would be the most direct API/layer to access per OS?
For context: I'm currently coding on Windows/WSL - I recently switched from MacOS. I'm most familiar with MacOS and unix flavors for dev environments. I mention this in case there is a more direct way to accomplish my goal being on Windows than trying to go a cross-platform approach way (OpenGL).I'm specifically avoiding any engine like processing, unity, webGL, etc - these abstract too much of the fundamentals I'm trying to learn.
I'd be really happy if I can just:
1. Create a window
2. Render pixels in that window that allow 2D/3D space drawing/coloring.
3. Create some basic shapes from a square to a cube and further real-time transformations.
It can't be that complicated can it? Hah.