2018-03-29

Teaching Myself GameMaker Studio 2

This isn't anything like full review, as I don't think I've gotten deep enough into GMS2 to really do that.  Ask me for a review when I've actually published a game that uses it.

That said, this post is really just some musings.  Granted, I followed Shaun Spalding's tutorials.  But the thing about Game Maker Studio 2 is that it has a drag and drop setup for non-programmers to use.  Great if you're a non-programmer or are fairly new to programming; but none of the syntax (the 'grammar' of a programming language) carries over to the full programming language that you can use.  For a programmer, GMS2's drag and drop mode is extremely useful for getting used to the user interface.  Which is exactly what I did when following along with Mr. Spalding's Drag and Drop tutorial.

Granted, if you're a non-programmer, you will probably never need anything more complex than GameMaker Studio 2's Drag and Drop programming.  The price Drag and Drop exacts from the game is precision and control over the inner workings of your game.  That is, it's a bit like working with the large chunky Duplo blocks instead of the smaller scale Lego blocks.  Yes, you can do a lot with either one but there's detail you can get out of one but not the other. 

At least, that's the way to think about precision when it comes to programming.  The control part means you're allowing the GMS2 libraries to determine how certain things behave. As an example, you can use the built-in physics that GMS2 provides, but you're probably going to get results that don't mesh with your game at some point.  This is because you cannot control or see how GMS2 is handling physics.  For all intents and purposes, that physics engine is a black box.  You throw things into it, something is done inside of it, and it spits things out.  Pre-built libraries are great when you're talking about things like an input-output stream or handling strings for C/C++; there's no way you want to have to reinvent those extremely fundamental tools for every project.  But for anything complex like how objects interact with each other in a game, you want to define those behaviors yourself so they do exactly what you want.  Predictable behavior, in other words.

That said, GMS2's built-in language is pretty much a big wrap-around thing for some flavor of Java or Javascript.  As somebody who was taught programming in C/C++, it's very familiar to me, even requiring == for the equality comparison operator and semi-colons to terminate lines.  As somebody who uses Visual Basic for Applications for the day job, I really like how YoYo Games has laid-out their integrated development environment (IDE).  Once I was familiar with where things are located, it is way easier to do things in.  The fact that I can push the sidebars out of the way so I have more real estate devoted to the code I'm working on is the feature I enjoy the most.

Anyway, I don't know when I'll make and publish a game using GameMaker Studio 2, but it's going to happen at some point.  Probably some kind of proof of concept tech demo, if I'm being honest with myself.

No comments:

Post a Comment