After some digging around and experimenting, I decided that I would write a game in GameMaker Studio 2. Why GMS2? Simple: it does precisely what I need.
The process started with "I think I'm going to write a game".
I've already done some work in Unity3d, and frankly, that's more engine than I need.
I've taken a look at Unreal Engine, and if I was going to do a graphically intensive 3D game, open world or shooter or something, Unreal looks like the right tool.Also, if I had a team. A team would be good. I just have me.
I figured that I don't want my first foray into this to be something overly complex. So I checked out GMS. Three of my favorite games (Siralim, Siralim 2, and Siralim 3) are all written in it, so I figured it had to be worth something.
Turns out, it's awesome.
Why not write my own engine?
So many reasons. I've been futzing with computers most of my life. Starting with basic on the VIC-20, then assembly on the C64. These days it's Python, Bash and Hadoop stuff. Point is, I know an exclusive-or from a hole in the ground. So, I can code my way out of a paper bag. But what that really means is that I don't want to write any code that I don't have to.
Writing your own game engine is a job unto itself. Aaannnndd... writing your own engine kind of requires that you know what you're going to do. I didn't. It requires that you know what features you need. I didn't. And it takes freaking forever to write all that low level code just to get a freakin sprite on the screen.
I do not have that kind of time.
GameMaker Studio handles all the low level crap for you....and a fair amount of the high level crap, to boot.
At it's simplest: you give it a graphic, attach the graphic to an object, make a "room", put your object in that room, and then tell GMS what the thing should do. Does it move when I push a key? What happens to it if it runs into a wall or another object in the room? All these things are basic but would take forever to build from scratch. In GMS it is literally a matter of minutes.
I should make a tutorial. But I probably won't. At least, not until Graph Paper Shooter is done. Besides, they have plenty already.
And here's the super important part: GMS handles all the stuff that has to happen in the background for a game to run. During every frame, stuff has to happen. GMS keeps track of the frames, the order of operations, and you just tell it what happens and when. Which, if you're designing a game is really all you care about.
What happens. When.
In this case: left stick move, right stick shoot.