Getting grip on the learning process

It takes experience to know the whole process of making a game from idea to completed game. A design document is great, but I don’t recommend coming up with a complex game with lots of mechanics and story if you have never completed a game. Think of some popular very simple games, old arcade games are a great example: Pong, Breakout, Asteroids, Space Invaders, Snake, Pac-Man, possibly Donkey Kong, and then make a “clone” of that game. Make the whole game, no matter how basic, even if you never release it: the level, the player, the camera, the enemies/obstacles, game mode (rules, score), the UI, pause menu, respawn rules, etc.

You can start programming everything without any art, just use simple shapes with different colors as placeholders.

I would not start with a menu or gamemode, start with things critical to the gameplay:
-block out the level as basic as possible
-create the player: inputs and movement, (for pong this could be the paddle, asteroid it would be you spaceship, etc)
-do the players and enemies have common functionality? like how they can move? (paddles in pong, pac-man and the ghosts), then you might want to derive them both from one base pawn with different controllers
-create other critical gameplay elements/obstacles: the ball in pong, the asteroids in Asteroids, bricks in Breakout

Basically, the first thing I want to do is get in: the player, something for the player to kill/be killed by/destroy/avoid,etc. Those are the first things that I think about. For most games, everything builds off of those fundamentals.

Art, sound, levels, menus… All of that comes later.