06.04.2023 - 06.07.2023 (Week 1 - Week 14)
Audrey Gracia Djohari / 0348120
Games Development
Bachelor of Design (Hons) in Creative Media / Taylor’s University
Exercises
WEEK 1:
So, for this exercise, Sir instructed us to create our own game with
either of the methods learned during lecture. We had to write down the
story and the gameplay. And what existing game inspired us.
Making a File: New Project < 2D Core < Rename <
Select a Folder < Create Project
Gravity: Add component < 2D Physics < Rigidbody 2D
Hit Something: Add component < 2D Physics < Capsule
Collider 2D (green outline will appear)
Change Weight: Adjust the Rigid Body MASS
Change the Playmode Tint: Unity < Settings <
Colors < Playmode Tint
Add Sript: Add component < New Script < Raname
it
Freeze Movement: Rigidbody 2d < Open Constraints <
Freeze x/y/z
Change the Gravity X/Y: Edit < Project Settings <
Physics 2D < Gravity
Create a Trigger/Detector: Create Empty < Place it
somewhere inside the physical < Add Box Collider 2D Component
< Is Trigger < Turn On || Create a tag "ground" < tag the
empty object to the new tag
Making Animation: Click the Object < Window< Animation < Animation < Create/Create New Clip< Name It (remember the spelling & cases)< Click the Red Button < Animate it by creating Keyframes Turn Off Animation Looping: Assets < Animation < Choose the Animation File < Inspector < Uncheck Loop Time Making Prefab Asset: Drag the Object from Hierarchy to Assets (Project Panel) Applying Changes to all Prefab Assets: Click the changed Object in Hierarchy < Inspector < Overrides < Apply All Slicing Images (Sprite Editor): Put Image in Asset < Click play button beside the object < See Inspector Panel < Change Sprite Mode from Single to Multiple < Click Apply < Click Sprite Editor < Slice < Slice
Games Development
Bachelor of Design (Hons) in Creative Media / Taylor’s University
Exercises
LECTURES
In the first week, Sir told us to download Unity Hub and make an account
because it's the platform that we'll use for our upcoming projects. He
also showed us some of the seniors' work and what kind of game we'll be
making.
We also played some seniors' game in this website, Sir tasked us to ratie
the games that we played:
WEEK 2:
Games Developmemt Components
- Game design: requires artistic and technical competence as well as writing skills.
- Game art: concept artist, UI design, character design, environment design
- Game technology: programmer
Elements of a Game
1) Story
- The guidence of how the game starts, ends and the characters.
- How, Where, What happens.
- The persuit of a difficult goal.
- What is the reflection
2) Gameplay
- Challenge
Challenge is the element that will make the game difficult.
Challenges comes in different forms such as different types of enemies, the obstacles along the way, lives, etc.
Punishment is an example of further challenge to the player.
- Strategy
Strategy to overcome challenges and obstacles, the player should be
able to think and develop a way to navigate through difficult
situations presented in the game.
- Chance
Chance is the element in the gameplay design that will help prolong the
Life of the player.
- Choice
- Luck
Games Ideation
Method 1: Brainstorming
Method 2: Brainwriting 6-3-5
Method 3: Scamper (Substitute, Combine, Adapt, Modify, Put to another use,
Eliminate, Reverse)
Method 4: 3i (Incorprate/Include, Improve, Inverse/Invert)
WEEK 4:
Intro to Unity, Character Control, game Physics
Fig : Week 4 Lecture & Tutorials
EXERCISES
- Rating Games
Game #1: Sneak Out to Snack
by Katarina Indira
"Sneak Out to Snack" is a puzzle strategy 2D-platform game, where
the player acts as Ruby, a fat little girl that likes to eat snack.
However, she is strictly not allowed to eat snack in the middle of
the night. Ruby tries to sneak out of her room to find the snack
that is hidden by her family and get it. As a player, we must help
Ruby sneaks, collect items, solves clues and avoid the family
members to notice her.
I played until level 2 and I think the story of the game is quite
interesting and original. I also like the setting illustration and
character design. Overall, in a user interface perspective, the game
looks nice and visually easy to understand. The buttons, icons and
information board are accessible and easy to navigate.
From a user experience perspective, I can play the game quite smoothly
but it's quite challenging. One problem that I encountered is the CCTV
red area. So basically if a player passes through the highlighted red
area, it's game over. However, I found that the CCTV highlight areas
are not consistent, some CCTVs have wider area but the others have
smaller area. So it's quite unpredictable how close we cat get to the
red area. I think it should be more consistent.
One more thing is the family members, so I tried pressing H key to
hide my character when I encountered the grandma. But turns out when
I'm in hiding mode, I could literally push the grandma across the room
and I think it's quite weird and illogical. My suggestion is to make
the game over if the player touches any family member (when they're
pressing H key). That way it's more challenging and logical. Apart
from these, the game is fun and I like the art direction and concept.
It's a good reference for me in creating my own game. Simple,
User-friendly , and aesthetically pleasing.
Game #2: Conjure
by Kezia Lynn
The gameplay is relatively simple and revolves around Lilith
"cleaning" up the city by defeating roaming creatures as she
continues her journey. Each stage there will be mini quests for
Lilith to complete so she can continue her journey. In order to
figure out how to complete the tasks and also understand the flow of
the story, the player needs to interact with objects in the
environment. Also, after completing each stage, the players’ health
will be replenished. There will be no items to add health.
I feel like this game is about exploring and finding out how to help
the neighborhood by completing quests. Design wise, it's neat and I
like the minimalistic characters and background. I think the way the
characters and the background moves are very smooth. However, I think
the animation can be improved by adding a reaction (like a jump or a
red outline) whenever the character loses 1 health. Because whenever I
got hurt by the ghost or fire, I didn't see any reaction so sometimes
I didn't notice that I lose the hearts. Other than that, I guess the
prologue at the beginning looks too long and the design is quite
tiring to read. Maybe making it shorter by putting each sentence in
different scene would be nicer and less boring. So that players are
more intrigued to read it and understand the story. One more thing is
the floating rocks in the dragon scene. I couldn't jump onto it and
whenever the character touches it, the rock disappears. I guess it's a
bug?
Game #3: Adam’s Nightmare
by Matthias Lim Shou En
It's a platform game where the player must go through obstacles by
jumping, climbing and grabbing objects to reach the finish line. I
like the whole simplicity concept but it's I think the buttons are
quite difficult and complicated. I couldn't even pass the first
obstacle where I have to jump and grab a rope to reach the other
part of the land. Maybe it's just my poor skill but I would expect
the game to be easier and simpler in for noobies like me. lol. One
more thing that I found is a bug in the jumping button (spacebar),
sometimes it doesn't work so I need to refresh my browser. Overall
the animation is fine, graphics are smooth and unique. I can't
comment further as I never passed the first obstacle.
- Game Development Idea
Instruction
Outcome
Esther, Michelle, Luisa and I decided that we inverse the gameplay of
Grand Theft Auto (GTA) and create a whole new game. Here's the initial
idea that Esther proposed before we improve the idea:
"WHAT IF we play GTA, but as a good, contributing citizen of the Los
Santos?"
- Method: 3i (Incorprate/Include, Improve, Inverse/Invert)
- Title: GTS (Giving Back to Society)
- Inspired by: GTA (but reversed)
Fig 2.0: Game poster design by Esther & Michelle
Fig 2.1: Games Development Idea Presentation
- Unity: Learning Game Physics
WEEK 4:
This week, we learned to use Unity for the
first time to create a simple game
physics.
Notes
* SAVE both Scene & Project (File<Save project)
* Always choose 2D for the components if you’re making 2D games.
* Any changes you make during play mode will be reset.
* Make a special folder for scripts, open it through Finder using
Visual Studio Code
Fig 2.1: Script settings & Folder
Scripts
* Start: It stops after 1 command
* Update: will not stop and will repeat the commands over and
over again.
* Use // to write comments without affecting anything
* For Movement Speed: GetComponent<Rigidbody2D>().velocity = new Vector3(x,y,z);
Fig 2.1: Character Horizontal Movement Script
Game Physics Outcomes
In today's class, I'm quite happy with what I managed to do in
Unity and I really enjoyed the process. Surprisingly my laptop
did a good job and didn't experience any error during the
practical session. Here's what I managed to do:
1. Make a simple catapult
2. Create command to move the object forward and backward
3. Make the object able to jump twice but not more (NGL this one
was so confusing)
Fig x: Week 4 Exercise,
Unity
- Unity: Learning Triggers & Animation
WEEK 6:
Tutorial & Practical Video
This week, we had online class via Zoom and Mr. Razif taught us many new things that we could do in Unity. We used previous week's file and continue to develop it.
- Note: Collectibles: Check 'is Trigger'
What we created:
- Creating a door (the white box). Animating the door's movement.
- Creating triggers for opening & closing the door. (Create Empty)
- Adding a key icon.
- Adding coins & animating it.
- Enabling the character to collect key & coin
- Coin value
- Adjusting the Game Camera
- Animating the key idle movement & collected movement (when the character reaches it).
Fig x: Week 6 Tutorial & Practical Video
Fig x: Hierarchy
Notes
Outcome
I used different icon images for my exercise because I missed the link that Mr. Razif gave. It took me more than the class time to finish this exercise because I had so much errors in my code. But often times, the errors were so simple such as misspelling and misplacing the object in hierarchy.
But at the end I managed to followed all of the things that Mr. razif taught and this is my final outcome. And I'm soooo happy because I could do it by myself.
Fig x: Week 6 Exercise
Fig xx: Week 6 Exercise, Codes
- Unity: Weapon, Shooting Bullets, Enemy's HP, Shooting/Shot Animation, etc.
WEEK 9:
Tutorial Link: https://www.youtube.com/live/C-D1rmept_E?feature=share
Producing Bullets from the Player's Gun
- Create public GameObject & float
Create public GameObject & float to control the bullets, where the bullet shows up, bullet speed
- Link the bullet GameObject to the bullet prefab in the Assets
- Determining the spawn point of the bullets
- Determining which Computer Key to use (to fire bullets)
Edit < Project Settings < Input Manager < Search for the key (Fire 1 below Vertical) < Write down the Key name in PlayerControl.cs Script
Creating Enemy Object
- Enemy Inspector Settings
Create < 2D Object < Sprites < Capsule < Rename it < Add Rigidbody 2D (Check the freeze rotation X) < Capsule Collider 2D
- Tagging the enemy
Create new tag called enemy < Tag it inside the Inspector
- Enemy Control Script (HP)
Add a script called enemyControl.cs < create public int to write the enemy HP (health/life) < Write down how many HP the enemies have inside the inspector
Fig: enemyControl.cs
Fig: enemy HP
Fig: Rigidbody 2D & Capsule Collider 2D settings in the enemy
Downloading Assets
- Access Unity Asset Store:
Sign In to Unity Account (both in Unity Hub & Website) < Add to My Assets < Open Unity < Download< Import < The file will appear in Assets
Blood Splatter & Destroyed Animation
- How to link effects to the bulletControl.cs
Click bullet prefab in the Assets folder < Drag bulletControl script to the bullet inspector < create public GameObject for effects so it shows up in the inspector < Drag the FX files to the GameObject in the inspector < Write down the codes & commands (Instantiate)
Fig: bulletControl.cs (Instantiate effects)
- How to edit duration of the effects
Open effects file < To see the Particles, Click Open< To edit the duration & delay time, Edit the Particle System in Inspector
Self Destroy (for performed components in hierarchy)
I made a new script (SelfDestroy.cs) dedicated to write self-destroy program. By linking this script to an object, the object will disappear from the scene/hieararchy after it performs its task. I can also write how long the component lasts before disappearing by editing the duration. This is done to the bullet, blood splatter animation, and explosion animation.
Click the object inside Assets or other folder < Drag the DestroySelf.cs script file to the chosen object's inspector
Fig: Destroy Self (to clean components in hierarchy)
Power Up Shows Up if Enemy is killed
- How to Make Power Up Object
Input an image file to asset < Adjust the Size in Screen < Make it as Prefab by dragging it back to Assets < Insert Circle Collider 2D < 'Check is Trigger' < In Animator, check 'Apply Root Motion'
- Link Power Up Object to Enemy Object
In enemyControl.cs, create public GameObject objectToSpawn; < Drag the Prefab file to the Game Object in Enemy object
Fig: Public, Object To Spawn (Power Up)
Fig: Script to make the Power Up shows up After the Enemy dies
- Animating the Power Up Object
Put the Prefab to the Screen < Click Animation < Create new animation, save the file in Animation Folder < Click the Red button < Create keyframes < Turn off the Red Button < Apply to all Prefabs (in Inspector) < Delete the Prefab
Outcome
Fig x: Week 9 Exercise
REFLECTION
Experience
Trying out 2D game physics for the first time in Unity was both
exciting and challenging. It was satisfying and somehow cute to see
my code come to life as objects fell down following gravity and
responded to my keyboard commands for movement. There were so many
errors the first time I tried doing this, but thank goodness my
classmates were angels, they helped me a lot.
Observation
During my first experience with Unity, I observed that the
software's interface can be overwhelming and complex for beginners.
The experience was takes me back to how I felt when I first learned
Adobe Illustrator and Photoshop, but I hope I would get better
throughout the week.
Findings
Based on my experience, I discovered that experimentation and
trial-and-error are essential for learning Unity's tools and
features. Trying out different commands and settings can help to
build an understanding of how the software works. I really need to
take notes when Mr. Razif explained about the codings because it was
quite complex and difficult to digest.
Comments
Post a Comment