Before creating a game. I first consider the idea I want to make. I think about a complete picture of my game, so I can consider what direction I want to take the implementation. Do I want to use sprites or not? Should I use 3D? What type of structures may I need? Of course the idea may adapt during development, but it's good to start with a plan that motivates you.
I consider if the plan is something I can complete, and if it's something I want to spend my time on.
Then I start my project.
For my games (excluding game jam entries) I've created a template project with the things I expect to need in most of my games (menu's, loading assets, handling input, displaying credits, storage, processing data).
That template is far from perfect, and a lot should be improved. But by reusing that template for each new game, it prevents me to solve the same problems over and over again. And I can gradually improve my template code to make it better where I need it for functionality (to also improve my future projects).
So to get started, I only need to change a few variables (like the game name and version) and I have a complete menu for my game. And it's inviting me to create the actual game :) And I already feel familiar with the approach, since it's in part a copy of my previous project.
Using this approach does have some draw backs, because it gets harder to change choices you've made in the past about the generic stuff (like how to handle input). And it gets more likely to have "dead code" (functions that are never used) in your project. So this approach is not for every project, and not for everyone.
But if you tend to get stuck on the first few lines of code, then this might be an approach that helps to get started. It also makes your projects feel more familiar, because things like menu's are similar across your projects.