https://github.com/projectitis/sizzle
Bitmap/pixel game engine based on Flame
https://github.com/projectitis/sizzle
dart flame flutter game pixelart
Last synced: 11 months ago
JSON representation
Bitmap/pixel game engine based on Flame
- Host: GitHub
- URL: https://github.com/projectitis/sizzle
- Owner: projectitis
- License: mit
- Created: 2023-04-13T06:32:48.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-05-17T23:28:57.000Z (about 1 year ago)
- Last Synced: 2025-05-18T00:23:24.028Z (about 1 year ago)
- Topics: dart, flame, flutter, game, pixelart
- Language: Dart
- Homepage:
- Size: 865 KB
- Stars: 7
- Watchers: 4
- Forks: 1
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README

# Sizzle
**A bitmap/pixel game engine based on Flame**
```{warn}
This package is in alpha and not yet production ready. Use at own risk!
```
This package takes all the hard work out of making a perfect pixel-art game. It's compatible with
other Flame features, so you can make use of audio, bloc, forge2d etc. The maintainers of this
package also regularly contribute to Flame itself.
## Features
- Set target canvas size, and sizzle will scale and letterbox the game for you
- Either use smooth movement, or snap to pixels
- Compact animated sprite format (PlySprite) and exporter from Aseprite
- Speech bubble dialog system based on yarn spinner (jenny)
- Persist game state (saves to local device)
- Central management of asset loading, saving and caching
## Documentation
[Documentation](/docs/index.md) can be found in the docs folder.
## Getting started
- Add `sizzle` using `dart pub add sizzle`
## Usage
For a full example, see [examples](/example/).
```dart
import 'package:flutter/material.dart';
import 'package:sizzle/sizzle.dart';
void main() {
final game = SizzleGame(
scene: ExampleScene.create,
targetSize: Vector2(320, 240),
);
runApp(GameWidget(game: game));
}
class ExampleScene extends Scene {
static Component create() => ExampleScene();
}
```