GopherSand
GopherSand is a falling sand game written in Golang using the awesome Ebitengine game engine. It is directly inspired by maxbittker's sandspile and the article he wrote about it.
Features
As with most games of this type, there is no real goal: you can't win or lose. The player places various materials into the world and watches them react with each other. Although each material follows a relatively simple set of rules, interesting behaviors can emerge from their combinations.
The game features 16 different materials (including the Empty 0 material), from which 10 can be directly put into the world by the player:
act as eraser, by default the whole world is empty
does not fall, and hard to react with
falls down and piles up, good soil for a Seed
falls down and spreads, plants love it
falls down and spreads a bit, if it gets in contact with Sand and Water, it turns into a Root
ant eggs are falling down, ants can climb and dig around creating AntHills, they eat plants and lay eggs
need to drink water and eat an ant to lay an egg
moves like water, dissolves most materials turning them into either Smoke or Steam
raises up and spreads, creating Smoke. It can turn flammable materials into more fire
stops most materials it touches, it melts over time creating cold Water
The following 6 materials are product of reactions in the world:
- Smoke raises up and spreads. Fire turns into smoke over some time
- Steam raises up and spreads. It is created on smooth Water surface, or in wildfires. steam can condenses back to Water
- Root is created from Seed, it tries to grow and search for Sand and Water, it can grow more root, or Plant
- Plant is created by Root which is also feeding it. Plants can grow more plants, and sometimes Flowers
- Flower has 4 petals and a Seed in the middle. If the seed falls out, the flower can grow another one
- AntHill is created by ants from materials they can dig or eat trough themselves. AntHill is falling down, but does not spreads, it can support sand
Beside directly putting materials into the world the player can Generate a new random world, or Erase the current one by turning every non-empty material into fire. The game reacts to orientation changes, and rotates the world accordingly, creating this cool 90's liquid sand art effect (this behavior can be controlled from the Menu)
Controls
The game can be controlled with: mouse / mouse + keyboard / touch:
- Click on a material to select it, only one material can be selected at a time
- You can also select Materials with 0-9 keys
- Place the material into the world with the Left mouse button, or touch (multi touch supported)
- Clear the area with the Right mouse button (this is the same if you would select Empty material, and use the left button / touch)
- Change the size of the brush with the Size button or with the mouse Wheel
- You can pause and resume the game with the Start/Stop button or the P key
- The Gen button opens the new world generator menu, the G key generates a new world
- The Erase button opens the erase dialog, the E key erases the world
- The Menu (hamburger) button opens the options menu
- Full Screen mode can be turned on
- Debug Mode can be turned on (to show activity, FPS, brush and material info)
- Auto rotation can be turned off
- You can manually rotate the world from the Menu
License
The game is open-source and uses the MIT license, so you can use / modify / distribute it as you wish. The source code can be found on GitHub
| Status | Released |
| Platforms | HTML5 |
| Rating | Rated 3.5 out of 5 stars (4 total ratings) |
| Author | donbattery |
| Genre | Simulation |
| Tags | 2D, ebitengine, falling-sand, golang, Minimalist, Open Source, Sandbox, Simple, Touch-Friendly |
| Code license | MIT License |
| Asset license | Creative Commons Attribution v4.0 International |
| Average session | A few minutes |
| Languages | English |
| Inputs | Keyboard, Mouse, Touchscreen |



Comments
Log in with itch.io to leave a comment.
This is great! love the slow and steady behaviors, like seeds taking a while to grow, ants digging gradually, it’s chill.
Thanks! I'm glad that you like it. My intent was to capture this slow, semi-idle mood.
more of a sandbox than an idle game.
Idle:
Focusing on automation and minimal player interaction, idle games let you watch progress unfold over time. Players often engage in occasional interactions like upgrades to influence growth rates or efficiencies, while the game typically accumulates resources autonomously.
Sandbox:
A game in which the player is not constrained to achieving specific goals and has a large degree of freedom to explore, interact with, or modify the game environment
Well I have to admit that you are right, I have put the idle tag on it, because it felt a semi-idle experience for me. However I did not made my homework and research what an idle game actually is, and what people expect from them (like incremental growth in the background).
GopherSand is literally a sandbox game; you are the invisible almighty gopher who can put elements in this empty box and watch them interact, you can also rotate the box to see them fall. That's it. No more, no less.
not an idle game
depending on what you consider an idle game. in my interpretation it is a game where minimal input is required from the player, who is more an observer than an actor.
except this game doesn't require minimal input, it literally requires the player to do things for anything to happen, whereas in an idle game, things happen automatically and the player doesn't have to do anything
well than my apologize for false advertisement, English is not my first language. I have removed the idle tag.
It's amazing!
Thanks bro :)