idle_save 0.2.1 copy "idle_save: ^0.2.1" to clipboard
idle_save: ^0.2.1 copied to clipboard

Thrilled to introduce a focused save SDK for idle games with deterministic serialization and explicit migrations.

idle_save #

🎉 I'm thrilled to introduce idle_save, a focused save SDK for idle games: deterministic serialization, explicit versioned migrations, and observable save boundaries in pure Dart. 🚀

Quick start #

dependencies:
  idle_save: ^0.2.1
import 'package:idle_core/idle_core.dart';
import 'package:idle_save/idle_save.dart';

class GameState extends IdleState {
  const GameState({required this.level, required this.coins});

  final int level;
  final int coins;

  @override
  Map<String, dynamic> toJson() => {'level': level, 'coins': coins};

  static GameState fromJson(Map<String, dynamic> json) {
    return GameState(
      level: json['level'] as int? ?? 0,
      coins: json['coins'] as int? ?? 0,
    );
  }
}

Future<void> main() async {
  final manager = idleCoreSaveManager<GameState>(
    store: MemoryStore(),
    codec: const CanonicalJsonSaveCodec(),
    migrator: Migrator(latestVersion: 1),
    decoder: GameState.fromJson,
  );

  await manager.save(
    const GameState(level: 1, coins: 10),
    context: const SaveContext(reason: SaveReason.manual),
  );

  final result = await manager.migrateIfNeeded();
  if (result case LoadSuccess<GameState>(:final value)) {
    print('Loaded: level=${value.level}, coins=${value.coins}');
  }
}

Contact #

wonyoungchoiseoul@gmail.com

1
likes
0
points
399
downloads

Publisher

unverified uploader

Weekly Downloads

Thrilled to introduce a focused save SDK for idle games with deterministic serialization and explicit migrations.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

clock, crypto, idle_core

More

Packages that depend on idle_save