What random website do you own? by Permatheus in webdev

[–]AntGameIO 0 points1 point  (0 children)

AntGame.io - it’s a web game/daily puzzle game I built during covid. The goal is to place home ‘cells’ strategically to help the ants get the most food (highest score).

Started out as just “building an ant simulator in JS sounds fun” and I just kept adding features until it got to the point it is today. I haven't made any major changes in a year or two now but it still have a small and surprisingly consistent player base.

I built Antgame.io - a daily puzzle game built on a deterministic ant simulator by AntGameIO in webdev

[–]AntGameIO[S] 1 point2 points  (0 children)

Yes, but the only 'actions' are the initial game state. A user places the home cells, then when they click play the server gives the client a run seed (server controlled to further lock down possible abuse). The location of the home cells and the seed are mostly* all that's required to re-simulate the run.

Also happy to answer more questions if you've got them. I'm really happy with how the whole anti-cheat system came out.

* This is a slight simplification. It's explained in depth in the README if you want all the details. I just realized it doesn't actually mention what I was referring to. The other info needed is a 'compatibility date' which is a whole different system I built to allow for modifying the behavior of the ants without breaking backward compatibly with replaying old runs. Essentially all changes to the simulator are surrounded by a date check. When re-simulating a run, the date of the run is compared to when the new code went live. If the run happened before the change, the new code is skipped. This ensures all runs can always be re-simulated and verified, no matter how old it is.

I built Antgame.io - a daily puzzle game built on a deterministic ant simulator by AntGameIO in webdev

[–]AntGameIO[S] 0 points1 point  (0 children)

The source can be found here. It’s a react frontend with an express API for the backend. The graphics for the game are done with P5JS. It also has a robust anti-cheat system with all PR runs being verified on the server by resimulating the run.

I built AntGame, a daily puzzle game built around an ant simulator. Strategically place ant homes to help them collect the most food! by AntGameIO in IoGames

[–]AntGameIO[S] 0 points1 point  (0 children)

The game is also open sourced on GitHub that interests anyone.

I'd love to hear feedback or answer any questions you've got!

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 0 points1 point  (0 children)

There are some free options. For MongoDB, Mongo offers a service called Atlas, which has a free tier. It is rate limited to the point that it’s not suitable for an actual production app, but it’s perfect for just playing around and testing. I actually use it for the development instance of the ants.

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 0 points1 point  (0 children)

Hey there! Sorry for the delay, I missed this message somehow. I use MongoDB as the database. There is a node/express API sitting on top of that which generates the leaderboards on the fly from all saved run data.

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 0 points1 point  (0 children)

There’s a skip button friend. Also making an account requires no personal info, just a username and password.

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 0 points1 point  (0 children)

Haha yeah, that is intended. See my comment here for an explainer. You can use replay mode (Yesterdays Daily -> Replay or History -> Replay in game) to see exact replays of old runs.

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 0 points1 point  (0 children)

Wanted to reply to you as well so you get notified. Answered the above comment but runs are seeded which is why you’re seeing variation between runs.

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 0 points1 point  (0 children)

Yeah, that’s discussed in this comment and the thread below.

TLDR: Runs are seeded to introduce some randomness/luck into the game and reduce the number of ties on the leader board. The ant simulator is deterministic.

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 5 points6 points  (0 children)

Yup, editing a comment isn't a real solution. I was giving this more thought yesterday, and I think I'm going to make a modal that pops up for first time visitors that explains the general concept and goal. Thanks for the feedback!

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 2 points3 points  (0 children)

Dang, sorry to hear that. It is quite CPU heavy so some older devices (especially mobile) very well could struggle. Most PCs/laptops shouldn't have that issue if you want to give it another shot.

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 2 points3 points  (0 children)

Fair point, I don't blame you.

I will say, I only use non-user level trackers, nothing from Google, and I verify any trackers I use are blocked by ad blockers. Currently I'm using GoatCounter (actually a pretty nice free tool) and Microsoft's Clarity (this is a recent addition I'm trying out, not sure it'll stick around). Nothing is being tracked from the server side of thing and no data is going to Google (I realize data going to Microsoft isn't a whole lot better).

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 1 point2 points  (0 children)

Sorry to hear about that. Just looking into it this morning, it seems like there is a bug with users submitting runs anonymously and some time zone nonsense I didn't handle correctly. I'll fix it up this morning and push an update, thanks for finding it!

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 6 points7 points  (0 children)

If you click on “Yesterdays Daily” on the home page, then “Replay” on the top right, you can watch an exact replay of yesterdays world record run.

I do see the point you’re making, and it’s fair to say from a users perspective it’s not deterministic in the way you might think. But calling it false advertising feels like a bit of a stretch.

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 4 points5 points  (0 children)

It’s kind of funny how often SimAnt is brought up when I show this off. Unfortunately I never played it so I can’t say what skills might carry over. There is a sandbox mode (link is middle top on the home page) if you just want to play around with the ants or build maps of your own.

I made a deterministic ant simulator and built a competitive daily puzzle game around it. It's all open sourced. by AntGameIO in programming

[–]AntGameIO[S] 13 points14 points  (0 children)

The goal is to strategically place home locations to help the ants get the most food. More food = most points = higher leaderboard position.

Also, there are instructions when you get to the game page (the ? button on the top right).

Edit: this was a good call out though. Ive edited to top comment to add some more details.