This is my favorite cellular automata. The simplicity and elegance that allows for such complex logic.
I ported the famous wireworld computer[0] to javascript a few years back[1]. The source[2] is in c# transpiled to javascript so it may be a bit hard to follow, but still an interesting read of how to squeeze every draw call out of 2d canvas.
[1] is soo enthralling. In case it isn't obvious to everyone, you can add an electron with left click and reset things to copper with the right click. It's loads of fun to introduce a few random errors and watch them cascade through the system.
Factorio is great. You a few dozen minutes or so thinking that this is a typical RTS with a twist, and then you suddenly realize that the opponent in this game is not really those hostile critters - the true challenge is managing complexity of your logistics.
This game is hard fun. I.e., the kind of fun that makes you want to write an autorouting programm for the converyor belts.
That's my main complaint with it. Because you can only act locally around your little man you have slog all over the map, which doesn't add to gameplay much (the attacking monsters are infrequent, as far as i've gotten in the game, and easily dealt with by turrets).
I'm more interested, when playing the game, in making clever and efficient systems to move my bits around and the game, because of it's interface, makes that hard. Eventually I realize how many hours it's going to take to rearrange all my conveyers and I quit.
The late-game tech really helps with this - you eventually get technologies that all you to blueprint and paste groups of buildings. This doesn't alleviate all of the issues, but it allows for component re-use and standardization. I do think some of the limits in Factorio are what make it fun, and differentiate it from a pure programming game.
I usually struggle to play any game that's too similar to brainteasers, puzzling, or thinking about systems optimization: I would rather spend those hours just programming, which is just as fun, and far more rewarding. But Factorio is sooo much fun... especially if you set up a server and play with friends.
I learned Chef getting my Factorio server running :) It's turtles all the way down in automation land.
Have you tried the Avatar mod? [1] It's like in-game VNC for virtual players! Once you manufacture your avatar limb by limb and put it together, you build a control console, which is like a stationary vehicle you stand next to and press "return" to "enter" -- then you're driving around your new avatar! It blows my mind what some of those mods can do.
This is awesome! I made a sort of action puzzle game loosely based on this a while back (without realizing it, as I had no idea about Wireworld) for a Ludum Dare. Cool to see this concept somewhere else!
I still want to, someday, flesh it out. I think it would make a pretty fun mobile game!
I've been working on steamdance[1] for the past few years, which is a little logic simulator a lot like wireworld. The project started as a way to teach digital logic and evolved from there. (It used to be called boilerplate, but we renamed it for obvious reasons.)
Its still not ready for prime time, but we've been making some cool stuff with it anyway:
Golly [0], an open source, cross-platform application for exploring cellular automata, includes the Wireworld ruleset and some example starting patterns.
This reminds me also of Conway's game of life. I love those kind of automata systems.
I did an implementation of it a few years ago (it's pretty simple and bad I was just learning how to program) but it works http://www.jonathanfromgrowth.com/lifebb
There was a book (which I had and lost) back in the eighties or nineties, and I think Wireworld was featured in the chapter on cellular automata. Other variations included Life with multiple levels of health, not just dead or alive.
I ported the famous wireworld computer[0] to javascript a few years back[1]. The source[2] is in c# transpiled to javascript so it may be a bit hard to follow, but still an interesting read of how to squeeze every draw call out of 2d canvas.
[0] http://www.quinapalus.com/wi-index.html
[1] http://dested.com/projects/wire/
[2] https://github.com/dested/WireWorld