The front page of HN is proving to be a great way to stress test this. I'm surprised NginX (serving the static content) and Node.js (all the websockets communication) is handling 50+ players, no problem.
If you click a cell and it becomes occupied before you can click the "place cells" button, you can either click the cell again to "unflag" it, or refresh the page. I'm assuming this is the problem you're describing.
I should add some hover-state that shows the cell's owner on the board.
That high score is impressive (even with a bot). I'm not sure if you noticed that others were at one point rallying against you. Someone created a player named "down with CyberShadow".
It's running on a $10/month 1 GB memory/1 CPU droplet on Digital Ocean. Nginx is letting the websockets connections through to Node.js, and I'm assuming Node.js is what would crash first.
2. Free-ride on others' cells to create some fertile configuration with less than 5 investment. In most cases this benefits the original owner more than me.
- Add a 3-line to a block (or anything with a 2-cell side):
xx
xx
OOO <- my 3 cells
This resembles one of the predecessors of an r-pentamino and grows nicely.
- Add 2 "ears" to a blinker — a complete takeover!:
OxO
x
x
- Add 2 onto some diagonal edge, e.g. beehive:
xx
x x
xxO
O
This is very sensitive to what I attach to, e.g. in this variation my cells die out:
xx
x xO
xxO
Nice. I hadn't considered attaching three cells to another player's block.
Another tactic that I've seen in the game is to use 1-3 cells to cause other patterns of >10 cells to "self-destruct". This can work directly in your favor if another player's cells are obstructing a future growth-path of one of your methuselahs.
I pretty much gave up on real-time interaction with dynamic structures as I have no idea what it'll do. It would much more practical if the game gave a glimpse into the future, including effects of cells I marked for placement but didn't commit yet. Something in the spirit of https://www.youtube.com/watch?v=xg0PKAvL01Y only looking into the future rather then past.
That is another good idea. I may implement that as well.
The problem I'm focusing on at the moment is that the game is both less challenging and less fun when fewer players are online (if you have any ideas to increase player retention/engagement or make the game seem more "active" when fewer players are online).
Frequently I was out of cells to place and waiting for a sufficient number to do something interesting is boringly slow. I found myself wasting 1-2 cells on mostly ineffective gambits because I was too impatient to wait for 3+...
Or I could switch away, and at some point come back later with 12 cells - but that could be half a hour later.
1. show number of cells-to-place in tab title / favicon. Helps with switching away but coming back when I have something to do.
2. consider having several "rooms" so an active player can always have something to do without entirely switching away.
Or instead of independent rooms have a larger map with distant areas of it having independent supply of cells.
Wilder idea: the game runs so slow to let you carefully place many cells, and give _some_ hope of reacting events in real time, right?
What if it run faster but you could enter "bullet time" when you're placing cells? Moreover, what if you could unwind time back a few steps?! The latter sounds especially cool, because it gives limited foresight (and ability to experiment) within the same interface.
This can be allowed without inconsistency due to speed-of-light delay, under baddox's idea where each player can only place cells in a separate area.
Maybe even possible in some adaptive way with unrestricted gameplay, but much harder.
Great concept. The generation rate is too low for me to stick around though. It might be more interesting to do 10 or 20 generations per tick.
When I read the headline, I was imagining an endless board where each player got a grid, say 20x20, where he could place anything he wanted, and all the boards would be right next to each other so you could try to "invade" your neighbors.
It started as just an attempt to create the game of life in react, but as I started to add some interactivity to it, I started to wonder if there was an actual game in there somewhere. Never really figured out what I wanted to do with it though.
Oddly, my highscore dropped. It was 35, then it went to my current score of 26. Does your highscore reset when you lose all your bits then start to place more?
Nope, the server crashed and restarted! Some of the local data on your client was out of sync with the server during the restart (at least, that is my best guess).
The front page of HN is proving to be a great way to stress test this. I'm surprised NginX (serving the static content) and Node.js (all the websockets communication) is handling 50+ players, no problem.