21 comments

  • susam 2 days ago ago

    I often write small userscripts to neutralise hostile or annoying UI patterns. I played the 'Hostile Volume' game for a while. Nice game! After a while, I wondered: if this were a real hostile website, could I write a userscript to make each level happy? Here is the script:

      // ==UserScript==
      // @name  Hostile Volume Winner
      // @match https://hostilevolume.com/
      // ==/UserScript==
      (function () {
        const s = document.createElement('script')
        s.textContent = `
          (function () {
            function visible (id) {
              return !document.getElementById(id).classList.contains('hidden')
            }
            function win () {
              if (visible('victory-screen')) return
              if (visible('instructions-modal')) {
                document.getElementById('start-btn').click()
                setTimeout(win, 2000)
                return
              }
              setTimeout(function () {
                document.getElementById('l13-age-input').value = '01011970'
                window.cancelAnimationFrame(levels[currentLevelIndex].frame)
              }, 100)
              window.setVolume(25)
              setTimeout(win, 3500)
            }
            win()
          })()
        `
        document.body.appendChild(s)
      })()
    
    If you don't have a userscript manager, you can just copy the script between the two backticks and paste it to the web browser's Developer Tools console.
  • jonathanlydall 2 days ago ago

    My favourite bad volume control was in Real Player around 1997 where changing the volume in the application actually changed the global volume of Windows.

  • graypegg 2 days ago ago

    This is not an issue at all, but when ever I come across something like it, I like to poke at the frontend in dev tools a bit. You can pass most levels with `setVolume(25)` in the web console, since that function is just sitting in the document object. That feels like the ultimate volume UI puzzle heh.

  • dsmason321 2 days ago ago

    Level 17 is NOT bugged. The slider is backward and the volume nonresponsive. Its a planned feature.

  • Retr0id 2 days ago ago

    There are two types of volume slider I've encountered thus far, "too logarithmic", and "not logarithmic enough".

  • ua709 2 days ago ago

    I am familiar with this game. I play a variant of it on iOS everyday, sometimes multiple times a day, with my AirPods and iPhone. I'm not very good though. Somehow iOS always wins and finds a hostile volume to initiate playback with regardless of what I do with the UI.

  • xnx 2 days ago ago

    The worst volume control UI in the world (2017): https://news.ycombinator.com/item?id=27819384

  • pimlottc 2 days ago ago

    This works for almost all levels:

       for (i = 0; i < 50; i++) { document.querySelector("#l3-down").click(); }
  • jupin 2 days ago ago

    Laughed out loud but gave up at level 5

  • apublicfrog 2 days ago ago

    Great fun, well done to the horrible person who made it. Apparently my RSS reader leaves the browswr live in the background, as the audio is still playing. Horrible to do on a mobile device. Worst level by far was 17.

  • LoganDark 2 days ago ago

    These mostly seem to be variations of "takes a long time / is tedious" rather than "annoying/fiddly / takes skill / is creatively bad", which is a little disappointing.

  • TheLNL 2 days ago ago

    Finished the game. It was fun to play. I got stuck for a while on the opposite level where the display doesn't update, but was able to go through the rest just fine

  • jimkleiber 2 days ago ago

    Got an error on Level 17, just a heads up.

    Love the game, btw.

  • ironcow 2 days ago ago

    Very interesting idea! Was happy when It was over haha good work!

  • Culonavirus 2 days ago ago

    Ended on the wheel of misfortune. Ain't nobody got time for dat!

  • VerifyID 2 days ago ago

    level 19, after watching the video a wonderful 4 times it doesnt unlock anything to change the volume. the only saving grace setVolume(25) has been patched :(

  • Findecanor 2 days ago ago

    I have encountered the rate-limited spinner (#8) and the self-resizing slider (#5) in real desktop UIs.

    #3 are almost like Google Maps' zooming buttons. They jump around more, making you click on the map itself or swap in/out.

  • burgerone 2 days ago ago

    Prwtty neat. Unfortunately wasn't able to solve the UI desync one :/

  • sourcegrift 2 days ago ago

    Im just happy theres someone out there who cares for masochists.

  • wild_pointer 2 days ago ago

    Hilarious, some of them are easy with the keyboard

  • ahme 2 days ago ago

    Unbearable. 9/10