Chrishanel.psd Profile picture
Jan 14 44 tweets 14 min read
Alright, it's once again time for our traditional deep dive into the #AGDQ2023 broadcast graphics! MASSIVE THREAD COMMENCING
Before I get going, I wanna start off by crediting all the devs on the @SupportClass team, including @Dillon_Pentz, @MeSoSupe, @0xSeldszar, @hoishinxii, our newest developer, Melanie Arnold (who is wiser than all of us by not being on Twitter!)
This is our third mainline GDQ event using Pratchett, our current-gen graphics system. With that level of maturity in the code base, we had the opportunity to try some things we've wanted to do for a LONG time.
A lot of our focus this event was the break screen. The natural flow of a GDQ event means it gets a *lot* of screen time. In the 8(!) years we've been building layouts, this has been an ongoing design challenge to tackle. Break screen overlay from SGDQ 2019Break screen overlay from AGDQ 2017Break screen overlay from SGDQ 2016
The break screen needs to be informative and engaging, letting you know what's coming up as well as what incentives/prizes are still open. But this is the first event where we were really invested in making it *interactive* beyond the virtual crowd and donation/sub alerts. Break screen overlay from AGDQ 2023
The first big project was the Channel Points prediction games. I've always been a fan of channels like Twitch Plays Pokemon, SaltyBet, FTTBattlegrounds, and others that make watching a stream an active experience. This serves as a great way to entertain everyone during setups. Channel points prediction element from AGDQ's break screen,
We made a collection of retro games capable of AI vs. AI play (natively or with a bit of code help) and built a system to automate the entire experience with the help and expertise of @TheOmnigamer, who handled everything on the gameplay side.
We have multiple titles to choose from, and techs can choose one based on the amount of time we have until we need to move on to the next segment, since some games naturally take longer to resolve on average. (Bad News Baseball remains my favorite from the collection.)
We plan to try and do more of these, as well as add it to the GDQ Hotfix break screen- so you should get a lot more opportunities to collect channel points going forward!
The next big feature is our donation display. It's not exactly a secret that one of our primary objectives is to help drive donations, and make the act of donating more special for viewers. The donation display element from the AGDQ break screen, fea
We already do this in a LOT of ways, large and small- years ago we went from updating the donation total once a minute to happening completely in realtime. We're also a lot better about communicating incentives and prizes, and have small popups for every individual contribution.
However, one thing that's always felt like a missed opportunity is the donation total on the break screen. It's the most important metric we have, but it was just kind of... there? Break screen overlay from AGDQ 2019 featuring the older desi
When I first did the mockups for Pratchett's break screen, I randomly sketched up the donation total being paired with a wagon from Oregon Trail, just inching along with every donation. It didn't end up in the initial release, but the idea was still there. Early design sketch of Pratchett's break screen overlay, fea
So, for a couple events, the donation total just looked like this, and it bugged me. A lot. Break screen from SGDQ 2022
So for #AGDQ2023, we revisited the concept and came up with a long list of ideas that we could realistically make. We started with about 20 ideas, but 4 made the final cut and got in the final package: Oregon Trail, MGS3, Monkey Island, and Desert Bus.
The goal with each was to feature behavior that responded to donations. Snake climbs more with every dollar. The wagon moves west and crosses rivers at every 10k milestone. Bugs splat on the Desert Bus windshield. Stan and Guybrush see shooting stars.
On top of that, we wrapped it all in the motif of being different channels that could be changed. There's a cooldown timer to prevent frequent changes, but any viewer can change what's shown for 20k channel points. So far, it's been pretty reliably done when the timer's up.
(Guybrush and Stan also have some random dialogue, and will also react to particularly large donations when they happen. I haven't managed to catch many of these on stream, though. Might have to play with the frequency on those.)
Of course, we didn't leave everything up to chance... Stan and Guybrush from Monkey Island sing "Snake Eater&
So, about this. @Dillon_Pentz and I were spending a lot of time thinking of potential dialog/gags, but I kept thinking about trying to expand the idea of what Stan and Guybrush could be reacting to beyond donations.
GDQ has a storied history of Snake Eater being sung during the event. There's also an OCremix edition of the song that's in the break screen rotation.

Hrm.
Our first idea: if that song played, and Stan and Guybrush were visible, they would sing along. However, we couldn't guarantee sync- the overlays are only told that a new song is playing, it doesn't know where it is in the playback.
Additionally, while I was writing the dialog/singing, I knew I wanted to do more than just provide text strings with durations/pause timings, I wanted to change the size as well as have some lines spelled out.
So what's ACTUALLY happening: instead of rendering HTML, we swap in a video that contains all the dialogue rendered and the song itself. We then override the "Now Playing" graphic at the bottom to show that Snake Eater is playing as if it's a part of the rotation.
And yes, it's true: Most of the tech crew had no idea what was about to happen. They were given a big button, told to press it at the correct time, and to trust us that it would be entertaining.
NOW-- all of that has been a huge success and everyone's loved this new feature, but we still wanna do more. Also, this is a pretty self contained feature, and exists in its own little sandbox with lots of modular things swapped in and out.
Thus, it's our goal to make this part of the presentation open to community contribution. Not just shouting ideas at us that we try and implement -- we provide a repo with rules and all the necessary hooks, you submit a PR, and approved concepts make the actual broadcast.
This is a VERY new idea that we're really excited about. Please stay tuned for more info on this, we should have links and guidelines extremely soon!
Moving onto gameplay layouts now. Our game info box: No more fading elements, everything's on screen at once. Cleaner execution. I like it. Still remains hard to make it work responsively on every possible configuration, but it's doing alright!
For the Spyro 2v2 Lockout Bingo race, we built a new module for displaying a Bingosync board that fit our presentation and added score displays. @MeSoSupe did a great job of untangling some very old code we still had and cleaning it up. Gameplay from AGDQ 2023 featuring Spyro 2: Ripto's Rage alon
The last big thing I wanna talk about is the trackers we made for the Metroid Prime 1+2 Co-Op Randomizer run, because this was the first time we've been able to do something different with our workflow.
In a previous GDQ graphics breakdown (almost exactly a year ago), I mentioned the frustration with the lack of support for our time of motion graphics work. I won't dive too far back into it, but you can read it here:
Well, for these trackers, we finally got to use @rive_app, which allowed me to build all the animation states and transitions myself, each with their own timeline, all the logic handled internally, and it renders in the browser. Marvelous.
Rive still has a couple key features coming (looking at you, text rendering), but I am pretty sure this is going to be a workflow I use a lot more going forward.

This is not an ad. I've just wanted this kind of application support for a LONG LONG time.
I will spare you a more in-depth breakdown of how @rive_app worked for us, because I know @Dillon_Pentz wants to get into that himself from an engineering perspective. I will link that thread here when he posts it
Well, I will share one thing: One quirk meant we had to fake mouse clicking events in order to trigger some behavior. Got the job done.
Going to take a break for a bit and then will start answering questions!

In the meantime, thank you everyone for your continued support of GDQ and the excitement that we get to experience every time we release a new feature. This continues to be some of our favorite work!


All of this is managed by our tracker system, which knows when prizes are available based on the schedule. Nothing has to be toggled manually, which THANK GOD
Yeah, this was noticed by us as well as being visually confusing, and we're gonna move those nameplates away from the cameras in the future

This is a design discussion that could be an even longer thread, but the current package doesn't have a consistent place for hosts that feels right. We're fixing so that going forward they always have a place on screen regardless of number of commentators
Color blindness and other visual clarity comes up a lot! Always a difficult balance when trying to prioritize the legibility of gameplay while also showcasing a firehose of information, and always trying to do better.

For example: The highlight color of nameplate pronouns ended up being way too bright of a color, and the lack of contrast made them too hard to read. We darkened it a couple days into the event
Pratchett is built using NodeCG (nodecg.dev), which handles both rendering the graphics as well as the control panels, server data, and connecting with external data sources. More studios should use open source solutions like these!
This really just comes down to what bandwidth we have and how we prioritize where our dev time goes. We can definitely get more fancy with stuff like the schedule - and we want to - but haven't found the right idea + the free time to implement it

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Chrishanel.psd

Chrishanel.psd Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @ChrisHanel

Jan 14, 2022
Alright, let's do this! #AGDQ2022 broadcast graphics mega-thread! Feel free to throw questions in, I'll do my best to answer at the end...
Tech pipeline: As much open source software as possible. Graphics are built in @nodecg, running inside @OBSProject, communicating through obs-websocket. All of that is free software, and we use it on nearly every @SupportClass project we develop.
So- why the redesign, and why no? Well, for one, it's not just about giving the graphics a new look- the old package ran on the Polymer framework, which went dormant as a project ages ago. That makes upkeep and maintenance extremely difficult.
Read 57 tweets
Jan 14, 2022
Okay, so quick postmortem on the KH2 run. What happened, and how did we recover? WELL.... #AGDQ2022
For a run as complex as this, the runners were using their own tracking software. Those were then connecting to a Heroku server, which passed the data along to a NodeCG instance generating graphics embedded in our main package running at the studio.
Everything was verified as working before the run, and we tested that data was properly being parsed at every step of the journey. The run started, and everything looked great!
Read 12 tweets
Jan 12, 2019
As promised, here's a retrospective on @GamesDoneQuick's broadcast design!

THREAD COMMENCES
The initial goal was to overhaul how information was conveyed to viewers. The old design didn't have a donation total, or any information about donation incentives or prizes. You had to rely on hosts talking about them or looking at the website. No good!
That brings us to our first layout: AGDQ 2015!
Gameplay layouts: 7 (4 standard, 3 widescreen)

A big improvement, but you can tell that I'm pretty new at this. As mentioned a few days ago, I put that bar at the top just to shove a logo and a hashtag into view. That was silly.
Read 61 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(