Games Development / Exercises

06.04.2023 - 27.04.2023 (Week 1 - Week 4)
Lulu Luisa Linardi / 0349358 / Bachelor of Design (Hons) in Creative Media
Games Development
Exercise


LECTURES

Fig 1.0: Thumbnail

Game Development

Components:
• Game Design
Game design is the game development process of designing the content and rules of a game in the pre-production stage and the design of the Gameplay, Environment, Storyline, and Characters. It requires artistic and technical competence as well as writing skills. Game designer incisions how a game will work during play. 

Element of a game:
Story, without story we cannot imagine how the game will work (guidance). For your game, just give a simple story.
Gameplay, contains the five most common elements:
1. Challenge, the element that becomes an obstacle for the player which will make the game difficult to achieve their game objectives.
2. Strategy, the player should be able to think in order to overcome the challenges.
3. Chance, the element in the gameplay design that will help prolong the life of the player.
4. Choice, mostly happens in RPG games.
5. Luck, the element that can help change the player's outcome in the game.

Key Topics: How to generate ideas for your game
- Method 1: Brainstorming
- Method 2: Brainwriting 6-3-5
- Method: SCAMPER [Substitute–Combine–Adapt–Modify–Put to another use–Eliminate–Reverse]
- Method: 3(i) [Incorporate/Include, Improve, Inverse/Invert]  


INSTRUCTIONS

During the first week of the class, we were told to discover some games by our seniors from https://thedesignschool.taylors.edu.my/gamezone/ and give a review of the games that we playedActually, I don't play games a lot, so I don't really know how to review games. I decided to review these two games.

1. ZAPPER SNAPPER by Hanif Rashid

I played this game quite a lot since this was the first game that I chose. I like this game a lot actually. The gameplay is so interesting that I had so much fun. However, I think the movement of the character is kinda confusing. Sometimes the character walks very fast, and the other time it walks slowly. Sometimes it can jump really high, but the other time it only jumps a bit. Another thing I want to mention is the graphic of the game. It really suits the genre of the game a lot, but sadly it doesn't really work for me. My eyes can't see this kind of graphic for a long time as it kinda makes me dizzy. But overall I like the game. My rate for this game is 7/10.

Fig 1.1: Zapper Snapper by Hanif Rashid #1

Fig 1.2: Zapper Snapper by Hanif Rashid #2

2. MISTY NIGHT by Tamara Audrey

The second game that I played is Misty Night. This game is really fun since it uses a cute graphical element. The gameplay is interesting too, it gave fun and stress at the same time. However, I feel like the beginning game is a bit difficult to pass. It is already hard from the beginning as you have to jump in a zig-zag way to avoid the sharp things. I also played this game a lot just to pass that section, yet I still could not finish the game at the end. But overall I like the gameplay and the graphical element a lot, it is just the game difficulty that annoys me a bit. I will give 8.5/10 for the rating.

Fig 1.3: Misty Night by Tamara Audrey


Exercises

Students were introduced into the platform we will be using for building our game. This time, we will build a Unity 2D Platformer game for our project, so before we begin the project, Mr. Razif will guide us step by step. 

For the very first tutorial session, we were told to create a platform for the game, so our character will be able to walk on it. It is not difficult but it needs a bit of attention because if we missed just one step, then our object won't be able to function correctly.

To create a ground platform, we need to add a square sprite from the 2D Object section. For the other objects to be able to stand on the ground, we were suggested to create an empty object for groundTrigger and then put it as a child of our ground object. Don't forget to turn the checklist of 'IsTrigger' and assign a "ground" tag in our groundTrigger box collider. Here's my ground and groundTrigger setting in the inspector.

Fig 2.1.1: Creating a ground platform

Fig 2.1.2: groundTrigger settings in Inspector

Next, let's move into our character. To create a character, we can begin using a capsule. Components to add to our inspector are:
Capsule Collider 2D, or whatever 2D collider that fits your character shape
Rigidbody 2D, to let our character move around or change position, don't forget to add mass to our character
• Player Control Script, to let us give controls to our character thru the C# script

Fig 2.1.3: Creating a player in Unity 2D

Fig 2.1.4: Modify the gravity

Now let's begin the coding. As we want our character to be able to move left and right on the ground, jump, and even double jump, we need to assign this public float and bool before typing our code.

Fig 2.1.5: Important things to assign at top of playerControl script

Fig 2.1.6: playerControl script for the character to move and jump

We can add collectible items such as coins or keys into our game with the sprites we have. This is how I modify my coin setting in the inspector. Don't forget to add a collider and assign a script so we can modify the usage of the collectible items.

Fig 2.1.7: Adding collectible items

Fig 2.1.8: Scripts for collectible items (i.e. coins)

Next, we also have a door and the door trigger triggers the opening and closing of the door. We can put the door trigger empty game object before and after we enter the door, so the door itself will be put in between the two door triggers. In order for the door to open and close, we need to create three animations: idle, open, and close state. This is so that when we collide with the door trigger, it will trigger the animation that we have created for our door. We also need to create a script to trigger the open and close animation for the door.

Fig 2.1.9: Door animations

Fig 2.1.10: Adding door and its trigger

Fig 2.1.11: Scripts for doorTrigger

We can also create an enemy in our game. The enemy's settings in the inspector is almost the same as our character, the different is only at the assigned script. Below is a simple script of the enemy in my game which I learnt from Mr. Razif's tutorial.

Fig 2.2.1: Scripts for character's enemy

Next, we can also add bullets to kill our enemy. Add a square sprite from the 2D object for our gun, and also add a spawn point in front of the gun so it will be able to spawn the bullets later.

Fig 2.2.2: Create gun and bullets for the character

Fig 2.2.3: Important things to assign at top of playerControl script #2

Fig 2.2.4: To assign in void Update() in playerControl script

Fig 2.2.5: Scripts for bullet

Here's how it looks when my character fires the gun, a bullet will come out from the spawn point that I have created before and when it hits the enemy, a blood effect will be splashing from the enemy.

Fig 2.2.6: Player fires a bullet

Fig 2.2.7: Enemy gets hit


REFLECTIONS

To be honest, I'm not a person who plays games (a lot). I only play some simple games that don't require a lot of effort when playing. Additionally, during the Games Studies module from the previous semester, our group worked on a board game which is a physical one. Hence, I could say that I have zero knowledge and experience in building a game and coding. However, Mr. Razif gave us a tutorial from the very start (including creating a character) which made me a bit enlightened on how this Unity software will work for us on building a game. I can now do simple things like creating a character and making it to be able to move and jump, and collect coins, keys, and more collectible items. I can also make animation for the objects, create an enemy, bullets to kill the enemy, adding effects. I think this will really help me when I have to build my own game later for the final project.