JUNE 3 → JUNE 6 – 2024

Tasks

Client Communication

  • Met with our client on Monday to accommodate with his wish to be up-to date every monday.
  • He wanted to see videos of an animation experiment we proposed. We would be using AI powered video to animate the characters.
  • Another request was for us to have the papers in scene two be actual rules. This was something that we had asked about when we originally started work on the interaction and it was not necessary then. This made it a bit annoying to hear about it being important now.

Technical Developments

  • Finalised game resetting
    • Managed to implement game resetting, the player can now tap five times in the top-right corner to open the menu and switch languages or reset to main menu.
      • An issue still persists where the voice over keeps playing if it was active.
  • Refined flower seed choice with visuals and animation
    • After selecting the preferred flower, the pack now moves to the middle and after that will play an ‘opening’ animation. Animation was made by Yonah. (see video below)
    • I came up with the idea to do an opening animation and asked Yonah if he could implement it, due to some struggles I also provided an example. (see below)

Double Diamond

My development this week was based around tying up loose ends and providing the player with a way to reset their game as well as upgrading the visuals in some parts.

Define

The main issue I had to tackle in regards to the game reset was getting it working in my existing setup.

Another problem I was tasked with fixing was making sure the flower pack looked good, I decided to use code to do the animation instead as that was more flexible in my opinion.

Develop

I eventually managed to do so by separating my StartGame() method I used in the GameManager and allowing it to be called from other scripts. This way I could control when to start a new game and take the appropriate measures.

To fix the problem of having to animate the packs moving to the middle in an efficient manner I decided to use a custom script. This would make it easier as all packs can use the same script instead of having to animate them individually. (see code below)

Deliver

These changed weren’t communicated externally but they were shown to my team members for feedback.

Plan

Next week I’ll work on improving the game resetting, implementing the final interactables for the other scenes, implementing the art for the final scenes and (depending on the client) importing the Dutch voice overs.


Research

No research worth mentioning was conducted this week.


Reflection

The communication with the client got more tense this week, which was not of benefit to any of us and neither to the project.

Other than that I am happy with the additions I was able to make. The flower pack interaction really improves the whole feel of the forest scene and the game reset is a valuable addition and definitely something I should have thought of sooner myself.

Media & code

Example animation I provided to support my idea.
Final animation in game, with the MoveToMiddle script attached.
public event Action OnMiddleReached;1

protected void Update()
    {
        if(Input.GetKeyDown(KeyCode.Alpha8))
        {
            StartMoveToMiddle();
        }

        if (moveToMiddle)2
        {
            rectTransform.anchoredPosition = Vector2.Lerp(rectTransform.anchoredPosition, targetPosition, speed * Time.deltaTime);

            if (Vector2.Distance(rectTransform.anchoredPosition, targetPosition) < 0.1f)
            {
                rectTransform.anchoredPosition = targetPosition;
                moveToMiddle = false;
            }
        }
    }
    /// <summary>
    /// IEnumerator to reset the game and instantiate new environments.
    /// </summary>
    /// <returns></returns>
    public IEnumerator ResetGame()3
    {
        trashProgress.ResetScore();

        yield return new WaitUntil(imageTracking.EnvironmentsAreRemoved);

        imageTracking.RemoveEnvironments(false);

        SetSpawnablePrefabs();

        List<GameObject> newPrefabs = imageTracking.SetSpawnablePrefabs();
            GameManager.Instance.modifiableScenes[i].sceneEnvironmentPrefab = newPrefabs[i];
        }
        
        startSceneIndex = 0;

        SetActiveScene(startSceneIndex);

        AudioManager.Instance.StopAllVoiceOvers();

        DeactivateAdditionalObjects();

        mainMenuUI.SetActive(true);
    }
  1. Added an event that could be subscribed to, this way the rest of the scene will only start playing after the pack has reached the center. ↩︎
  2. Bool that could be changed through a method, after which the object will begin it’s lerped move towards the center of the screen. ↩︎
  3. Added method to reset the game, this will go through various scores and settings to reset them as well as instantiating new versions of all scenes. ↩︎