Technical Implementation of Bilibili's Game Live Streaming Interactive Features: 'Play Together' and 'Help Me Play'
Bilibili’s game live‑stream platform implements interactive features ‘Play Together’ and ‘Help Me Play’ by using Redis ZSET queues, MySQL persistence, real‑time streamer recommendation, ticket‑based purchase flows, state‑machine order handling, and comprehensive monitoring to ensure reliable, scalable viewer‑streamer gameplay collaboration.
This article describes Bilibili's technical solutions for enhancing game live stream interaction through two main features: 'Play Together' (一起玩) and 'Help Me Play' (帮我玩).
The 'Play Together' feature allows viewers to queue to play games with streamers. It uses Redis ZSET data structures to manage waiting and game queues, ensuring atomic operations, uniqueness, and timestamp-based ordering. Operational data is also persisted in MySQL via fact and status tables for reliability and analytics.
To improve matchmaking, a real‑time recommendation system updates streamer lists every minute based on ACU tiers, online status, and missing‑player counts, prioritizing streamers with whom users have previously played.
The 'Help Me Play' module abstracts user purchases as consuming tickets to buy goods and create orders, supported by a goods system, order system, and ticket system, plus auxiliary services such as ticket exchange, high‑availability value systems, and safety controls.
Order lifecycle is managed by a state machine, with gateway APIs funneling through a unified handleOrderStatus method that validates permissions and prevents illegal state transitions. Monitoring, alerting, tracing, offline data analysis, and operational tooling round out the platform’s robustness and continuous improvement.
Bilibili Tech
Provides introductions and tutorials on Bilibili-related technologies.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.