Wednesday 5 October 2016

Lazarus & Super Rainbow Reef

Task 3 - GDD and 2D Games Engine

For the next part of task 3, I learnt the long and short ways of repeating code. I made 2 games.
The 1st from chapter 4 and the 2nd form chapter 6.

The 1st game where i had to alot of repeat code was lazarus. Lazarus is a tetris-like platformer game. The player controls a character which is a purple slime ball. Heavy boxes randomly spawn on top of Lazarus (purple slimeball) and the player has to move Lazarus from left to right to avoid from getting crushed by the box.
lazarus title screen
The player has reach to the end of the level (which is really high up) and the player is able to climb to the end as the boxes would stack on top of each other. Eventually this would lead a path of boxes on-top of each-other for the player to climb.

gameplay of lazarus
When making this game i saved 4 different version, each containing major aspects of the game.
The first version had the basic mainframe of the game. All the sprites, sound and player controls ready to be advance for gameplay to be changed. The last version had everything put together and working.
version 1 of resources
version 4 of resources
Whilst making this game i got confused a lot of time because i had to repeat the code and put slight variation depending on the property of the box.  
repeating code and changing due to the object property
(my struggle/confusion)
The second game i made was Super Rainbow Reef, This is a brick breaker like game and i made it quite quickly. When i was making Super Rainbow Reef, i made it alot faster than i expected, and as a total i made 5 version of the game at key stages of development. This is because the game had a certain structure of making it. A beginning, middle and end. This made me realize that organisation makes the development of a game more efficient.

In version 1 I started by making the beginning and end screen first. The end was easy to do as it only required  sprite to change a room with a single object inside and then it would show the highscore. Also at the end i changed the keybind from exiting game maker to going back to the start screen. The start screen was also kinda easy to do as it only consist of a mouse pressed event, which would lead to different action, like exiting the game or changing the room to start a level.

V1 organised

Start and End screens

In version 2 I worked on player controls. Before i did this i made a test room so i could see if the the player controls worked. This stage was mainly focused on how the objects - which represented the player would interact on the other objects like the wall. The only player interference was Katch. Katch would bounce back the ball like object in brick break - in this case the ball is pop, and pop would bounce of walls. Pop bouncing of brick was in the 3rd stage of making the game (version 3)

player interactions
resources for version 2

In version 3 i worked with a variety of different brick, they all has the same function which was to get destroyed and bounce back. So therefore i made the 1st brick a parent off all the rest. I also worked on the enemy object in this version. Like the blocks there were more then one enemy. So i made one a made the rest as parents. The parent one didn't move and that feature was added to individual enemy. The movement as also a parent for other smaller enemies.
enemy parenting code
similar objects, a lot of parenting
However some blocks had different feature and worked like powerup. Powerups where version 4 of the game and. This included how life's worked and how more then one balls where spawned. This was really easy to do as the life was represented in pop as a draw function and whenever pop left the room and there where no more pops left, a life will be taken away. If the player hit a life block one would be given. For spawning multiple pops (balls in brickbreaker) all that needed to happen was a collision event to create new instances.
power-ups blocks coding and pop interaction with blocks
Version 5 was really about making the levels. so therefor i left the testing level as it was. i can add more if i really wanted to, the only thing important to me if the game is working properly.
level making
gameplay

No comments:

Post a Comment