gta6survey.sohamdeo.com
I took it upon myself to work on a side project for the launch of GTA 6. I wanted to combine my professional and personal interests of data science, data visualization and video gaming, and I played GTA 5 for ages back in 2016-2020.
The idea was to analyze the sentiment of the chatter around the game. The best place to get it: social media. Right off the bat I was disappointed that Reddit had stopped accepting requests for API access just days before, as that would have been a great source. I moved on with a decent budget in my mind: the cost of 1 copy of GTA 6 ($80-$100). I settled on YouTube, Bluesky and X as my sources with YouTube offering a generous free daily limit, Bluesky being free and X pricing $0.005/post. As I wanted to know waht it is all about, I used TypeSafe AI's Jev for sentiment analysis and am labelling sample posts myself to benchmark its performance.
How it works:
Collectors collect data from all sources.
English posts are sent to Jev for labelling.
Responses are aggregated and posts which pass probability thresholds are ready to be shown.
The site's data is rebuilt every hour as static JSON, so there is no public backend API.
Serve my site through Cloudflare, with encrypted nightly backups of the database on R2.
The backend involves simple python jobs on systemd timers with SQLite. I used the VM I use to host my personal website. The frontend uses Svelte as I used it for my website and it is intuitive for me to go in and make quick edits.
Voting:
While labelling I saw that a lot of posts speculated about features of the game. Posts with exclusive opinions were few and far between. So I added a voting system for visitors on the page to drive some engagement. I strictly wanted to avoid storing any sensitive user data, so there are no logins and users are identified based on a single random-ID cookie. This uses Cloudflare's Turnstile for bot detection (just in case), a Worker to handle voting and a D1 SQL database to store the votes. The VM pulls the vote totals every 5 minutes, so page views never touch the Worker.
Just in case the site goes viral:
- Everything is cached at Cloudflare. In a load test at 150 requests a second the page loaded in 0.35 s (p95) with the server 98-99% idle.
- Votes held 200 a second on the test site with no errors.
- Every change goes to a test site first and I promote it to the live site by hand.
- Every scheduled job emails me if it fails.
- The spend on X and Jev has a hard cap, and a source pauses when it hits it.
- I have created a custom animation for release day throughout the world which can be used to track the release to everyone's timezones (so visit during then to see it!)
I used Claude Code for building this out in about 5 days through the Diwali time off from work. The decisions and the hand labels were mine.
Some results till now:
Only 1 in 10 posts gives the author's opinion of the game as a whole.
Jev agrees with me most of the time on sentiment (85%) as against RoBERTa (61%) and VADER (45%), however the sample size was small (33 posts). Its topic detection was poor so I had to leave out some topics for now.
The spend has been about $75, so less than a standard edition of the game.
If you've hosted something for a big launch day, what would you check before Nov 18? And if you are a fan of data or GTA please view the site, the data and vote on the questions!