top of page

Game Development - Game Maker

After finding no success in the two most significant game engines, Unity and Unreal, I turned to an application a friend had recommended to me in the last try to get things started with my game development.

This application was called Game Maker Studio 2, available on Steam.

This application was known to be a much simpler version of Unity or Unreal, meant for complete beginners like myself. It also had quite an active community with plenty of tutorials and help for anyone creating their first game.


For the majority of this development, I was following many different tutorials, however, when I got into the coding I was entirely copying this tutorial linked below:

Included with this tutorial were also some optional assets to use and follow along. I only ended up using one of these assets, the invisible wall, then the rest is entirely my own assets that I drew myself.


Both with and without the tutorials, I found this application far easier to understand than Unity or Unreal. It was far easier to navigate with the layout and labelling of the entire UI.


Similar to previous projects, I first started out by adding in all my starting assets. To get things started I first only uploaded my main character sprite of "The Guardian" and one of the assets given to me from the tutorial, an invisible wall.



While this application had a drag-and-drop system similar to Unity, I didn't run into the same problems as I did with my computer not having a drag-and-drop capability. This was likely because Game Maker is entirely separate from my computer's system, since I downloaded it like a game, and so it relies on its own systems and programming to run.

I used these invisible walls as the tutorial advised as a base for the game's floor, to assist in programming the collusion and gravity graphics, and then artwork could be added over it at a later time.


While I did find this programming much easier, I did still run into one problem which I had previously. The sizing of The Guardian sprite was far too large. I could not find any clear answer on how to fix this, so I ended up trying to figure it out myself, by experimenting with various different settings I could find.




While I was able to resize the character, I noticed it would be very blurry whenever scaled down enough. While I continued trying to find a way to fix this, I realised it was because of the resolution I was making the image. Instead of considering the original pixel measurements, I was inputting a random number that was far smaller and replying to the application to do most of the work from there. However when I figured out how many pixels the original image was in height and width, then divided that number and inputted it into the game, the image was far less blurry and pixilated than it was.

Before beginning coding, I also inserted a placeholder for the background, it just being a solid colour that was very similar to the art I had drawn ready for the background.

Moving onward to the actual programming of the game, each aspect of the programming needed for the project is made within "events". There are two options for different UI while programming in Game Maker, either visual programming which is more drag-and-drop based or coding. Since I was following tutorials to complete this part of the development, I went with coding.


In this first event were the bare bones of the game, such as the settings for the axis the character would be moving on, gravity, the walking speed, and the jump height.


The next event I programmed was far more complicated, the coding for the player character. This event that this coding was done within was called a "steps" event as it decided what would happen to the character and how it would interact with other objects when taking a step.

This is the entirety of the coding within that event:


While each section is titled, I can describe in some detail what each section does. Player inputs is the controls of the game and what actually makes the player character move about the screen. Within my game were just the controls for moving from side to side and a jump feature. Below that in the calculating movement was using the controls I had established above and assigning an action to each key.

Below that then is the collision mechanics. This meant that the character was walking on top of the walls I had placed previously instead of falling straight through.


Through this entire process of coding, I was attempting to show my progress and what each section of coding was adding to the game. However, I did not notice my screen recorder wasn't showing the game itself as it opens in a new window, and the software I was using to record only stays within the first window. You can see here in this recording I thought the game was showing on the recording:

However, this is what the game looked like at this point in development:

After getting these basics working I moved onward to start working on the visuals of the game. First things first, I made the invisible walls actually invisible as I was going to be placing my art over top of it and didn't want any of these red boxes accidentally peeking through. I did this very simply by going to the settings for that object and ticking off the box for labelled visible.

I then started to bring in all the extra spites needed for the background and floor. In this recording below you can also see me change the background from the placeholder solid colour to a sprite.

During this part of the development, I was not following any tutorial, only using all I had learnt from the first couple of hours of development and exploring settings and menus to discover all I needed to do. In this recording, you can see me experimenting with the sizing of the floor to get it as close as I could to the size of the screen.

After a while testing out different settings and such, I tested out the background and floor here for the first time:

Once I had figured out everything from the background- from that point onward it was mostly a repeat process of bringing in sprites, making them objects, dragging and dropping them into the scene then adjusting their size and layer until everything was where it should be.

Once everything for the background was in place, this was what I had:

This is what it looked like from the editing screen:

If I had the time to continue onward, I would've at least liked to have added a parallax background, some fog or other atmospheric effects and animations for the player character.



Recent Posts

See All

Critical Analysis V2

Within this reflection of my work I will be critically looking back on everything was able to create as well as any obstacles that I...

Comments


bottom of page