please close
You seem to have the right idea about starting with what should be simple games - asteroids, tetris, etc. Throw a pong game in there too. While normally I would say it is better to do things right the first time, if the intention of these games is to be a learning experience, sometimes the best way to learn is to make mistakes. If you are not completing games, and losing motivation as you try doing things the ‘proper way’, then you are still running into issues with this style, and even though your scope is small, you might be trying to take in too much at once.
I would advise you plow through a very basic game, start to finish (that includes releasing). Complete the entire cycle. It won’t be great, but thats ok. Then ask yourself “what mistakes did I make? What issues did I run into? If I were to do this game again, what would I do differently?” Do a bit of research on those topics, then start a new game, just slightly bigger in scope (Just slightly!). Only tackle one or two new areas. Starting fresh allows you to tackle the similar areas that might’ve been hackish before and do them more properly, now that you know more of what to expect. Continue to read up on good techniques, but introduce them slowly, and interlace that reading with some good old fashioned hands on learning. It will make things less monotonous.
Learning can be an iterative process, and as you are finding out for yourself, there is a LOT to learn in game dev, especially for fresh programmers. Accept the fact that your first few games will have problems, but complete them, learn from the problems, and slowly you will grow and get better. The more experience you get, the faster you will be able to understand and implement the more advanced, “proper” techniques.
Thats just one person’s advice though.
Edit: The one risk above is that you will develop bad coding habits. We don’t want those. The point is to get your hands dirty and keep you motivated, but you should definitely continue to try to understand the proper way of doing things.
Slowly learn to do it properly.