[READ-ONLY] Mirror of https://github.com/ewanc26/splat. A physics-first city builder for Godot 4. The physics engine is the simulation. ewancroft.uk
agpl city-builder csharp godot godot4 physics simulation
0

Configure Feed

Select the types of activity you want to include in your feed.

GDScript 66.2%
C# 29.1%
Shell 1.0%
PowerShell 0.9%
Other 2.8%
32 1 0

Clone this repository

https://tangled.org/ewancroft.uk/splat https://tangled.org/did:plc:dhkn2sjou4og76vvs2hbrk65
git@tangled.org:ewancroft.uk/splat git@tangled.org:did:plc:dhkn2sjou4og76vvs2hbrk65

For self-hosted knots, clone URLs may differ based on your setup.



README.md

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#

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).