Terrarium
My project is to turn your collection of Blinks tiles into a digital terrarium. Each tile can provide one of a few basic building blocks (water, dirt, sunlight). Under the right conditions plants and animals will grow and live on your tiles. Not really a game, it’s more about exploration and discovery.
That’s the idea at least! I don’t think I’ll get to a point where the project is fully realized. I am encountering code and data space constraints already and I only have one system functional.
But, I wanted to share what I have now since it is kind of fun to tinker around with it.
Current State
What’s implemented? Water. That’s it. But trust me it’s kind of cool
Before starting, be aware that all tiles must be physically rotated so that face 0 is pointing up. The project has a concept of gravity, which falls from face 0 to face 3. I could add code to handle arbitrary tile rotations, but that would eat into code space even more.
Playing
Here’s how to try it. Program your tiles. Ensure they are all pointing the right direction and arrange the cluster however you’d like. At this point, all the tiles are active with the terrarium simulation, but of course nothing is happening yet!
Water
Click one of the tiles to turn it into a “dripper”. Preferably this will be a tile at the top of your collection. The top face on the tile will start to pulse. Every time it pulses it will drip water into the world. This water will fall down through empty tiles, collecting at the bottom. (The drip rate is higher than I would set in the final project, but is better for playing with alone.)
Water will fall from tile to tile, provided that there is room below. Water will also spread to the sides if it can’t fall down. Each face on the tile can hold a certain amount of water. Once it hits the maximum water level, that face will visibly change to a brighter color. That’s mostly for my debugging purposes, but I left it in for now.
As the simulation runs, you can detach tiles and reattach them anywhere in the structure and water will flow through the new connection.
To clear a tile of its water, double click it.
Future
When you load the sketch you’ll notice I’m already using a lot of data (dynamic) memory. I’m also using well over half of the code space. Every new system I add to the simulation will eat into both, which makes me very skeptical that I will be able to complete the project as desired. I just don’t have enough RAM on the tiles.
I might add a second system since I’ve already got it mostly done, but probably won’t go much further than that unless I can pull off some significant space optimization.