619 comments

[ 2.5 ms ] story [ 376 ms ] thread
"Another great neal.fun joint. It made me miserable!"
(comment deleted)
Can someone explain me the point?
It falls under the category of "incremental games" that are generally simple but addicting due to the dopamine release from watching those numbers go up
For me, it causes headaches after a while due to the huge amount of animations running in parallel.
Yeah, that's on purpose. It's meant to overstimulate you quickly
It's a form of digital art meant to highlight the absurdity of the modern internet. Being overwhelmed by all of the forms of multimedia stimulation to finally escape to the ocean and appreciating simplicity is the point
It's a parody.

The whole genre of clicker games is a parody to start with, but this is more parody than most.

The genre exists in a weird place. Progress Quest is maybe the start, and then you get Cow Clicker, which was definitely a parody but took off because everyone thought it was funny, and then Wikipedia tells me AdVenture Capitalist started as a parody but then became a popular and profitable game. And that's kind of the problem with the genre: it's kind of artistically meant as a parody or a joke, but people keep liking them and wanting more, and now it's a real genre, and a few of the games (like Paperclips) have a lot of artistic value far beyond the initial "haha it's not much of a game" joke.
This is the stupidest thing - why am I so addicted to it?????

Neal.fun has clearly hacked my brain. it is too much fun and I don’t know why.

I really enjoyed the animation for seeing how much each button press was worth

setInterval(() => { document.querySelector('.main-btn-wrapper button').click() }, 10)

helped have me save my trackpad

Fantastic encapsulation and commentary on the modern web and attentionspace.

There's certainly better ways to do this, but here's one way to automate 1000 clicks from the console:

  for (let i = 0; i < 1000; i++) {
    document.querySelector('button.main-btn-pretty').click();
  }
Automating this art piece probably also says ... something.
a fun way is to resize the window to be super tiny and the DVD Bounce really gets going into the millions
Good one. Sounds like a geiger counter.
Infinite version:

let button = document.getElementsByClassName('main-btn');

let clicker = setInterval(() => button[0].click(), 1);

To stop, use this:

window.clearInterval(clicker);

> Fantastic encapsulation and commentary on the modern web and attentionspace.

This is why I quit Hearthstone even though I never spent a dime on it. I realized I had been habituated into playing it every day. I started feeling like a lab rat trained to push a button for a reward.

Hahaha yeah! Me too! Good thing I escaped that!

Now back to my coding job, I really have to focus and push enough of these buttons or I’ll get fired and won’t get my pay

...now back to my hourly check of HN frontpage. Gotta be diligent and keep up with the industry news.
That's one of the things that makes Stimulation Clicker so good, by being exposed to the most extreme version, it helps you identify other engineered attention grabbers in everyday life.
> I realized I had been habituated into playing it every day

So like a hobby?

Did you have fun playing it?

(comment deleted)
A hobby is something you’re supposed to do for fun, not out of habit.
It’s when you feel guilt or fomo for not playing every day that it becomes a problem. Many games like this.
Cookie Clicker taught me this about Destiny and Destiny 2 as well.

I got a lot of enjoyment out of those games - and they were partly the backdrop to socialising online with IRL friends who didn't live close to me - but at some point the absurdity of them became too obvious and we stopped.

"moved on" - to Call of Duty.

> This is why I quit Hearthstone even though I never spent a dime on it.

