Took a look at your code and noticed you're using Socket.io. Don't use Socket.io for anything over double digit concurrent users. It's well known to be horrible at scaling. If you want something that's <i>better</i> at scaling I'd suggest SockJS[1].<p>1 - <a href="https://github.com/sockjs/sockjs-node" rel="nofollow">https://github.com/sockjs/sockjs-node</a>
Hey guys, it's the creator here.<p>I never thought this little project would get this big!<p>If someone wants to help me scale this, or add things like chat, please do! Just send a PR on Github!<p><a href="https://github.com/grant/hnplays2048" rel="nofollow">https://github.com/grant/hnplays2048</a>
Kind of fun, but I agree with some of the other comments that it would be interesting to see what would happen if the app made a move every 15-20 seconds based on the vote tally in that time window.
This game is no more playable than it was when it was posted hours ago. And here's why:<p>setInterval(function() { window.manager.inputManager.emit("move", Math.floor(Math.random() * 3) + 1); }, 1000);<p>Some rate limiting has been put in place, but it's not good enough. If there are 50 users online at once, they all shouldn't be able to spam a command every second.<p>A better algorithm would be:<p>seconds_between_commands = 60 - (60 / number_of_players);<p>With a clock letting you know when you can make your next move.<p>Otherwise, it's just way too easy to spam.
It's currently unplayable. Instead imagine if it would make one move every half a minute. During the time between moves anyone could vote on the next move. Then the winning move would be played. It would be a slow game, but would be the aggregate HN wisdom.
I added democracy mode...<p>The pull request is here: <a href="https://github.com/grant/hnplays2048/pull/10" rel="nofollow">https://github.com/grant/hnplays2048/pull/10</a><p>You can play it here:
<a href="http://hnplays2048-democracy.herokuapp.com/" rel="nofollow">http://hnplays2048-democracy.herokuapp.com/</a>
Is this HN's version of twitch plays Pokemon? <a href="http://www.twitch.tv/twitchplayspokemon" rel="nofollow">http://www.twitch.tv/twitchplayspokemon</a>
I've made a version of 2048 on Hexagonal Board - check it out <a href="https://play.google.com/store/apps/details?id=com.spiralcodestudio.hexled" rel="nofollow">https://play.google.com/store/apps/details?id=com.spiralcode...</a>
This makes a perfect illustration why startups are shit. Instead of working on something useful, people either produce crappy javascript games, or play them. Now massively downvote this comment, write 100 replies explaining why I'm wrong and how retarded I am for trying to say something like this, then go read something by Paul Graham and play more clones of 1024. And then write a long essay why your startup failed.
Damn, this version seems so unplayable-- so much chaos.
When I play on my own, I already do so many random moves until I reach 512. After that every move that I make is evaluated. I have no problems reaching 2048 (or 29,000 points) within 10-15 minutes.<p>Here, I just get frustrated with the slowness of the moves (not to mention the strategy of the "democratic group" is way off)
Here is my app for Android: <a href="https://play.google.com/store/apps/details?id=com.contrarykid.twos" rel="nofollow">https://play.google.com/store/apps/details?id=com.contraryki...</a>
This is probably a bit much, but I'd love to see someone whip up a multiplayer 2048 using something like Firebase. It would probably start many an argument.