[HN Gopher] Running Pong in 240 browser tabs
       ___________________________________________________________________
        
       Running Pong in 240 browser tabs
        
       Author : pr337h4m
       Score  : 334 points
       Date   : 2025-02-20 19:33 UTC (2 days ago)
        
 (HTM) web link (eieio.games)
 (TXT) w3m dump (eieio.games)
        
       | wedocharlie wrote:
       | The band "Ok Go" did a collaboration music video with google
       | chrome once that had some really amazing synchronization of
       | browser windows with dancers, and kaleidoscope like effects...
       | This reminded me of that.
        
         | wedocharlie wrote:
         | Here's what it looked like:
         | 
         | https://www.youtube.com/watch?v=ISL1GfXwr-o
        
           | Rendello wrote:
           | I was introduced to Arcade Fire back in the day through a
           | similar Chrome experiment:
           | 
           | https://www.youtube.com/watch?v=ReIwYj7BACM
        
       | luma wrote:
       | Delightfully absurd, A+ effort!
        
       | ge96 wrote:
       | really cool, I like how modifiable Chrome can be, looks like this
       | one uses websockets but you can use an extension for tab
       | communication too
        
         | remram wrote:
         | Or just the web storage API
        
           | ashu1461 wrote:
           | and a listener on the storage change then ?
        
       | smithcoin wrote:
       | Love anything made by Nolen. To me it seems like he's hitting the
       | sweet spot of developing single purpose apps/sites that give me
       | nostalgia for what the internet used to be like.
        
       | qingcharles wrote:
       | Obligatory:
       | 
       | https://imgur.com/a/FcYpGz1
        
       | LonelyWolfe wrote:
       | I'm calling it - Doom is next.
        
         | rhgraysonii wrote:
         | I believe that Nolen has already done doom in iPhoto, if you
         | are into that kind of thing.
        
         | eieio wrote:
         | Doom is kind of a pain because:                   * afaik I'm
         | capped at 4 FPS (just how often you can update tabs)         *
         | more of the screen is likely to update on each frame, which
         | requires way more "turning canvases into data urls to update
         | favicons," which is expensive with my current implementation
         | (although I wasn't aware of offscreencanvas, which might help
         | here)
        
           | graypegg wrote:
           | To be fair, doom is also a pain on a calculator[0]/pregnancy
           | test[1]/milling machine[2]/touch bar[3]/PDF document[4]! I
           | think that's part of the fun!
           | 
           | I absolutely love this stuff... I sort of think Doom at 4FPS
           | is... juuuuust in the realm of playable if you've played it
           | before haha
           | 
           | [0] https://news.ycombinator.com/item?id=2251463
           | 
           | [1] https://news.ycombinator.com/item?id=24396780
           | 
           | [2] https://www.reddit.com/r/Doom/comments/ezuw1f/doom_on_cnc
           | _ma...
           | 
           | [3] https://news.ycombinator.com/item?id=13008315
           | 
           | [4] https://news.ycombinator.com/item?id=42678754
        
       | rhgraysonii wrote:
       | I attended Nolen's recent talk at Recurse, and these absolutely
       | mad but fundamentally funny and cool games as one-shots are so
       | delightful.
       | 
       | It reminds me of the older internet, when people would make
       | things just to be silly and have fun. I had some fun last night
       | inspired by some of the stuff he has been posting making a very
       | funny kind-of-quine that outputs its own source code of the page
       | showing it, via BEAM decompilation and some other tricks. I wish
       | I had the time to crank out things like this, and it makes me
       | smile to know that there are people out there creating things in
       | this manner that will just keep things interesting for all of us.
       | 
       | The piece that gets the sort-of quine is here, if anyone wants a
       | laugh
       | https://github.com/notactuallytreyanastasio/blog/blob/main/l...
        
       | eieio wrote:
       | ah hi! I made this! was wondering if this one would appeal to the
       | HN crowd :)
       | 
       | Happy to answer any questions! And here are a couple of scattered
       | thoughts:                   * I'm really interested in what this
       | looks like if you use animations (firefox supports animated
       | favicons) - I could, for example, anticipate future ball
       | positions and create animated SVGs to get a much nicer framerate.
       | * A friend pointed out offline that canvas rasterization
       | (typically) is on the GPU, which is probably why my performance
       | intuitions with my stuttering animation were so wrong         * I
       | am only moderately confident that chrome caps favicon updates to
       | 4 a second; I know there are a lot of different ways to update
       | favicons and I could have missed something here!
        
         | dataviz1000 wrote:
         | > A friend pointed out offline that canvas rasterization
         | (typically) is on the GPU, which is probably why my performance
         | intuitions with my stuttering animation were so wrong
         | 
         | Did you solve it? A great resource is Jake Gordon's blog on
         | simple JavaScript game design. He uses a double buffer front
         | and back canvas game loop.
         | 
         | [0] https://jakesgordon.com/writing/javascript-pong/part1/
        
           | eieio wrote:
           | Sorry yeah I'm talking very specifically about the stuttering
           | that I first saw when making a square move into the tab bar.
           | 
           | I was doing something inefficient (updating all my favicons
           | many times a second), but I didn't really understand why that
           | would cause stuttering in my foregrounded tab. My thought
           | process was that the favicon stuff was happening in different
           | tabs in different threads, and so it didn't make sense to me
           | that the thread in charge of the foregrounded animation
           | should suffer (unless my entire computer had slowed to a
           | crawl and everything was getting slower - but it hadn't).
           | 
           | And my friend's point was just that i was probably GPU-bound
           | and not CPU-bound (or at least I could be) and so I was not
           | thinking about the original problem correctly.
        
         | uranium wrote:
         | As one ridiculous-pong writer to another, I love your work. I
         | really enjoy this kind of technical performance art, both to
         | write and to view. It may also be part of why I juggle: "There
         | must be a harder way to do this."
        
           | eieio wrote:
           | what's your pong game? would love to see it
        
             | WastedCucumber wrote:
             | I was curious too, I guess it must be this one.
             | 
             | https://news.ycombinator.com/item?id=19155205
        
         | adamgordonbell wrote:
         | Love it and man your output velocity is something else!
         | 
         | This, the global cap locks, the bad apple regex, the uuids, and
         | more all since the 1 million checkboxes. I'm impressed with
         | your hustle.
        
           | eieio wrote:
           | ah thanks adam! fun to see you here :)
        
         | OneLeggedCat wrote:
         | Now I want to see Doom in browser tabs.
        
       | sho_hn wrote:
       | _Doom_ port in days.
        
       | aqueueaqueue wrote:
       | Checkboxes now tabs. Always finding a novel place to get those
       | coveted pixels
        
       | nektro wrote:
       | now _this_ is the kind of thing HN was made to showcase.
       | excellent work friend ^.^
        
       | dejawu wrote:
       | A similar exploration by Matthew Rayfield using the URL bar
       | instead of tab favicons:
       | https://www.youtube.com/watch?v=q7GtCLwTmV4
        
         | eieio wrote:
         | Matt's work is a huge inspiration for me!
         | 
         | I definitely had his URL stuff in mind when making this, but
         | it'd been a while since I had actually read through his blog /
         | watched his video. It was really fun to come back to it mid-
         | project and remember that he went in the same "stack windows to
         | get 2 dimensions" direction.
        
       | fitsumbelay wrote:
       | impressive as always
        
       | kvemkon wrote:
       | Reminds me of:
       | 
       | * "Show HN: I saw this mind-blowing experiment, so I made a
       | simple version of it" (25.11.2023)
       | https://news.ycombinator.com/item?id=38413660
       | 
       | * "Synchronize a 3D scene across multiple windows using Three.js
       | and localStorage" (27.11.2023)
       | https://news.ycombinator.com/item?id=38437773
        
       | capitainenemo wrote:
       | WRT firefox and narrower tabs. You can still inspect the browser
       | in firefox, and find the style rule for min tab width, then add
       | it to userChrome.css
       | 
       | There's a few guides out there on this, and I'm sure someone has
       | done one for tab width already.
       | 
       | Maybe that's cheating though.
        
       ___________________________________________________________________
       (page generated 2025-02-22 23:02 UTC)