- I find "click to toggle" somewhat annoying. Maybe try "click to set", "ctrl-click to unset"?
- A light-grey grid background would make it easier to align shapes.
- Similarly, showing the changing coordinates on mousemove would also help with alignment.
- Highlighting the current grid square under the cursor allows for more confident placement of cells.
- It'd be nice if the canvas was centred on the page.
- Adjustable speed of the simulation. Just a "slow/medium/fast/ultra" selector would be fine IMO.
BTW, do you know about the Hashlife optimization/memoization technique? You probably won't need it to speed up this 64x64 simulation, but in case you hadn't heard about it, check it out because it's a fairly amazing trick (IMHO) and also results in ridiculous speed-ups. See https://en.wikipedia.org/wiki/Hashlife and (from external links) I remember this explanation to be fairly clear: http://www.ddj.com/dept/ai/184406478
As much as I love Conway's Life, I always find it frustrating to play games based upon it since it depends so much on single-block offsets and the grid... it's so discrete. I mean it's neat, but I don't generally find it makes for fun boardgames.
I'd love to see it adapted into a physics-driven gridless environment - some kind of fusion of Osmos and cellular automata.
Osmos looks awesome! I totally get what you mean Pxtl, I reckon that there might be some very cool things you could do using reaction-diffusion systems in a game scenario.
And this which is kinda strange, but very interesting (vibrating moving solitons/gliders with oscillating worms that emit glider-streams):
http://www.youtube.com/watch?v=kKHddTQA7wM
Example pattern files for the latter two of these are distributed in the Ready-0.6 release.
I have similar feelings to you about the fiddliness of games based on life. A few years back, it inspired me to build this as an experiment in unfiddly GoL play: https://github.com/lharding/The-Automataic-Gardner
(warning: Processing. Been meaning to port it to JS forever now.)
This game was great! I didn't read the instructions (bad user, I know) and didn't even know I could shoot for the first game. Once I learned that I had a blast.
Might want to inline those keyboard instructions on the attract screen.
Future levels will have more obstacles, including "dead zones" where cells can't be brought to life, which should make solutions like this harder. I'm thinking obstacles which you have to bump a glider into and get the glider to change direction.
Default settings on my monitor made this hard to see too. It's because it is transparent. You can redefine the function that draws the screen by entering:
function drawArena() {
for (var y = 0; y < CELLS_Y; y++) {
for (var x = 0; x < CELLS_X; x++) {
if (goal.x == x && goal.y == y) {
context.fillStyle = "rgb(0,127,255)";
if (arena[y][x] && !generations_until_beaten) {
winLevel();
}
} else if (arena[y][x]) {
context.fillStyle = "rgb(0,0,0)";
} else {
context.fillStyle = "rgb(255,255,255)";
}
context.fillRect(x * TILE_WIDTH, y * TILE_HEIGHT, TILE_WIDTH, TILE_HEIGHT);
}
}
// Draw playable zone (if applicable)
if (playable.width && playable.height) {
context.fillStyle = "rgba(255,127,0, 0.3)";
context.fillRect(
playable.x * TILE_WIDTH,
playable.y * TILE_HEIGHT,
playable.width * TILE_WIDTH,
playable.height * TILE_HEIGHT
);
}
}
in the javascript console (where 0.3 is the new transparency. It won't show up until you click the next level button.
We made a game of life game for a game jam once. It's GoL on a diffusion process. You have to prevent the yellow (infection) spreading in the blood stream.
This was great - I'd love to see more levels. As mentioned, the r-pentamino and other Methuselahs are over-powered. Maybe having some "friendly" cells that disqualify you if activated would make it more balanced.
Fun! I've never got to know the Game of Life before, and I couldn't find one on the web where you could go step by step and step back, so I made this http://www2.cs.man.ac.uk/~jackmab1/life/
When you reach the first challenging level (the one with three pulsars and you can draw at the bottom) you were supposed to be educated and ready. But the previous levels didn't do it for me. I suppose I was supposed to remember the pattern in the previous level or something. How many hacker points did I lose now?
Also it's not fun to draw in the tiny little grid. It would make life much easier if the shapes on the right was draggable to the canvas.
Good observation. At some point Von Neumann became interested in modeling a self-replicating machine, and created what he called "cellular automata", and added features to the model that he assumed were necessary for self-replication. I don't know if his model assumed that raw materials were needed to reproduce, though. But in any case the biological metaphors were there from the beginning.
Von Neumann's model was complicated, and in the early 70's Conway created a simplified version, which is this "Game of Life" linked to on this page. I'm not sure where the space metaphors came from. Maybe due to the protean space games then being created. Maybe due to Star Trek or NASA's space program.
I did, but I wasn't paying attention so I was significantly off-center. I have no doubt that it could be solved with one. But, I figured, electrons are cheap.
Please create more puzzles/levels.
And please please try to improve the UI:
- I find "click to toggle" somewhat annoying. Maybe try "click to set", "ctrl-click to unset"?
- A light-grey grid background would make it easier to align shapes.
- Similarly, showing the changing coordinates on mousemove would also help with alignment.
- Highlighting the current grid square under the cursor allows for more confident placement of cells.
- It'd be nice if the canvas was centred on the page.
- Adjustable speed of the simulation. Just a "slow/medium/fast/ultra" selector would be fine IMO.
BTW, do you know about the Hashlife optimization/memoization technique? You probably won't need it to speed up this 64x64 simulation, but in case you hadn't heard about it, check it out because it's a fairly amazing trick (IMHO) and also results in ridiculous speed-ups. See https://en.wikipedia.org/wiki/Hashlife and (from external links) I remember this explanation to be fairly clear: http://www.ddj.com/dept/ai/184406478