Releases: msabate00/SandForge-Engine
v0.1
SandForge Engine — v0.1 (Release)
SandForge is a source-based engine (C++17 / OpenGL 3.3).
This release targets both players (prebuilt demo) and developers (engine source).
Downloads
For players (Windows build)
- SandForge_Engine_v0.1.zip
Portable demo build. Extract and run.
For developers (source)
- Source code (zip) (GitHub auto-generated)
or clone the repo and build with Visual Studio (CMake).
System Requirements
Minimum
- RAM: 256 MB
- OS: Windows 10 (64-bit)
- CPU: x64 dual-core
- GPU: OpenGL 3.3 Core compatible
- Disk: ~200 MB free
Recommended
- RAM: 512 MB
- OS: Windows 10/11 (64-bit)
- CPU: x64 quad-core
- GPU: newer drivers / OpenGL 4.x capable
How to Run (Players)
- Download SandForge_Engine_v0.1.zip
- Extract it anywhere
- Run the executable
- Keep these folders next to the executable:
assets/levels/logs/(created automatically if missing)
Logs
- Written to:
logs/engine.log
If it fails to start / missing assets
Most issues come from running without the expected folders (assets/, levels/) next to the exe.
Re-extract the zip and run from the extracted folder.
How to Use / Modify (Developers)
SandForge is used by editing the source and rebuilding.
The build output (FallingSand.exe) is effectively your game/app built on top of the engine code.
Recommended workflow (Visual Studio 2022 + CMake)
- Fork/clone the repository
git clone https://github.com/msabate00/SandForge-Engine.git
- Open Visual Studio → File → Open → Folder...
- Select:
SandForge-Engine/SandForge-Engine/ - Build the target:
SandForge Engine - Run (Local Windows Debugger)
Working directory / runtime data
The executable expects runtime data under the working directory:
assets/(shaders, sprites, audio)levels/(level files)
If you run from Visual Studio, set the working directory to the folder that contains assets/ and levels/
(i.e. SandForge-Engine/SandForge-Engine/), or copy those folders next to the built executable.
Where to put your “game” code
- Engine systems:
src/core/,src/render/,src/ui/,src/audio/,src/app/ - Game layer (scenes/menus/gameplay glue):
src/game/
Default Controls (Demo)
Materials
- 1: Sand
- 2: Water
- 3: Stone
- 4: Wood
- 5: Fire
- 6: Smoke
- 9: Erase (Empty)
Painting / tools
- LMB (hold): paint current material
- Mouse Wheel: change brush radius (1–64)
- Shift (hold): lock stroke to X/Y axis (straight line)
Simulation / debug
- P: pause / resume
- N: step one simulation tick (when paused)
- F1: toggle chunk debug overlay
- F2: toggle hitbox debug overlay
- F6: clear world
- F5: quick save →
levels/custom/quick.lvl - F9: quick load ←
levels/custom/quick.lvl
Camera
- W A S D: pan camera
- Ctrl + Mouse Wheel: zoom (pixels-per-cell)
Updates
v0.1.1
- Particles: Added a sprite-based particle system integrated into the engine loop.
- Emitters: Supports continuous emission (
spawnRate) and burst emission (explosions). - Render layers: Particles can render in WORLD or UI (screen-space).
- Presets included:
Sparks,Smoke,Dust,Fire,ConfettiUI,Shockwave. - RNG improvements: Burst randomness is seeded from the engine RNG (position + frame + salt) to avoid identical-looking bursts at different locations.
- Over-life gradients:
speed,size, andcolorsupport multiple keys in the form{ {min,max}, t }(e.g. small → big → small). - World scale cohesion: WORLD particle sizes are aligned with the pixel-art world using
pixelsPerCell. - Gradient-only config: Removed legacy
start/endand range fields; everything is driven by gradients:- 1 key = constant
- 2 keys = start/end
- >2 keys = full gradient
- Cleanup/simplification: Removed unnecessary complexity (no per-particle gradient caches); emitters are not recycled until all their particles are dead; bursts use a temporary auto-cleaned emitter.
- Presets cleanup: Updated presets to use
RGBAu32(r,g,b,a)(no0x...color literals) and to match the gradient-only configuration.
-Build (Windows): en Release el exe se enlaza sin consola (Debug mantiene consola para logs).
Known Issues
- Windows is the primary target. Other platforms may require minor changes (toolchain, OpenGL loader, paths).
- Running from the wrong working directory can cause missing shaders/assets/levels.
v0.0.2
Full Changelog: v0.0.1...v0.0.2
v0.0.1
Full Changelog: https://github.com/msabate00/SandForge-Engine/commits/v0.0.1