GameMaker is an engine that has been developed to help users programme games in a simple way. It is a free piece of software that is open for anyone to use. Since it is a programme that can be used by everyone, GameMaker has been developed in a way that it can be used very easily. One of its biggest features that separates it from other games is that it has a drag and drop option which allows users to create games without learning how to code each element within the game. Although there are still processes that need to be followed to develop a game, it is still significantly easier to use than what it would be if the user needed to use code. In this blog I will be explaining my processes and findings whilst using GameMaker.
Game Prototype Process
Once GameMaker is open, the UI layout is shown. On the left side is the recourse tree. This
is where the main elements of the game can be found. Each subheading can be opened into a path of folders containing the assets within the project for the game. I found this very easy to understand and quickly became familiar to the layout. Above the recourse tree are the project commands. These have many uses such as creating and saving a project as running a game. At the bottom of the page is the compile form. This shows the errors that may be in the project that could be causing the game not to run properly.
To start the project I needed to create a room, the area (or container)that would be used for the game. To do this I selected room, then create room. I then set the dimensions of the room to 256×256. This was the area that would be needed for the game. Since it was pixel art based, the room’s dimensions could not be too big since the sprites would be smaller than anticipated. After creating a room I needed a background. To save time I created the background in Photoshop since I was not completely familiar with the layout at the time. To import my background I went to backgrounds
Sprites are used for the design of characters and objects. To create a sprite go to spritesthat will effect how the sprite can be used. On the left side in the recourse tree, a list of sprites can be seen. This shows each sprite that I have designed for the game. In the sprite properties menu, I thought that the layout was fairly basic and could be easily navigated. Under the name, there are two options to load in or create a new sprite. For this task I created the sprite in GameMaker since this would be the faster option. Another important setting that should be considered is under collision checking. Precise collision checking should be ticked if the sprites collision area needs to be accurate. For example this was ticked on all the characters since I needed them to collide with other objects. This meant that the collision area needed to be accurate. If I was going to create a sprite for a part of the background that wouldn’t collide with anything I wouldn’t use these settings since the collision would not be needed.
Creating an object involves a similar process to creating a sprite. Objects be programmed to command the sprite what to do. After working with GameMaker I think that this is one of the more difficult processes whilst making a game. Since each sprite in the game has a different function, the programming and commands behind each one would need to be different. In the screenshot above, I have opened the object properties panel for my first sprite. To attach the sprite to the object I selected the the sprite selection button, seen next to the name of the sprite. Under this, there are two settings named ‘visible’ and ‘solid’. I ensured that these were both ticked since I needed to see the sprite as well as have the object be solid so that it would collide with other objects within the game.
Towards the right of the properties window are the ‘event’ and ‘actions’ panels. These show what has been programmed, and how the sprite will behave. For this particular sprite I have added several different events, the first being a step event. A step event will control the object in ever frame whilst the game is being played. I have then added several different actions to the step event since some effects would be needed throughout the entire game. The first action I added was ‘wrap in both directions when outside’. This would mirror the room so that when the sprite would leave the room on any side it would then enter on the opposite side that it left. Using this would then mean that the sprite would not leave the room, or disappear which was the first of many glitches that was solved. The next action that I added was a vertical speed controller. This would be replicate gravity. GameMaker does have its own gravity settings however for the purpose of this task I felt that it would be more effective to use a vertical speed controller. Next I added a collision controller and a block with sequence of direction commands. This was used so that the sprite would know how to behave, had it collided with another solid object.
After doing this I created objects and sprites for each element needed within the game. By repeating the process and adapting the design and commands behind each piece of the game I was able to create a functioning prototype of what is going to be made throughout this term. Whilst doing so I experimented with trial and error to fix any glitches or problems that were made whilst creating the game.
Indie Game Prototype Analysis
What is GameMaker and the key functions required to create games in the program?
Developed by YoYo Games, GameMaker is a programme that allows users that do not have access to more advanced programmes, develop their own games. It is a 2D engine that uses sprites, objects, backgrounds, and scripts to replicate what would be seen in a game created in a more advanced engine. GameMaker offers a variety of different elements that help the user create what is needed for their game. The drag and drop option is one of the most important features that allows users to program the game without the need to learn code.
Sprites are used to represent characters within the game. They can be programmed to be hostile or friendly depending on what is needed of them. Most importantly they can be programmed to be controlled by the player. In Gamemaker, sprites represent how elements within the game look, such as characters, projectiles, props etc. This means that objects are needed to control each sprite so that the game can run how the player expects it to. Programming the objects correctly is crucial since this will allow the game to run smoothly. Another significant function that must be worked on are the rooms within the GameMaker. A room shows the layout of sprites, objects and backgrounds and would represent what would be seen on screen when the game is being played.
How is GameMaker different from other programs you have used?
As mentioned before, the main reason that GameMaker is unique from other programs is due to the fact that it is an extremely user friendly piece of software. Firstly, GameMaker is free which is a huge difference from other programs such as the Adobe Creative Suite Package and 3ds Suite. Although these are software that are used for design, GameMaker also has design elements that are similar to the paid options. Also in terms of settings, the paid solutions have a similar amount of options to GameMaker on offer. Despite having many different options and settings, it is still a very friendly piece of software. One of the main reasons for this is due to the drag and drop elements that have been implemented into the software. This means that their is no need to code the game being made, which saves a significant amount of time.
How will this task help meet the current requirements and parameters of your project?
I have learnt many different skills since working with GameMaker. Whilst creating a game prototype I have been able to get familiar with the software since I hadn’t used any other game development engines before. This has been very beneficial since I will be able to use all of my findings in later projects during the term. I have also been able to learn about the software key features and how they can be used effectively. Learning about room layouts and sprite/object programming has been one of the most difficult processes for me since they require a lot of trial and error experimenting. I will be able to take what I have learnt and apply it to what will be needed in the final version of the game towards the end of the term.
What research activities did you undertake to complete the work?
To create the prototype for our game there was a great amount of research done to get the final outcome. Firstly I watched some tutorials to familiarise myself with the software. I felt this was beneficial since I was able to get an idea of what I would need to do to create the game, despite not having the software at the time. The tutorials I watched showed the basics needed which was what I was mainly interested in at that point in time. Another form of research that I did was that I prepared some of the assets in previous weeks, in order to get each one to a high quality I researched the appropriate dimensions and character styles that would work best for this type of game. One of the main forms of research I did before and during this task was to observe my tutor (Adam) who showed each step needed to develop a game to high quality and to the criteria that we need to follow.
How will this task help you to plan and organise your work on the current project?
By creating a prototype, I have been able to get more familiar with the software, allowing me to work faster and have a more efficient workflow. From my work so far, I am going to plan to be organise and have as much time as possible to develop the game since I have learnt that it can be a very time consuming process. Both designing and creating the mechanics of the game can take a huge amount of time since it involves having to experiment and trial and error with many different elements within the game. After working on the prototype I have learnt that the physics of the game are particularly important since it can make a huge difference as to how the player can perceive the game. In future projects I am going to ensure that I have a good amount of time since I think this is a big factor as to what the quality of the final game is like.
How did you apply your practical skills?
Whilst creating the prototype I ensured that the design of the game used what I had learnt over previous weeks. I thought specifically about colour scheme and how this might change the atmosphere of the game. Although this wasn’t particularly important for a prototype, I preferred to consider it so I could get an idea as to how I could use colour in the final version. I felt that doing this was a good way of how colour can also be used to put emphasis on certain parts of the screen layout. I also learnt that this can have a big impact on how someone plays a game and that the colour scheme can give a great amount of detail as to what the objective of the game is.
How effective were your solutions in solving the interactive based problem?
Overall I am happy with the work I produced since it was a first rendition of the project. It was also my first project on this piece of software and I feel like it is a good foundation for future projects. Although the game is far from perfect I am happy that I will be able to learn and take my mistakes from this project and apply that information to other projects in the future. To improve my work I am going to take my notes from the QA testing segment of the week and adapt the game from what people have said needs to be improved. Although I have struggled to get familiar with some aspects of GameMaker I feel like it is still a good piece of work since I have spent time making sure the design works well. The design of the game was mainly inspired by Nintendo’s Mario games since the colour scheme was very vivid and gave a positive atmosphere whilst still giving enough information to the player as to what they need to do.
Once we had finished our game prototypes towards the end of the week, we peer assessed each others games by QA testing them. To get a good idea of what the strengths and weaknesses were of our games, we were given a series of questions that would help us determine what we had done well and what needed to be improved. From the feedback I was given I now have a better idea as to what the quality of my work was and how it was perceived. The three people who tested the game all commented on how the art style worked well, not only because the colours contrasted with each other well, but also because they gave enough information that the player knew what to do and what to avoid within the game. As well as this, there were also positive comments about the lack of glitches which was another thing I spent time on to try and reduce. One of the main criticisms of the game was that the movement of the character was very sensitive which made the game much more difficult. Since the movement was so sensitive, I feel like the enemies also added to the problem of how difficult the game was. Although there were no comments about sound, I feel like the game would be much better if it had sound. In future games I am going to spend more time during the development process, getting information from others as to how sensitive the controls need to be.
Overall I am very happy with my progress in GameMaker and the game that I have created. I feel like have made a solid start with the software and have been able to make a comprehensive game that covers most of the skills that I had learnt in the week. I am happy with what I have been able to accomplish in such a short time since I only knew the absolute basics of the software before this week. I feel like I will be able to take the skills I have learnt and apply them to my work in the future, even if it isn’t the same software, I will have a better idea after of what to do since working on GameMaker.
Yoyo Games. (2017). GameMaker | YoYo Games. [online] Available at: http://www.yoyogames.com/gamemaker?cr_exp=s&cr_cid=167592942 [Accessed 7 Mar. 2017].
Spalding, S. (2017). Game Maker Studio: Basic Tutorial. [online] YouTube. Available at: https://www.youtube.com/watch?v=hzMNunoPd0o [Accessed 7 Mar. 2017].
Spalding, S. (2017). Game Maker Studio: Platformer Tutorial. [online] YouTube. Available at: https://www.youtube.com/watch?v=IysShLIaosk [Accessed 7 Mar. 2017].