I actually don’t struggle so much with ideas yet, I just struggle with algorithms.
For instance, today I tried to implement simple AABB collision into my game, and because I’ve never actually done it by myself, I couldn’t figure it out, which is frustrating because so many people can do it in their sleep. It’s also frustrating when something you’ve done before that’s easy suddenly doesn’t work, or code shared between different classes doesn’t work the same between them. I have a player class and a zombie class, and with the player I move ~6 pixels every time a movement key is pressed, but for some reason zombies at the same movement speed, they actually move around four times as fast, which is infuriating considering they both use the same basic positioning code.
I guess the only reason I’m comftorable with low level OpenGL is because I’ve used it for long enough that its trivial to implement most stuff now. I just have to make collision detection and other things like that trivial, and then I’ll do alright!
I’m doing LD in a few weeks, so I need to prepare fast and learn some things before I compete so I don’t just rage quit, but I’m very optimistic! I’ve decided I’m going to sit down and make very small programs that deal with the issues I’m facing. For instance, I’ll make a program that helps me learn about collisions, one for GLSL stuff and one for some mid level AI. I think that’s the best way I can think of to learn!
Also, I recommend learning about your graphics API of choice by making a utility library like I did with OpenGL. I learned a lot and I use it to quickly set up new programs and load textures and log files etc… Its a good way to learn and then you can use it to make games!