• SeedyOne@lemmy.ca
    link
    fedilink
    English
    arrow-up
    233
    arrow-down
    1
    ·
    1 year ago

    Remember that time a random player DRAMATICALLY decreased load times for GTA online after finding bad code that preloaded TONS of game assets? After like, a decade?

    Pepperidge Farm remembers…

    • seang96@spgrn.com
      link
      fedilink
      English
      arrow-up
      67
      arrow-down
      3
      ·
      1 year ago

      I believe it was a CSV file of every item in all of the shops (comma separated values) and it was being read and stored into memory single threaded so it was maxing out a single core on the CPU.

      • JackbyDev@programming.dev
        link
        fedilink
        English
        arrow-up
        62
        ·
        1 year ago

        JSON, and it had more to do with how they were checking string lengths. But yeah, the general story is that a random dude fixed massive problems with the text parsing.

        • seang96@spgrn.com
          link
          fedilink
          English
          arrow-up
          32
          ·
          1 year ago

          Found an article that details it again since it was a fun read at the time. Looks like it was 10MB json file and the method to read the lines used the expensive length function you mentioned. It also had other simple optimizations too.

          • ipkpjersi@lemmy.ml
            link
            fedilink
            English
            arrow-up
            7
            ·
            edit-2
            1 year ago

            Pretty funny that because of all their microtransactions being stored in a JSON file being loaded into memory, that ended up making their game more slow and annoying and frustrating to play.

            I am super curious if the devs knew about this issue but it just wasn’t fixed because it wasn’t given priority by management, or if the devs genuinely had no clue about this?

            The even weirder and funnier thing is I’ve worked with larger JSON files day to day at my job with a much smaller scale than Rockstar/GTA, although I guess it depends on how you work with the files and the fact they were checking string lengths for literally every single piece of data etc.

        • seang96@spgrn.com
          link
          fedilink
          English
          arrow-up
          7
          ·
          1 year ago

          Yeah json actually sounds better. Unfortunately it’s still a text file that they were importing the entire thing into memory. Probably worse than CSV since they were probably serializing each item from string into objects. They definitely did it in one of the most laziest ways possible though I bet it worked at the time of development and the vendors probably had very few items.

        • Appoxo@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          1
          ·
          1 year ago

          Not worth to assign a dev to find a bug if the player can just do a toilet break and keeps on generating memes which are free publicity.

    • cordlesslamp@lemmy.today
      link
      fedilink
      English
      arrow-up
      17
      ·
      1 year ago

      Are you saying the INSANE GTA Online load time is fixed now?

      Back in the old day, I literally just throw my hands up and said “I can’t wait for this shit anymore, I don’t have all day” then rage quit and delete the game.

      • dangblingus@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        6
        ·
        1 year ago

        Rockstar paid the guy like 50K or something for discovering it, and then it was apparently implemented into GTA online. Too bad I quit playing that time black hole years ago.

        • cordlesslamp@lemmy.today
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          I watched a YT video about this and they said the guy was paid 10K (way too low imo), a Google search shows different numbers everywhere so it’s hard to confirm. But at least the guy got paid, for sure.

          As far as I’m understanding it, the game was using a single threading process to load every single items in the game one by one (over 10 thousands in total), then checking again for duplicate.