Skip to content

Commit 3ac3b4c

Browse files
authored
Tweak the boy. (#93)
1 parent b08715a commit 3ac3b4c

7 files changed

Lines changed: 29 additions & 16 deletions

File tree

public/blog/moq-boy/bren.png

-71.2 KB
Loading

public/blog/moq-boy/bren2.png

-74.9 KB
Loading

public/blog/moq-boy/moqboy.png

-31 KB
Loading

public/blog/moq-boy/native.jpg

89.6 KB
Loading

public/blog/moq-boy/pub1.png

-47.1 KB
Loading

public/blog/moq-boy/pub2.png

-42.7 KB
Loading

src/pages/blog/moq-boy.mdx

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ layout: "@/layouts/global.astro"
33
title: "MoqBoy"
44
author: kixelated
55
description: "Using MoQ for REAL-TIME BIDIRECTIONAL STREAMING. Gameboy games!"
6-
cover: "/blog/moq-boy/bren2.png"
6+
cover: "/blog/moq-boy/moqboy.png"
77
date: 2026-04-16
88
---
99
import Boy from "@/components/boy.astro";
@@ -16,7 +16,7 @@ Here's my MoQ copy of [Twitch Plays Pokemon](https://en.wikipedia.org/wiki/Twitc
1616
But there's a dilemma: I don't want to get sued by Nintendo.
1717
So enjoy homebrew games instead lul.
1818

19-
And remember to scroll down and read the actual blog post once you're done GAMING.
19+
And remember to scroll down and read the actual blog post once you're done **GAMING**.
2020

2121
<Boy />
2222

@@ -33,8 +33,8 @@ But I want to first gloat about a secret feature.
3333
A feature so secret, I gloat about it first.
3434
**SAVING MOOLAH**.
3535

36-
When a viewer wants audio and/or video, they issue a `SUBSCRIBE` request to the MoQ CDN.
37-
The MoQ CDN (moq-relay nodes) slurp up all `SUBSCRIBE` requests for the same track and combines them.
36+
When a viewer wants audio and/or video, they issue a `SUBSCRIBE` request to a MoQ CDN.
37+
The MoQ CDN slurps up all `SUBSCRIBE` requests for the same track and combines them.
3838
The end result: the underpowered cloud VM running the emulator gets at most one `SUBSCRIBE` request per track, regardless of viewer count.
3939

4040
By default, a MoQ publisher will only transmit a track if there's an active subscription.
@@ -57,9 +57,9 @@ But we even bigger brain than that:
5757

5858
- If there's no audio AND video subscription, **the emulator sleep**.
5959

60-
That's right, we're not burning through the CPU/GPU unless some eye balls or ear holes will benefit.
61-
This is aggressive; the web player will `UNSUBSCRIBE` to video if you scroll or tab away.
62-
Scroll back up to the demos and you might see a black screen while the encoder/emulator/subscription reinitializes.
60+
We're not burning through the CPU/GPU unless some eye balls or ear holes will benefit!
61+
Try scrolling back up to the demos and you might see a brief black screen.
62+
The player automatically `UNSUBSCRIBE`s when out of view, and if everybody does it, then no more Mr. Emulation.
6363

6464
<figure>
6565
![bigger bren](/blog/moq-boy/bren2.png)
@@ -148,15 +148,15 @@ We now have a "bidirectional" stream by using two unidirectional streams.
148148
But why not build bidirectional streams into MoQ proper?
149149
Well it's because of business logic you nerd.
150150

151-
This demo uses anarchy, where the broadcaster chooses to SUBSCRIBE to **ALL** players.
152-
Your flesh mangling robot might want lockout, where the broadcaster chooses to SUBSCRIBE to **ONE** player.
153-
Or maybe it gains sentience and doesn't want to SUBSCRIBE to **ANY** pathetic humans any longer.
151+
- MoqBoy uses anarchy, where the broadcaster chooses to SUBSCRIBE to **ALL** players.
152+
- Your flesh mangling robot might want enforce lockout, where the broadcaster chooses to SUBSCRIBE to **ONE** player.
153+
- Or your flesh mangling robot has reached AGI (Sam be proud) and doesn't want to SUBSCRIBE to **ANY** pathetic humans any longer.
154154

155-
And as a perk, you can easily fan out controls just like any MoQ track.
156-
Multiple robots can subscribe to the same `controls` track, ex. to listen for a shared kill switch.
155+
One perk of unidirectional streams is that they easily fan out.
156+
**Multiple** robots can subscribe to the **same** `killswitch` track.
157157
They obviously will ignore it, but the thought counts.
158158

159-
It's also just easier to scale a protocol that ALWAYS fans out.
159+
It's also just easier to scale a protocol that **ALWAYS** fans out.
160160
We're not in the business of adding business logic to the relay to merge JSON blobs or some other nonsense.
161161
Your application is responsible for implementing fan in.
162162

@@ -173,10 +173,23 @@ If you're too lazy to ask AI, here's the relevant folders:
173173
- [JS player](https://github.com/moq-dev/moq/tree/main/js/moq-boy).
174174
- [Web/ROM stuff](https://github.com/moq-dev/moq/tree/main/demo/boy).
175175

176+
The [Software Mansion](https://swmansion.com/) folks are hard at work on React Native bindings.
177+
Here's a sneak peak of this MOQ BOY demo running on a real phone!
178+
179+
<figure>
180+
![native screenshot](/blog/moq-boy/native.jpg)
181+
<figcaption>
182+
Definitely the future of gaming.
183+
</figcaption>
184+
</figure>
185+
186+
Definitely hit them up if you want MoQ on phone.
187+
Or use the open source `Rust -> C/Kotlin/Swift/Python` bindings yourself!
188+
176189
## A Real Demo
177190
So I know this looks like a fun emulator side project, but I swear it's not.
178-
This is meant to be a DEMO of how you should use MoQ for robots, drones, and other murder machines.
179-
Just replace the GameBoy emulation with REAL LIFE via a camera feed.
191+
This is meant to be a DEMO of how you should use MoQ for robots, drones, and other ~murder~ machines.
192+
Just replace the GameBoy emulation with REAL LIFE via a camera feed, nobody will be the wiser.
180193

181194
<figure>
182195
![weapon of mass destruction](/blog/moq-boy/moqboy.png)
@@ -186,7 +199,7 @@ Just replace the GameBoy emulation with REAL LIFE via a camera feed.
186199
</figure>
187200

188201
Also, I've started contracting as a way of getting MoQ pilots off the ground (literally and figuratively).
189-
My primary goal is expand the MoQ ecosystem, which means most of what I do needs to be open source.
202+
My primary goal is expand the MoQ ecosystem, even if it means signing NDAs.
190203

191204
Email me at `me@kixel.me`, or DM on [Discord](https://discord.gg/FCYF3p99mr) if you want:
192205
- some advice on how to use MoQ.

0 commit comments

Comments
 (0)