Don't think you need to know everything to start developing a game engine. You don't. The key is to implement as you learn and to experiment as you discover.
You may think that to develop a game engine you need to be a great programmer or an expert in computer graphics. As someone who has developed one, let me tell you the main quality required to develop a game engine.
You don't become an engineer, a developer, a maker, by just solving equations or following a tutorial. To become one you need to break things, learn and repeat.
If you hate documenting your source code, you are not alone. I also hate it. There is no way to avoid it. Luckily, there are free tools which make documenting your source code a bit less frustrating.