Bachelor of Design Creative Media Taylor University
Game Development - Final Project & Portfolio
Get link
Facebook
X
Pinterest
Email
Other Apps
-
02/07/2025 - 23/07/2025 / Week 11 - Week 14
Velicia Raquel Dewi Setiawan | 0369188 | Bachelor of Design (Honours) in Creative Media
Game Development
JUMPLINK:
Lecture
Instruction
Final Project & Portfolio
Feedback
Reflection
1. LECTURE
2. INSTRUCTION
3. FINAL PROJECT & PORTOFOLIO
Description
1. Final Project – Playable Game – 30 %
Students will integrate their art asset to their game development and produce a fully functional and playable game.
2. E-Portfolio - 10 %
Students describe and reflect on their social competencies within the design studio context, supported by evidence. Reflect on how to empathize with others within group settings, interact positively within a
team and foster stable and harmonious relationships for productive teamwork. The reflective writing is part of the TGCP
Requirements
1. Unity Project files and Folders.
2. Video Capture and Presentation of the gameplay walkthrough
3. Game WebGL Build
4. Blog post for your reflective studies.
1. Process
Folder - Google Drive (where i got the file from gawai but it didnt get the update yet)
I finally managed to open the Unity file Gawai gave a while back. Turns out I just needed to download the same Unity engine version she was using. Without the right version, the background kept turning pink, which confused me at first.
Fig 3.1 Attempt to Open File Week 16 5/08/2025
Now that it's working, I can start helping the others with the parts of the coding that are still missing. This is my attempt to support them the best I can. Between the three of us, I’m the one with the least experience in Unity, so I’m still trying to catch up. I didn’t get to follow the tutorials earlier because I couldn’t even open Unity back then. But now that I can, I’ll do what I can to contribute properly.
I asked them what code function they need right now, and I’ll try to do it in my Unity. I’m posting the whole code since Gawai asked me for the tutorial on how to do it, and so she can copy and paste the code from here.
FOR THE ENEMY CHANGING SKIN AND STOP
Replace the EnemyAI code with this:
using UnityEngine;
using System.Collections;
using Platformer.Mechanics;
public class EnemyAI : MonoBehaviour
{
[Header("References")]
public Transform player;
public Animator anim;
[Header("Detection Settings")]
public float detectionRange = 8f;
[Header("Charge Settings")]
public float anticipationTime = 0.8f;
public float chargeSpeed = 10f;
public float chargeCooldown = 2f;
[Header("Damage Settings")]
public int damageAmount = 1;
[Header("Health Settings")]
public int maxHealth = 6; // Changed to 6 so 3 hits (2 dmg per hit) = full transform
private int currentHealth;
private Rigidbody2D rb;
private bool isCharging = false;
private float nextChargeTime = 0f;
private Collider2D col;
private bool hasDamagedPlayer = false;
private bool reachedFinalSkin = false;
void Start()
{
rb = GetComponent<Rigidbody2D>();
col = GetComponent<Collider2D>();
currentHealth = maxHealth;
if (anim != null)
anim.SetInteger("StateIndex", 0); // Start as Sketch
After you save this, you’ll probably see a pop-up below in Unity:
(DO NOT CLICK YES OR NO, CLICK THE X BUTTON ON TOP INSTEAD. Every time this shows again, click X. If you click Yes or No, the project cannot be played—it will break.)
Pop-up message: Some of this project's source files refer to API that has changed. These can be automatically updated. It is recommended to have a backup of the project before updating. Do you want these files to be updated?
→ Assets/ForgotenProject/Enemies/Enemy 1/EnemyAI.cs
For the Animator scene, you need to set it up as below and put in the appropriate animation:
Fig 3.2 Enemy Animator Scene Week 16 5/08/2025
Add in the parameter: top left click the +, pick "int", rename it to "StateIndex", keep it at 0.
Add another parameter: top left click the +, pick "bool", rename it to "reachedFinalSkin", leave it unchecked.
Fig 3.3 Enemy Animator Scene Week 16 5/08/2025
Click the transition from sketch idle to line idle. In the Inspector bar on the right, under Condition, click +, then click the transform that turns into a dropdown, pick "StateIndex", and put in 1.
For the rest of the transitions that use line animation, also add "StateIndex" = 1.
Fig 3.4 Enemy Animator Scene Week 16 5/08/2025
For the transition from line idle to color idle, add "StateIndex" = 2.
For the rest of the transitions that have color animation, also add "StateIndex" = 2.
Fig 3.5 Enemy Animator Scene Week 16 5/08/2025
Add an empty for the final idle as the "stop". Add "StateIndex" = 3.
Also, the changing skin is still very, very wonky. But Gawai told me it’s okay for now—it’s probably just the skin animation issue, and she said she can fix it on her side later.
FOR THE NPC QUEST GIVER
Add objective bg, I get this from Drive Tracy UI Art.
Right click the player UI - Add UI - Legacy - (Text), not the Text (Mesh Pro), rename "QuestlogText", change color, position, size and stuff. I fill with "talk to poelpe".
Add Text (Mesh Pro), rename "Interaction Text". I filled it with "press E to interact", make it not visible (uncheck the thing beside the name in Inspector bar).
Fig 3.9 Player Ui Week 16 6/08/2025
Add the NPC sprite in scene.
Add component Rigidbody2D - set Body Type = Kinematic.
Add component BoxCollider2D - set Is Trigger = checked.
Add component NpcQuestGiver script - add the Interaction Text.
Make SCRIPT
Rename "NpcQuestGiver", copy paste below.
using UnityEngine;
public class NPCQuestGiver : MonoBehaviour
{
public GameObject interactionPrompt; // Optional UI like "Press E to talk"
private bool isPlayerNearby = false;
private bool questAccepted = false; // Prevents re-accepting the quest
void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
isPlayerNearby = true;
if (interactionPrompt != null && !questAccepted)
interactionPrompt.SetActive(true);
}
}
void OnTriggerExit2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
isPlayerNearby = false;
if (interactionPrompt != null)
interactionPrompt.SetActive(false);
}
}
void Update()
{
if (isPlayerNearby && !questAccepted && Input.GetKeyDown(KeyCode.E))
{
Debug.Log("Quest accepted!");
QuestManager.Instance.AcceptQuest();
questAccepted = true;
if (interactionPrompt != null)
interactionPrompt.SetActive(false);
}
}
}
Make empty GameObject
Rename "QuestManager" (add it GameObject), copy paste below.
Fig 3.10 QuestManagerGameObject Week 16 6/08/2025
using UnityEngine;
using UnityEngine.UI;
public class QuestManager : MonoBehaviour
{
public static QuestManager Instance; // Singleton instance
public int enemy1Kills = 0;
public int enemy2Kills = 0;
public int enemy1Target = 10;
public int enemy2Target = 8;
public Text questLogText; // Assign this in the Inspector
private bool questAccepted = false;
void Awake()
{
if (Instance == null)
Instance = this;
else
Destroy(gameObject);
}
public void AcceptQuest()
{
questAccepted = true;
UpdateQuestLog();
}
public void AddKill(string enemyTag)
{
if (!questAccepted) return;
bool updated = false;
if (enemyTag == "Enemy1" && enemy1Kills < enemy1Target)
{
enemy1Kills++;
updated = true;
}
else if (enemyTag == "Enemy2" && enemy2Kills < enemy2Target)
if (enemy1Kills >= enemy1Target && enemy2Kills >= enemy2Target)
{
questText += "\n✅ Quest Complete!";
}
questLogText.text = questText;
}
}
I still can’t get the quest to update after killing the enemy. I’ve tried to make it work, but it still doesn’t count the kill properly. At least the base system is kind of there already.
This week, I finally managed to open the Unity file Gawai gave me. I realized the pink background issue was because I didn’t install the correct Unity version. After fixing that, I was able to help more with the project. I tested the enemy AI, added the NPC quest system, and tried putting both into the scene. Even though I’m not that experienced, I still tried my best to follow tutorials and understand how it all worked.
2. Observation
I noticed many of my bugs came from using the wrong Unity version or missing references. Once I fixed that, things started working better. Talking to Gawai and Tracy helped a lot—I understood more about how animations and quest systems worked. The enemy skin-change is still a bit broken, but Gawai said it’s okay and she can fix it later. That made me feel more at ease.
3. Findings
I found that testing directly in Unity helped me learn faster than just watching tutorials. I understood how animations work using StateIndex and how to detect player input for quests. Even though the quest doesn’t update when killing enemies yet, the base system is there.
03/02/2025 - 11/03/2025 / Week 1 - Week 5 Velicia Raquel Dewi Setiawan | 0369188 | Bachelor of Design (Honours) in Creative Media Information Design JUMPLINK: Lecture Instruction Exercises Exercise 1: Quantifiable information Exercise 2: L.A.T.C.H infographic poster Feedback Reflection 1. LECTURE Week 1: Types of Infographics Infographics help people understand information faster by using visuals and text together. They make information clearer, more interesting, and easier to remember. There are different types of infographics, each with its own purpose: List Infographics – Organize information in a list format with pictures or icons, making it more visually appealing and easier to scan. Fig 1.1 List Infographics, Week 1 (04/02/2025) Statistical Infographics – Use charts, graphs, and numbers to present data in a way that is easy to understand at a glance. Fig 1.2 Statistical Infographics , Week 1 (04/02/2025) How-to Infographics – Show step-by-step guides using...
19.11.2024 - 24.12.2024 / week 9 - week 14 Velicia Raquel Dewi Setiawan | 0369188 | Bachelor of Design (Honours) in Creative Media Advanced Interactive Design JUMPLINK: Lecture Instruction Task 3 - Completed Thematic Interactive Website Progress Final Submission Feedback Reflection 1. LECTURE 2. INSTRUCTION 3. Task 3 - Completed Thematic Interactive Website 1. Progress Loading screen This one is not too hard. I did have to change the middle white circle to the bottom so the anchor is on the bottom, allowing me to change the shape up and down, while the bottom bar stays in place. Then, it just took spacing in different keyframes and adding a shape tween for it. I also added the fade-in and fade-out for them. Fig 1.1 Loading Screen Animation , Week 13 (17/12/2024) Fig 1.2 Loading Screen Fade Out , Week 13 (17/12/2024) Video The beginning process of the web was, of course, putting the video in first and following the tutorial on YouTube, which worked just fi...
Comments
Post a Comment