private TopGamesInfo GetTopGamesData()
    {
        // create web request form
        var request = WebRequest.Create(url);

        request.Method  = "Get";
        request.Timeout = 12000;
        request.Headers.Add("Client-ID", clientID);

        // get response from API
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        // get data stream from API
        Stream dataStream = response.GetResponseStream();

        // open data stream
        StreamReader dataReader = new StreamReader(dataStream);

        // read data stream
        string data = dataReader.ReadToEnd();
        //Debug.Log(data);

        // transform JSON into a serialized object
        TopGamesInfo jsonData = JsonUtility.FromJson <TopGamesInfo>(data);

        //Debug.Log(jsonData.data[0].name);

        // close streams
        dataReader.Close();
        dataStream.Close();
        response.Close();

        return(jsonData);
    }
    private List <string> GetGameNames(TopGamesInfo jsonData)
    {
        // make sure previous list is cleared to prevent duplicates when refreshing
        gameNames.Clear();

        // loop through serialized JSON data for game names and add to list
        for (int i = 0; i < jsonData.data.Count; i++)
        {
            gameNames.Add(jsonData.data[i].name);
        }

        return(gameNames);
    }
    private Dictionary <string, string> GetGameDictionary(TopGamesInfo jsonData)
    {
        // make sure previous dictionary is cleared to prevent duplicates when refreshing
        gameDictionary.Clear();
        gameDictionary.Add("0", "Null"); // add entry for null (for use in future builds)

        // loop through serialized JSON data for game ids and names and add to dictionary
        for (int i = 0; i < jsonData.data.Count; i++)
        {
            gameDictionary.Add(jsonData.data[i].id, jsonData.data[i].name);
        }

        return(gameDictionary);
    }
    private void LoadTopGames()
    {
        // load serialized JSON data
        TopGamesInfo jsonTopGames = GetTopGamesData();

        // method calls to parse serialized JSON data
        GetGameIDs(jsonTopGames);
        GetGameNames(jsonTopGames);
        GetGameDictionary(jsonTopGames);

        // **setup event system in future**
        // send out event signal that top games have been refreshed
        //topGamesRefreshed.Invoke();

        Debug.Log("Update top games");
    }