Color Dodge

Color Dodge Project Description

This is a very simple game, it’s basically copied from my friends smartwatch game so that explains the simplicity.

You dodge and catch circles with certain colors, when you get 10 points or catch a flashing circle you change color. And the circles fall faster the higher your score gets.

I made this as a challenge and it took me 6 hours to, set up the project, code, upload and make the itch page.

What I made

Obviously I made the whole game, it was not technically challenging but it was fun to see how fast I could make something like this.

Project Info

Made with - Unity, C#
Released - 7 January 2025
6 hour solo project

Click here for itch.io

Color Dodge Screenshot 1 Color Dodge Screenshot 2 Color Dodge Screenshot 3

Play Color Dodge

Color Dodge GameManager


public class GameManager : MonoBehaviour
{
    [SerializeField] GameObject m_ballPref;
    float m_spawnSpeed;
    [SerializeField] TextMeshProUGUI m_score;
    [SerializeField] TextMeshProUGUI m_highScore;
    [SerializeField] Score m_scores;
    [SerializeField] GameObject m_startButton;

    private void Start()
    {
        m_scores.m_Score = 0;
        m_spawnSpeed = 2;
        m_scores.m_BallSpeed = 3;
        StartCoroutine(SpawnBalls());
    }

    private void Update()
    {
        m_score.text = m_scores.m_Score.ToString();
        m_highScore.text = "High Score: " + m_scores.m_HighScore.ToString();

        Check if you broke your highscore and set new highscore if you did
        if(m_scores.m_Score > m_scores.m_HighScore)
        {
            m_scores.m_HighScore = m_scores.m_Score;
        }

        Turn on the start button and freeze time if you die
        if (m_scores.m_GameOver)
        {
            Time.timeScale = 0;
            m_startButton.SetActive(true);
        }
        else
        {
            m_startButton.SetActive(false);
            Time.timeScale = 1;
        }
    }

    Spawn the circles with a random amount, random positions (the random color is set in the ball script itself)
    private IEnumerator SpawnBalls()
    {
        while (true)
        {
            int _amount = Random.Range(1, 4 + ((int)m_scores.m_BallSpeed));
            for (int i = 0; i <= _amount; i++)
            {
                int _randomX = Random.Range(-4, 5);
                float _randomY = Random.Range(5.5f, 7);
                Vector3 _ballPos = new Vector3(_randomX, _randomY, 0);
                Instantiate(m_ballPref, _ballPos, Quaternion.identity);
            }
            yield return new WaitForSeconds(m_spawnSpeed);
        }
    }