Skip to content

Implement Replay Recording and Playback Engine #47

Closed

Description

@Mkalbani

Description

Build a replay system that records every player action during a session as a timestamped event log and supports deterministic playback of that log. Replays let players review their own solutions, serve as proof-of-solve for on-chain achievement verification, and provide debugging data for the puzzle design team. Replay files should be compact, portable, and verifiable.

Acceptance Criteria

  • A replay module exists at src/replay/mod.rs
  • ReplayEvent enum covers all recordable actions: HintReveal, AnswerAttempt, SessionStart, SessionEnd
  • Events are recorded with microsecond timestamps relative to session start
  • Completed replays are serialized to a .qreplay binary file in the saves directory
  • --playback <file> CLI flag loads and replays a .qreplay file, reproducing all events in order
  • Playback speed is configurable (1x, 2x, 4x) via a CLI argument
  • Replay files include the puzzle content hash for integrity cross-checking on playback
  • A replay summary (total time, hints used, attempt count, final score) is printed at playback end
  • Unit tests cover event recording, serialization roundtrip, deterministic playback, and integrity mismatch detection

Activity

  1. Menjay7 commented on Jul 20, 2026

    @Menjay7

    Hi! I came across this issue and would love to work on it. I have experience with similar tasks and I'm confident I can investigate, implement a clean solution, and thoroughly test it before submitting a PR. If the issue is still open, I would appreciate it if you could assign it to me. Thank you!

  2. mac-dubem commented on Jul 20, 2026

    @mac-dubem

    I'd love to work on this issue. I can build a deterministic replay system with efficient event recording, portable replay files, configurable playback, integrity verification, and comprehensive tests to ensure reliable playback and validation.

  3. grantfox-oss commented on Jul 21, 2026

    @grantfox-oss

    🦊 GrantFox — @mac-dubem has been assigned to this issue as part of the Official Campaign | FWC26 campaign!

    Next steps:

    1. Open a Pull Request referencing this issue (e.g., Closes #47)
    2. Your PR will be reviewed by the MindFlowInteractive maintainers

    Good luck! Track your progress on GrantFox.

  4. Xaxxoo commented on Aug 21, 2026

    @Xaxxoo
    Contributor

    Hi, can I take up on this issue please ?

  5. grantfox-oss commented on Aug 21, 2026

    @grantfox-oss

    🦊 GrantFox — @Xaxxoo has been assigned to this issue as part of the Third Campaign campaign!

    Next steps:

    1. Open a Pull Request referencing this issue (e.g., Closes #47)
    2. Your PR will be reviewed by the MindFlowInteractive maintainers

    Good luck! Track your progress on GrantFox.

  6. grantfox-oss commented on Aug 23, 2026

    @grantfox-oss

    🎉 This issue has been marked as completed on GrantFox as part of the Third Campaign campaign!

    @Xaxxoo's PR #57 was approved and merged by @Mkalbani.

    🏆 @Xaxxoo: You earned 40 FoxPoints for this contribution! Your current tier: Builder (1,428 total points). Track your full progress on GrantFox.

    👏 Great work, @Xaxxoo! Keep contributing to MindFlowInteractive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third Campaign

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions