>>14032497
>I programmed asteroid and pacman, but only with tutorials.
Good. You're already into the territory that I only reached when I finally started figuring it out. However, make sure you understand why you're doing the things tutorials told you to do. Do you understand how things like operators and conditional statements work?
>Never really thought of taking off the training wheels and doing it myself.
You have to. Everything you learn is for nothing unless you can also learn to do it on your own.
>any particular resources that will get me a solid foundational knowledge
Shaun Spalding has excellent bare bones GameMaker tutorials on YouTube, and assumes that you know nothing. I recommend that you look through them and watch any series that piques your interest. They're very simple, and won't help you make things of any great magnitude, but you don't need complex tutorials yet. They're the building blocks that will get you to a point where you're able to understand tutorials that will help you build anything of great size. Vid related is an example. GameMaker's forums have loads of useful tutorials and discussions on them, but I don't recommend specifically going there to read through all them. Better to google a concept that you need to understand, and then click on results from it. Same goes for the GameMaker subreddit.
>and how should I go about recreating those games?
Since you don't have a tutorial specific for the game you want to recreate, you're instead going to have to think about what that game actually is and does. Anyone can describe the logic and rules of a game in abstract terms, whether or not they know how to code. Your goal is to de-abstract those rules, and figure out how to make the computer do it, like so:
>"If I press D my character moves to the right"
>"If D is pressed, the character object's x value is incremented by its movement speed."
>if (keyboard_check_pressed(ord("D"))){player.x += move_speed;}
Step One just requires you to describe the game logic in English, which you're normally thinking in. Step Two requires you to understand how the computer would think about the problem. Step Three is the specific way that it would be implemented in the language you're working in, which requires you to understand that language.
In the event you can't figure out how to make the jump to Step Two, you then need to google for examples of how other people have handled the problem, like I mentioned in my previous post. You can usually just google "[type of system you need] [engine/language you're using]." In the event you don't know how to make the jump to Step Three, you need to hit F1 and look through the help docs for concepts related to the operation you're trying to make happen, and read about the functions available. This will become easier and easier as you become more familiar with the concepts, and more often know exactly what it is you're searching for. You'll spend less time searching as you learn what tools you have available to you, since you can treat them as tools, rather than having to research what tools you even have. GM's help docs are mostly very well written. If you don't know exactly what you're searching for, you can often describe what kind of operation you want to do in google, and get useful results. Don't be intimidated by how much stuff there is in the GM help docs. Loads of it, you'll never use. Remember that middle-clicking a function or variable in GM will automatically open the help docs to the correct page for it.
So now, your job should be to describe the rules of a simple game, break down each of those rules into logic, and then implement them in code. You do this with an existing game first because you already know what the end goal is, and what's considered correct, because it's something familiar. You aren't designing a game, you're only programming one. When you go to make your own game, it will be the same process, but you'll also be the one who designs the game, thereby defining the end goal of this process. Then, you describe the rules of your own game that you designed, break them down into logic, and program them with the language you know. Then you will have made game.