splat#
A physics-first city builder for Godot 4, by Ewan Croft (ewancroft.uk).
Overview#
Splat is a physics-first city builder where the physics engine is the simulation. Buildings have weight, traffic is physical, infrastructure bends and decays. The city's history is written in the wear patterns of its surfaces.
Built on the Chickensoft GodotGame template with testing infrastructure, CI/CD, and code coverage configured out of the box.
Getting Started#
Prerequisites#
- Godot 4.7+ (Mono/C# build required)
- .NET SDK (8.0+ recommended)
- Blender (asset pipeline required)
Setup#
# Clone the repository
git clone https://github.com/ewanc26/splat.git
cd splat
# Build the project
dotnet build
Development#
Open the project in Godot 4.7+ (Mono build) and edit src/Game.tscn for game logic.
Testing#
Tests use GoDotTest and run directly inside the game.
# Run tests via VSCode launch configurations, or:
dotnet test
Code Coverage#
# Install tools (one-time)
dotnet tool install --global coverlet.console
dotnet tool install --global dotnet-reportgenerator-globaltool
# Generate coverage report
chmod +x ./coverage.sh
./coverage.sh
Project Structure#
src/ # Game source code
Main.cs # Entry point (bootstrap/test handoff)
Game.cs # Primary game logic
test/ # Test code (excluded from release builds)
addons/ # Godot plugins
CI/CD#
GitHub Actions workflows handle:
- Visual tests on Ubuntu with Mesa software rendering
- Spell checking on every push
- Dependency updates via Renovatebot
- Code coverage badge generation
AT Protocol#
Splat is designed for eventual AT Protocol integration. All game data is structured to be syncable — cities are public artifacts, not private state. No sensitive data exists; citizen profiles are synthetic and anonymized.
Late-stage roadmap includes city snapshot publication, building record sync, and social features (visiting other cities via AT Protocol). The game works fully offline; sync is optional.
Credits#
Asset Packs#
Splat uses the following free/open-source asset packs:
| Asset Pack | Author | License | Source |
|---|---|---|---|
| City Builder Bits | KayKit | CC0 | itch.io |
| Forest Nature Pack | KayKit | CC0 | itch.io |
| Free Low Poly Vehicles Pack | RGS_Dev | CC0 | itch.io |
| Low Poly Nature Pack | flo-bit | CC0 | itch.io |
Plugins#
| Plugin | Author | License | Source |
|---|---|---|---|
| MCP4Godot | Smalldy | MIT | GitHub |
Template#
Built on the Chickensoft GodotGame template (MIT License).
License#
Splat is licensed under the GNU Affero General Public License v3.0.
Copyright (c) Ewan Croft (ewanc26, ewancroft.uk).
Built on the Chickensoft GodotGame template (MIT License).