A few days ago after browsing hackernews I stumbled upon a post about a game that was getting a lot of traction called One Million Checkboxes. It’s a wonderful little online game made by eieio that is just a webpage with one million checkboxes. I guess you can call it a game but theres really no goal or information besides a counter displaying how many boxes are checked and how many you have personally checked/unchecked. Of course your natural reaction is to immediately pick a side and enter the endless war between those who want everything checked or unchecked.

one million checkboxes dot com

Calling it little is really doing it a disservice. Its a fantastic idea, and extremely well executed. The website is rather rugged. I can’t imagine anything I built standing up after more than 1k people start messing with it at once.

But what I wanted to talk about is how one of my first thoughts after seeing this site was to figure out some way to automate pressing these checkboxes. After checking the comments in the hackernews post I was delighted to see that I was not the only one to thought this way.

I don’t know what part of my brain made me think this way. Whether it was the engineer in me or the lazy person in me or somewhat both. But I realized I’ve been thinking this way for a long time, even before the time where I could really call myself a programmer.

I think ever since I realized the games I was playing were just code I was always thinking about ways to give myself an easier time. Unfortunately I didn’t know about cheatengine or the like, so my first kind of game “hacks” were pretty primitive. But as the title mentions, most of the games I played were useless so little cheats like these only really furthered my curiosity for coding. I decided to make a little list of all the ways I “cheated” in these games before, if only to remember how far I’ve progressed but maybe it would be useful for you too.

small aside, if anyone is interested in automating the checkboxing its just a simple websocket sending checkbox coords
the real bottleneck is overcoming the built in client side spam defense, but im sure you have some ideas

Universal Paperclips

universal paperclips

Universal paperclips is a classic clicker game. One of the many that I played during my time in highschool, mainly due to it being one of the few that I knew my flimsy school-assigned chromebook could handle. It is incredibly fun and silly but the one thing I wasn’t a huge fan of was waiting. I know that’s almost the entire point of the game but I could not stand waiting that long for my paperclip upgrades to increase by 10%. My undiagnosed adhd aside it was my desire to speed up Universal Paperclips and other clickers like it that I really began snooping around in inspect element.

I started out by just making changes to the js making things go faster or skipping parts I didnt like. Then came the realization that websites couldn’t intrinsically store data so I began looking at cookies. As the quality of clickers increased so did the schemes of hiding user data. I learned about base64 and encryption and a whole bunch of things in a really organic way which was really cool looking back at it.

Overall it was pretty fun, and it gave me a cool look into webdev. I probably would have never been inspired to get into the the space without these kinds of games in my childhood.

Bloons Tower Defense 6

Bloons Tower Defense 6

Bloons Tower Defense was a game I got really into in highschool along with some of my friends. It really is an incredible game. Very simple premise but the strategy is surprisingly deep. I still remember late nights showing my friends a google sheet about why banks were the highest-return banana farm. Anyway, I wanted to grind out a bunch of Monkey Knowledge and cash but I hate repeating levels so the first thing I thought of was automating finishing some levels with autohotkey and some OCR scripts.

Now I know I could have just used cheatengine to give me the monkey knowledge and cash but its just not the same. Maybe its just me but theres just something so much more legitimate getting a script to automate human actions rather then just getting the resources outright. In either case it was a fun expiriment with scripting. It was sort of the first time I made a useful program for my everyday life, kind of the catalyst that made me think about how I could use code to make the rest of my life easier.

Looking back at the code would probably make me cringe, but it was a good learning opportunity. I was gonna make an arguement about how it kind of mimics RPA, but there are better processes and it helped me find them so I think that’s enough credit to give.

Minecraft

Minecraft

Ok so this one needs little explaining. Theres of course is a few autohotkey scripts that hold keys or shift in Minecraft that’s not really relevant. My main breakthrough in Minecraft is orchaestration of multiple bot accounts in order to build structure in a multiplayer server. Now I understand that’s a big step up from everything I mentioned earlier but hear me out. No hacked clients. No PvP. Just using the bots to help build big structures that I’d rather not spend individual time on.

My main gripe with Minecraft is manhours. It takes hours to build farms, spawners and art. Frankly its a solved problem with baritone and litematica but sometimes its still not fast enough. You need multiple people to spend several hours to create something of high quality even if you have all the materials. Personally I think using bots to do this specific task is fair especially given how much code is behind all of them to even function together.

Conclusions

I don’t have any realizations coming out of this. It was nice to see how I have progressed and maybe I made some good suggestions for you to try and automate. I guess I also realized how this is turning more into a personal blog that is vaguely coding themed but oh well.

heres a meme for sticking through the whole thing stop doing agile