Good news, you now have time to pick up The Bazaar instead! (joke aside, it's quite fun, a lot more chill, and not nearly as exploitative as Hearthstone)

Running it async will prevent the main screen from lagging:

  (async () => {
    const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
    for (let i = 0; i < 10000; i++) {
        document.getElementsByClassName('main-btn')[0].click();
        await delay(5); // 5 ms sleep
    }
  })();
If you're already using setTimeout, why not just use it directly?

    function clickLoop() {
        document.querySelector('.main-btn').click(); 
        setTimeout(clickLoop, 50) 
    }
That's an infinite loop.
(comment deleted)
Breakable by `clickLoop = null`.
What's all this overengineering and waste creating timeouts?

Why not just use setInterval?

    let interval = setInterval(() => document.querySelector('.main-btn').click(), 50) 
Then

    clearInterval(interval)
to stop
How could you be so wasteful traversing the DOM tree every time to find .main-btn? Shame on you.
Or use requestAnimationFrame to run infinitely at ~60fps

    window.requestAnimationFrame(function clickButton() {
        document.querySelector(".main-btn").click()
        window.requestAnimationFrame(clickButton)
    })
This doesn't seem to logarithmically scale when you get the click percent increase upgrade, while the other code does.
7i67i76i76i76i798778kiki87778uuuuuuuujjjjjjjkkkkkkkk
You could shorten it by using $('.main-btn').click()
Automate that bitcoin!

```

setInterval(() => { let max = 100; while(max-->0) { let price = +document.querySelector(".last-price").textContent.trim().slice(1).replace(",","").split("\n")[0]; if (price > 20000) { document.querySelector(".stock-sell").click(); } else if (price < 10000) { document.querySelector(".stock-buy").click(); } else { break; } } })

```

Automating it is the most fun part of these silly games. Here's a bash script to do it on mac (brew install clickclick first)

    while true; do
        cliclick c:.
    done
> Automating this art piece probably also says ... something.

if you do that you're not really experiencing it

To everyone who is doing this:

The only person you are cheating is yourself!!!

Short-circuiting a clicker game (and all other forms of nullifying Skinner boxes) is self-care.
Just go into developer mode and just break on a line like so:

    r.sps && r.purchased && this.addStimulation(r.sps \* n, r.id)
and run

     this.addStimulation(10000000000,r.id)
and resume.
I did the same exact thing and then wanted to post it into the groupchat then see this.

1000 iterations too!

Why are we like this XD

Nice! I’ve been playing Star Trek Fleet Command the past few days and have been wanting to build a silly clicker game to mock/mimic some of the game’s aspects and this has given me inspiration.
I do not like how enjoyable this was.
the muckbang video, I wish I could get rid of. ended up just muting the entire tab.
well I cheated and was immediately overstimulated
Wow. Too much fun. My eyes/head hurts. Finally went to the ocean in the game.
My game froze up when I bought that upgrade. Not sure if that's by design or it might have been an internet hiccup. What happens when you go to the ocean?
It’s just the end credits with a soothing ocean video in the background https://imgur.com/a/eNwfBO6

It was too addictive. My eyes still hurt !!!

(comment deleted)
Very sad, well done.
For those of you loving this, a classic: https://orteil.dashnet.org/cookieclicker/
Cookie Clicker got me into programming back in the day! Super simple structure (back then) and fun way to experiment with coding in an interactive way with visual feedback.
Cookie Clicker has received updates almost continuously for the last decade. I don’t have the commitment to ascend but I understand there’s quite a bit of content to be unlocked there even after you’ve maxed out your first “run.”
It still peters out eventually
It seems to have been put to rest though, it used to get an update once a year or so for a while now, but as it stands the last update was in May 2023.
I found the ultimate upgrade.

If you run it in portrait on a cellphone, there's not enough room for any upgrade button! 8)

Crashes on mobile chrome after about 10 minutes probably for the best
Same

Lost progress.

It was fun and quirky, but Happy it ended though.

Same, I can't believe I spent that much time, the guided meditation killed me.
Crashed on desktop brave as well. I mean, it was still running but I couldn't click on anything.
Same. iPhone 14 Pro, both safari and chrome. Eventually the sound stops and it gets super laggy.

Almost kind of fitting.

Firefox on MacOS seems fine. I minimized the window size and made some soup. The GUI was a little bit laggy though. When I got back I had ~10million or so and bought all the upgrades which ended the game.
got laggy for me, but I got frustrated by cacophony before that
Unironically, if this was on Steam and monetized through their item shop, it would probably make a fortune. See banana: https://store.steampowered.com/app/2923300/Banana/
There is a buymeacoffee link. I'm pretty stingy with donations, but thought this was worth 3 coffees.
Banana is used by bots to exploit specific in-Steam tradable items and rewards. It's not a real game.
Can you explain this a bit more? I know there is a lot of shady stuff happening with Steam tradable items, but always fun to learn about new ones.
Looks like NFT nonsense but without the blockchain
All this "game" does is generation of different marketable banana items to "players" running it.
Impressed with the effort. The fake crime podcast is gold.
It’s really well done. At one point the character says something along the lines of “but they would rather do other things, like play on neal.fun instead of going to the amusement park”
Oh gosh, just what I needed, another clicker game. This is excellent!

Tip: On Firefox at least, you can right-click the videos (slime, mukbang, etc) and mute them.

Unfortunately you can't mute the podcast in the same way -- that's what finally forced me to close the tab
I clicked the audio icon on the tab -- it muted the entire thing :)