I’m glad you’re enjoying the course! Thanks!
The answer to that is basically Experience.
The more problems you see and the more problems you solve the better and faster you will be the next time you encounter a similar problem.
The more games you make the more knowledgeable you become.
As you gain more experience you also gain the very valuable skill of breaking a problem into its distinct components.
Every problem, no matter how complex, can be described as a series of simple problems. Over time you will develop that skill to be able to break that problem down into those simple components.
When I have an idea like “I want to make a Backstab attack”, then I can immediately imagine all the components it requires.
I’m going to need to identify if the player is behind the enemy, possibly with Vector3.Dot, then I’m also going to need the animations and match those animations both for the victim and attacker, I can just move the transform.position to get them both in place, then I’m going to need to deal damage to the enemy so that means interacting with some kind of health system, etc, etc.
So in the end it really is all about experience. The more problems you solve, the more games you make, the easier it will be to come up with a solution to a new problem.
Hope that helps! Best of luck in your learning journey!