The Game Developer's Journal: Making Games with GameMaker

Thursday, June 26, 2014

Making Games with GameMaker

To create "The Amoeba of Light," I use a game developing software called GameMaker Studio. Today, I'll give you a little background
...and explain why I'm still working on one single, very important feature that I began months ago.

GameMaker is a collection of software titles published by Yoyogames. There have been many versions of the software, but today, I usually see version 8 and the Studio version already mentioned.

Studio is what I have, and it's the big brother of commercial game development for GameMaker. Here's why: it allows users to export games for not only Windows and Mac systems, but iOS systems, Android phones, Windows Phones, and more recently, the PS Vita and PS3 systems! 

Inside Game Maker Studio Master Collection

We're talking big market potential here. I paid $800.00 for my license (called the Master Collection), but it included the ability to export to every available system at the time. It also promised automatic updates to support any other future systems. That explains the price tag.

The thing that sets GameMaker apart is its ease of use. In fact, you don't even have to use code. It's a great tool for beginners, or people who don't want to get into other complicated programs (e.g., me). I started using version 7 several years ago, and now with Studio, I am armed to create "The Amoeba of Light" as a quality commercial game. 

In fact, many developers have already utilized GameMaker to create retail-worthy games. A few examples are Spelunky; Eat, Serve, Delicious; Home; Perfection; and Risk of Rain. Fans of the Indie genre will easily recognize at least one of these titles.


In GameMake Studio (we'll call it GM: Studio from now on) there is built-in physics engine called Box2D physics. I can "turn on" the physical properties of the game world, and set the objects inside it to interact like objects act in the real world: realistically responding to gravity, bouncing off other objects, etc. The engine saves me the effort of programming that real-life aspect myself (and man, am I glad for that!)

Apart of my game's theme of realism is the way that objects within the game interact with the environment. This goes as far as a dynamic weather system and breakable tools, mentioned at an earlier date. The physics engine makes all this more feasible. It was possible before, but it would take way more programming to do it without the engine.

Gravity. It's the key ingredient to every action scene.

 Box2D enables easy gravity and collisions between objects, as well as a joint system, which I know will be useful for creating vines or anything that doesn't have a static shape.

Do you want to see how Amoenu looks so far? Here:

Looks familiar, right (though deformed)? I posted a similar image in previous blog entry. What you see is the outline for Amoenu's body in the game as it is right now. Those little dots compose the skeleton, and the lines in between are just for effect. 

Now, I've been working on this body for quite some time! For at least six months to be precise (including some down time). I believe God has been giving me ideas, and I think I've made progress. Why is it taking so long, you ask? Good question.

Every blob that interacts in the actual gameplay will possess the properties of Amoenu's body. Wisenchyme's body, for example, will be to identical Amoenu's body, besides it shape. I need these bodies to act like a ball of putty. If one part of the body stretches out of proportion, there will be a tension on the rest of the body; at the same time, the part that's moving away from the central mass will feel resistance. Basically, every point on the body needs to pull on every other point of the body in accordance with its distance. Okay, don't get lost. Just imagine plying putty in your hands. 

And just as play putty is resilient in that it tries to reform its original shape, so it is with our amoeba friends. There's a contant strain on every little dot to come back to its original position. 

The main reason this has been so tricky to accomplish is the way that objects have to be manupilated with GameMaker physics. If I need an object to move, usually I can just change its position. Think of the Cartesian coordinates that you learned in math, you know, the x/y stuff. For example I can change an object's "x" from 23 to 56, and it will alter the horizontal position. I can edit the "y" to change the object's vertical position on the screen.

It doesn't work like that in the physical game environment. Apparently, the system gets screwed up if you try  to work it this way. What you have to do instead is either alter the speed of something, or push on it with a force. There have been other issues as well besides these. 


Recently I came across some enlightening news. It appears that the people who work on the Box2D physics engine (albeit, Google employees) have added a particle feature. To get to the point, I'll just say that this would allow me to make things like water, sand, and dust pretty easily! Since Amoenu's body acts like a liquid (kind of like table syrup) I can use this new feature to help me form Amoenu's body! 

While searching on a forum specifically for GameMaker enthusiasts, I found out that LiquidFun, as its called, will be released in a later version of GM: Studio. Seeing how many things have lined up so marvelously for this game, I have a feeling that it'll come just in time...

Gamemaker Logo (C) Yoyogames.

Screenshot of Home from Steam: (C) Benjamin Rivers

Screenshot of Spelunky by Tom Francis on flickr. Under Attribution-ShareAlike Generic 2.0.

I do not own these images. They belong to their respective owners (obviously).

No comments:

Post a Comment