Games Development / Task 1

06.04.2023 - 21.04.2023 (Week 1 - Week 7)
Abigail Kartika Darmowinoto / 0350525 / Bachelor of Design in Creative Media
Games Development / Taylor's University 
Task 1 : Game Design Document


    LIST


      PRACTICAL
      <back to top>

      1) Passable door (with trigger by making the door inactive)

      • make cube add 2d box collider
      • check the box is trigger -> later can be passed through (a trigger will be passed and activate something)
      • make empty game object (to make it easier can color it (click on the icon on right panel))
      • from the empty game object - make collider to become the trigger
      • Check the doorTrigger as "is trigger" - then check whether the object can pass through or not.
      • Uncheck the trigger for the door
      • Make C#Script or doorTrigger - create component - new script
      • Script:
      • Drag the door game object to the script
      • Result:

      2) Door Animation
      • Object - Window - Animation Panel
              2.1) Door_idle : no animation - always set as default
              2.2) Door_Open : record - move
      • Go to animation folder, uncheck the loop time
      • Script:
        • Animator anim;
        • also add the second one:
      • Result:
              2.3) Door_Close : record - move 
      • Go to animation folder, uncheck the loop time
      • Duplicate doorTrigger, move
      • Script: (shorter ver.)

      3) Collecting Items
      • Image - drag to assets folder
      • Insert image, box collider, is trigger
      • Script:

      collision means : something like 'reverse', so if the code makes the game object disappear but then you add collision, the on that disappear is the game object that interacts with the coded object.

      4) Collecting Items to Trigger Function 
      • public bool in the character script
      • connect the scripts:
      now each time you want to access from different script just type player and add dot

    • doorTrigger script:
      • assign the character
      • make script to make if collect "item", open "door":
        • in the player script:

      • preview:

      5) the coin method
      • single -> multiply - apply
      • sprite editor:
      important: pivot always centered.

      • make the object prefab assets by dragging it to the assets folder.
      • check is trigger if collectibles
      • create script:
      • make the assets disappear after collected, replace game object.setatice to Destroy(gameObject);
      6) coin counter
      • connect the script first
      • add script:
      • assign character
      • check from console
      • can change into: *so no need to assign character 1 by 1


      7) make door open in certain number of coins:
      • door script
      • nested if inside the key (if any)

      8) adding variables on the unity
      • add the script
      • change value manually on the UNITY
      9) following camera on the character
      • drag camera to character as child layer
      or other way:
      • window - package manager - unity registry
      • Cinemachine - install 
      • right click - cinemachine - 2d camera
      • drag character to follow
      10) visual feedback
      • idle animation, make it not looping
      • another animation (collected), make it not looping
      • sprite: color, under the object collected animation - change the alpha
      • script:
        • access to other script public Animator keyAnim;
      • Assign the player anim
      11) making the gem disappear
      • script
      • destroy script and add duration; Destroy(collision.gameObject, 2);
      • add animation event
      • result:

      WEEK 9 (01/06/2023):

      1) Create empty game object - rename into spawnPoint

      add sprite-circle, add rigidbody2D and circle collider2D
      add as the prefabs

      2) script
      on the player control script add these codes:
      public GameObject bullet;
      public GameObject spawnpoint;
      public float bulletspeed;

      Add Instantiate code under start:
          Instantiate(bullet, spawnpoint.transform.position, spawnpoint.transform.rotation);

      3) To add key command
      under update, 

      Then go to "Input Manager" on UNITY

      4) Add script for the bullet speed:
      public GameObject theBullets;
      theBullets = Instantiate(bullet, spawnpoint.transform.position, spawnpoint.transform.rotation);
      theBullets.GetComponent<Rigidbody2D>().AddForce(spawnpoint.transform.right * bulletSpeed);

      5) Destroying the bullets:
      Destroy(theBulelts,2);
      //2 is basically the second

      or make a script that can be adjusted easily on the UNITY
      Script:
      public class DestroySelf : MonoBehaviour
      {
          public float duration;
          void start()
                  {
                      Destroy (this.gameObject, duration);
                  }
      }

      *for door, make sure to check the apply root motion

      6) Make a new enemy character:
      • Create new sprite - Capsule 
      • Add Rigidbody 2D (Check Freeze Rotation) and Capsule Collider 2D
      • Tag it as enemy and rename as Enemy
      • New Script: bulletControl, put under bullet (to destroy enemy and bullet under collision)

      7) Add enemy HP
      Under enemy - add script named enemyControl
      you can now add enemy health in under enemy.


      WEEK 10 (08/06/2023):
      1) Making a gem power up (movement speed) - instant effect:



      2) Making a gem power up (movement speed) - collected effect:
      - the GemPowerControl script:

      - the playerControl script:



      3) Enemy able to attack
      • make new script under enemy
      • script:


      4) the new bullet
      • images - drag - animation file
      • add circle collider 2D, rigid body 2D
      • make as prefab as usual - delete
      • under the enemy before, drag, and put on bullet.
      5) make the enemy animated
      • create idle position animation (animation, add new) and attack
      • Animator:

      • Remove the shoot(); previously and "Add animation event" on UNITY, add shoot
      • Make bullet spawn so it doesn't collide with the character:
        • empty game object
        • edit the enemy control script, don't forget to assign the bullet



      6) randomizing bullet position:

      7) Character HP
      -player control script
      -wheel blade script

      8) Making a gem power up (invincibility)
      - add sprite
      - box collider 2d, is trigger
      - new script (ShieldControl):

      - edit the wheel blade control script

       - edit player control script:

      WEEK 11 (22/06/2023):
      Today we continued on the practical:

      1) Creating fireball spawning
      - create the assets, again, make it as prefab

      - add the script, which later you can change on the platform

      preview:

      2) Making the fireball spawn place randomized
      - edit the script:

      - preview:

      3) Randomize bullets
      - add 3 bullets

      - add this script

      - preview:

      4) make it fall when character within the range
      • move the invoke within startSpawn
      • on update add the startSpawn
      • add box collider 2d on the spawn trigger component


      INSTRUCTIONS
      <back to top>

      Create your game proposal


      PROGRESSION


      SUBMISSION


        FEEDBACKS 

        Week 4 (28/04/2023):
        • Game 1 seems a bit confusing and have not really strong connection each others
        • Can further improve game 2 even it seems mainstream
        • Can add some Indonesian elements to the game 2
        • Game 3 a bit difficult.


          REFLECTION 

          I'm so excited to finally get into the ideation part of the game. Really looking forward on making the game. Since I'm still learning, I didn't want to force myself to be unrealistic, I want to make myself do a work that's realistic and beyond my skill.

          Comments

          Popular posts from this blog

          How to Create Jump Link