added step-based engine snapshots to undo/redo game steps