https://github.com/howz1t/yafsg
Yet Another Falling Sand Game
https://github.com/howz1t/yafsg
Last synced: 2 months ago
JSON representation
Yet Another Falling Sand Game
- Host: GitHub
- URL: https://github.com/howz1t/yafsg
- Owner: HOWZ1T
- License: mit
- Created: 2024-11-11T19:02:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-11T20:28:59.000Z (over 1 year ago)
- Last Synced: 2025-01-01T18:36:40.388Z (over 1 year ago)
- Language: Go
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# YAFSG
Yet Another Falling Sand Game.
---
This project is a work in progress and mostly to have fun messing around with
implementing a falling sand simulation.
---
### Demo
Click on the image to go to the demo video on Youtube.
[](https://www.youtube.com/watch?v=7FrXy7sJ4fo)
### Todos
- [ ] Add gravity rules for particle acceleration when falling.
- [x] Add particle interaction rules, i.e. solids falls through liquids.
- [x] Add fixed solids.
- [ ] fancy rendering with shaders:
- [ ] Sand shader.
- [ ] Water shader.
- [ ] Bloom.
- [ ] Add dirty rectangles to control which areas need updates.
- [ ] Add multi-threading.
### Bugs
- [ ] Water has left bias when falling.
- [ ] Sand has right bias when falling.
---
## Controls
- `Left Mouse` - Place a particle.
- `Right Mouse [Hold]` - Pan the camera.
- `Mouse Wheel` - Zoom in/out.
- `Space` - Step the simulation if paused.
- `P` - Pause the simulation.
- `D` - Toggle debug mode.
---
## Building
This project uses raylib-go as the rendering backend.
Please ensure you have a _*64-bit c*_ compiler set for use in your go build toolchain (e.g.: `export CC=`).