GameMaker Workflow: First I created a player 1 sprite and animated it so I looked as if it was moving. I also, centred the origin and modified the mask so that it had an ellipses hit box. Then, I created the piece of code that allows the character to move around and then set the restrictions so that it doesn’t leave the room when moving around the screen.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
GameMaker Workflow:
First I created a player 1 sprite and animated it so I looked as if it was moving. I also, centred the
origin and modified the mask so that it had an ellipses hit box.
Then, I created the piece of code that allows the character to move around and then set the
restrictions so that it doesn’t leave the room when moving around the screen.
Then I created the room that the player and the enemy’s will move around in and do combat.
Then I created a jet system that will emit out of the back of the player like a thruster. I then made
the sprite for this, which can be seen bellow:
Then, I made a sprite for the player laser. To which I centred the origin but left the mask standard as
it was already pre-set to the optimal setting.
After the sprite was created I then made the object for it and began to code the movement for it as
well as adding a sound that will be played when the player fires.
Next I had to make something for the player to do battle with. The enemy; I began by cre ating the
sprite for it and I added an animation so that the enemy will flash (my reasoning behind this was to
increase difficulty).
After creating the object and sprite for the enemy, I needed to go into the system object I had
created earlier and add an alarm event then a piece of code that allowed the enemy to spawn in the
game.
Now that the enemy spawns, it needs to have another piece of code telling it how to move, this
enemy is set to horizontal movement only.
Now the enemy can spawn and move around I need to create a collision event with the player laser
so that the player can destroy the enemy.
I then began to create the explosion for the enemy, so when the player destroys them they explode,
I started out by making a piece of code that creates the effect of the explosion.
Then I added a create event and set the alarm and coded in a sound to play once the enemy dies.
Then I went back to my enemy explosion sprite and edited it so that it would flash multiple colours.
I needed something for the enemy to fire, so I made a sprite called Enemy_Laser_SPR (fairly self -
explanatory). I centred the origin and since the pre-set for the mask was perfect I decided not to
change it.
Then after creating the sprite I made the object and began creating events and adding pieces of
code. I started with a “create” event and added a small piece of code that allowed the enemy laser
to follow or “lock onto” the player.
Then I added a collision event with the player so that when the player and the enemy fly into each
other the enemy becomes destroyed, but to counter act this, the player will lose 25% of their life,
which we’ll get to a little later.
Within the system object I created another piece of code in the create event. This piece of code is
responsible for the shields life value.
Then I created a draw event and created two pieces of coding one to draw the shield and the other
to draw the score.
Then I added collision events for the enemy1/2 and their lasers so that when they collide the player
loses 25% of their health (shield). {note that enemy two and it’s laser will be explained later on}
Now that it’s possible for the player to die, it needs an explosion and since my character is a person I
thought it to be fitting to have a bloody end. I did not need to centre the origin or modify the mask
for this sprite.
Now that I have an explosion sprite for the player I need to create the object. After doing that I
created a step event a create event and an alarm event. The contents of the scripts within these are
exactly the same as they were for explosion 1 with one minor exception in each piece of code. The
sprite name in the step event is now Explosion2_SPR. And, there is a piece of code that sends the
player to a game over screen in the alarm event. Plus,
This is the example of the alarm event with the added death screen script.
The name of the sound in this has changed to blast_2.
Then I went back into the player object and made a new piece of code in the step event which
means that when the player is destroyed, shield reaches zero, explosion2 will show.
Then I went to the enemy object and edited the alarm 0 events code so that the enemy will fire at
repeated intervals rather than constantly.
Then I created a spawn alarm for the enemy(1) so that they will randomly spawn in a v formation.
Then I added an alarm reset code so that they keep spawning opposed to only one set of 3
spawning.
Then I created a score variable so that the score is automatically set at 0.
Then I chose the font size, type and colour in the fonts menu. (choosing for the font type, size and
colour for the score)
Then I added an extension to the collision event from the player and the player laser, so when the
explosion happens the score increases by +1. The same will be done for the second enemy.
Now it’s time to make a second enemy to increase the difficulty. I made the sprite for this enemy
under the intention of creating something that stands out as opposed to enemy1’s ability to be
difficult to notice.
I decided to have the enemy2 laser be the same as the initial sprite just for fun and also to add some
confusion to the game.
This is how I added sounds, an example of me adding the sound zap3 for the enemy laser2 sound.
I programmed the enemy laser2 to work the same way as all the other projectiles where
programmed.
I then created some movement and shooting limits for the enemy2.
Setting more movement limits and specifications.
I made a step event so that when the enemy leaves the room, it gets destroyed. I applied this to
enemy 1 also.
I also added an explosion and a piece of code that increases the score by +1 when the enemy dies.
I added a create event that states if player 1 exists its speed is to be 20 pixels per second
horizontally. And, whenever the enemy (2) shoots the sound “zap3” will play but not loop.
This says that if the x coordinate is greater than or equal to the width of the room, then the enemy
will be destroyed.
If the enemy is shot by the player it will get destroyed.
Then I added a soundtrack that will be the BGM for the game and I decided to put the quality up to
full (even though this screen shot does not show this. (this is because I decided on doing this after
play testing and realising the quality need to be improved)) and I chose the attribute “compressed –
Streamed”.
I added the music into the system object in the create event.
To stop the music from playing in cannon every time the player dies, I added a simple stop sound
command into the explosion 2 create event which means whenever explosion 2 happens the music
stops.
I added three sounds, one for the game over screen. One for what was supposed to be the boss
battle but never happened due to time (it became the credits song) and the last one for the start
screen.
That is a list of all the things I had to make in order for my credits to work. I had to make a font, an
object containing what I want my credits to say and look like, an object so that it’s possible to go to
the room I’m going to make for the credits, finally the room with a modified creation code so that it
plays the song and stops the previous song over lapping it.
I added a room so that after the player dies he is faced with a question and has the choice to carry