good_cli
The good command: it scaffolds a project, generates asset bindings, converts
and packs your assets, and builds the result for a platform.
dart pub global activate good_cli
Starting a project
good create my_game
cd my_game
flutter run
The asset pipeline
Drop source art in assets_src/, then:
good assets compact # one canonical format per kind, via ffmpeg
good generate # writes lib/good.generated/ — an enum per shipped asset
good generate is what lets you write Textures.spritesPlayer instead of a
string path, so a renamed file is a compile error, not a black square at
runtime.
Shipping
good assets pack # compress, encrypt, group into chunks
good build windows # also: linux, android, ios
good build runs the pipeline first, so the release bundle carries the packed
chunks and not your loose source assets.
Next
- Create a project
- The asset pipeline explains the chunk format and what the encryption does and does not protect.
- CLI reference
create, generate, assets compact, assets pack and build for Windows,
Linux, Android and iOS work today and are verified end to end. good build macos and good run are not written yet, and good create has rough edges
worth reading about before you hit them:
what works today.
Libraries
- good_cli
- Library surface for the
goodbuild tool - asset packing/encryption, compile-time ECS struct-layout codegen (via package:analyzer, hoisting good's runtime DataDescriptor layout algorithm to build time), and platform build/packaging orchestration.