Always wanted to build a Twitch Extension for Destiny and having worked on the Borderlands 3 ECHOcast, I felt I finally had the experience to realize it.
What it does
Ghost Scan gives viewers access to useful information about a streamer's Destiny 2 profile so they can focus on playing. Streamers also have access to this information via the Creator Dashboard.
The full list of features include:
- Information on the current activity including active modifiers
- Pursuits, which includes the ability to see the full questlines and rewards
- Lore unlocked via triumphs or attached to equipped gear
- All the streamer's triumphs!
The best part is that it works in conjunction with other extensions and viewers can toggle the display and enjoy the stream!
How I built it
I built it with React and Bungie's APIs.
Challenges I ran into
Two of the biggest challenges I ran into were centered around making calls to Bungie's APIs.
I needed way to successfully do an OAuth handshake as the extension needs permission to access certain aspects of the streamer's Destiny profile. I wanted it to be serverless so the process had to work from the Twitch Live Config page.
The Bungie APIs also return a LOT of data so a lot of work was involved to trim it down and send slice it up into a sequence of broadcasts in order to fit within the 5KB/s PubSub limit. A full profile update takes about 8-10 seconds but priority is given to information that is needed to display the UI with less frequently viewed info getting pushed to the back of the queue.
Accomplishments that I'm proud of
I'm quite happy with how the whole profile update loop works. Since there is no dedicated EBS, it does ended up being tethered to the Live Config page, but the hope is that streamers will have the Creator Dashboard open already and I created an incentive by turning this into its own companion app the streamers can also use while they are streaming.
What I learned
Extensions are a lot of work! XD
What's next for Ghost Scan
There are still a lot of bugs with parsing the Bungie API data and there have also been new content releases that have added new features to the APIs that weren't available when I started building this extension. I would also like to work with Ishtar Collective to integrate some of their hard work to offer more lore resources to viewers based on the current activity, etc.
I also plan to spend a bit of time gathering feedback from Destiny streamers that end up using the extension to see where it falls short and how I can improve it.