After stopping my previous airplane game, I’ve started on a new project; it’s a 2d spaceship game meets ARPG. Screenshots and thoughts so far after the cut.
The graphics are placeholders, mostly left over from my failed airplane game. For awhile I’ve been wanting to make a 2D space game that had RPG style elements like Torchlight or Diablo. Torchspace? Spaciablo? Titanspace Starquest? Anyway. I started out by making just enough of the game to see if this time I had a fun combat experience as opposed to last time. The ship is mouse controlled, in keeping with the ARPG mentality. When I tested it out I found I had a game mechanic that was a lot more fun and workable than my last game prototype. Coding it took a bit longer than expected, since I took a suggestion from one of Tom Francis’s tutorials and had the ship x/y stay the same and move everything else in the room instead. This allows you to effectively have a room of infinite size, which is helpful if you want to do a space game with no borders on the play area.
After I got the basic combat going, I started in on an inventory system. Still half done, but the essentials are done; you can pause the game and drag a weapon from inventory to your ship silhouette and it’ll equip it.
A couple of thoughts so far:
-Tom Francis warned that the “keeping the ship motionless” method is a pain, and he’s right. It’s doable, but annoying. You have to do a lot of your math backwards.
-I’m glad I tested the basic combat first. If I’d done that with the plane game I would’ve known earlier that it just wasn’t working. Now that I’ve got a good base game I can start adding things to it.
-DrawGUI is annoying. Remember to use device_mouse_raw_x or y instead of mouse_x or y, since Draw GUI uses screen coordinates instead of view coordinates.
-Why on earth does Game Maker not have a global text search function? It’s the only coding program I’ve ever seen that doesn’t have one. I had to use an external text editor to be able to find what I was looking for.
-I’m still really happy about the speed of producing a basic game in GML. As I mentioned above, I was able to get basic combat up and running reasonably fast, so I could see that I had an idea worth pursuing.
-Code reuse is your friend. The more GM projects I do the more I’m building up a body of standard scripts that I can take with me from game to game. Even the airplane game wasn’t wasted, I was able to reuse most of the enemy AI from that.
Next steps: Finishing off the inventory and refining the combat.