Featured Post

Dodgeball Game Maker Tutorial

This will be a series of posts that will teach you step by step how to make a simple arcade game using Game Maker Studio 2. The final game w...

Saturday, December 21, 2019

Dodgeball Tutorial: Game Design

On this post, I will explain the game that we will be building as if it were a simple Game Design Document.


Game Objective


The objective of the game is to earn the highest score possible by staying alive dodging the balls that appear on the screen and destroying them with the power ups that spawn every few seconds.


Game Elements


We have three main game elements: the player, the enemies, and the power ups.

The player will be a circular ship simmilar to an Ovni that will be controlled by us with the mouse. The player starts with 3 lives and must stay alive as long as possible to earn the highest possible score. The player interacts with the other elements of the game when touching them: touching an enemy will cause the loss of one life, and touching a power up will activate it.

The enemies will be balls of different sizes and colours. The balls spawn from the edges of the map in a random direction and then, they stay forever in the screen, bouncing everytime they arrive to the screen limit. We have 4 types of enemies:
  • Enemy Small, which is the one that moves faster.
  • Enemy Medium, wich is the standard one.
  • Enemy Big, which moves slower.
  • Enemy Special, which is the one that follows you all the time instead of the normal bouncing movement.
The power ups will be objects that spawn on the map and can be picked up by the player in order to adquire new abilities and destroy enemies. We have the following power ups:
  • Shoot: shoots in a random direction projectiles for an small amount of time.
  • Bouncing Shoot: similar to the previous power up, but on this case the fire rate is lower and the projectiles bounce on the screen before they get destroyed after some time.
  • Power up bomb: when picked, it destroys all the enemies on the screen.
  • Power up bomb shield: when an enemy touches you, the shield explotes and destroy all enemies.
  • Power up Shield: for some time you are invincible and can destroy balls with just touching them.
  • Power up extra life: gives to the player one more life.


Game Logic


The game logic is simle as we do not have much elements on this game.

We do not have a game win condition because there is no limit when playing the game, the game ends when yoy run out of lives and the objective it's to end with the highest score possible. The lose condition it's detected when player it's destroyed, and player destroys when it do not have any remaining lives.

The player will be always at mouse position, so it will follow the mouse for movement.
The player lose one life when it's hitted by a ball and has no power ups to protect that hit. After hit, player has some little time of invincibility, to avoid losing 2 lives in an instant.
To pick a power up, the player has to touch it and it will automatically activate.

The enemy spawning logic won't be that simple, because we want the game to scale in difficulty over time. So as time pass, we will be making enemies spawning faster and moving faster aswell, this way, the game becomes more challenging as the time pass.

The power up spawning logic is simple. We will set a constant time and they will be spawning periodically on the map. Once a power up spawned in the map, it will remain there until the player picks it, so it's possible to acumulate power ups and take them when necessary.


Game Interface


At the start of the game, we have the main menú which is composed of the game title, the play button and the exit button. The play button will take us to the action while the exit button will close the game.

Inside the game, we have the pause button, which will trigger the pause menú composed of this buttons: continue to resume the game, restart to restart the game or main menu, to go to the main menú.

Also, in the play room, we have a little hud above that displays the number of lives at top left, and the score number at top right.

When the game is lost, we have the game over menu, which shows the current score, the highest score and two buttons, one for restarting the game and another one to go to the main menu.


Game Sound


We will use a background music for the game. Also we will need some sound effect for: balls bouncing, picking up a power up, being hit, explosion, normal shoot, special shoot.


Game Settings


The resolution of the game will be 600x900. This is set this way because the game was firt done for android and it was designed to play vertically and not horizontally.
The game will run at 60 fps.

Friday, December 20, 2019

Presentation

On this blog, I will post what I am learning about game development when I have some free time.

I am working as a programmer in a travel company and I practice programming skills at home making simple videogames.

I know about Game Maker Studio 2 and a little bit of Unreal. For now I will post about Game Maker but in the future maybe I add some Unreal Engine content aswell.

For now, I will start a serie of posts about how to build a full simple arcade game in Game Maker Studio 2.

It will be an arcade game about dodging balls. The final version of the game can be played here https://dukebot.itch.io/dodgeball.

Dodgeball game making tutorial