좋은 아이디어 실행 가능한 경우. 불행히도 일반적으로 기계 상태의 전체 기록을 추적하는 것은 매우 어렵습니다. 당신은 각 데이터 구조에 당신이 가져온 곳을 태그 할 수없고, 의 모든 상태는 객체입니다. 외부 이벤트 만 저장하면 모든 것이 생겨나는 방식으로 재생할 수 있습니다.
몇 가지 예 :
나는 그것을 실행 가능했던 프로젝트에 대한 작업을했고, 그것은 대단히 도움이되었습니다. 우리가 배송에 가까워지고 버그 수정이 없어지면 컴퓨터가 문자와 로케일의 모든 변형을 가지고 밤새도록 반복적으로 게임을하는 "제로 플레이 모드"로 게임을하게됩니다. 주장하면 일치를 시작한 임의의 키가 표시됩니다. 우리가 아침에 일하러 왔을 때 우리는 화면에서 키를 쓰고 (보통 하나였습니다) 그 키를 사용하여 다시 시작했습니다. 그렇다면 주장이 나올 때까지 그냥 지켜 볼 것입니다. 중요한 것은 오류가 발생했던 모든 원래 입력을 다시 만들 수 있고 다시 컴파일 한 후에도 원하는만큼 여러 번 다시 실행할 수 있다는 것입니다 (제한 내에서 ... 난수 생성기에서 가져온 수를 변경할 수 없음 , 비주얼 게임과 같은 비 게임용으로는 별도의 RNG가 있었지만). 이는 따뜻한 재부팅 후에 각 일치가 시작되고 입력으로 매우 적은 양의 데이터 만 사용했기 때문에 효과가있었습니다.
나는 번지가 헤일로 수준에 나쁜 형상을 발견하려고 유사한 방법을 사용하는 것을 들었습니다.그들은 devest 키트가 파괴 불가능한 주인공이 무작위로 이동하고 점프하는 특수 모드에서 밤새 실행되도록 설정할 것입니다. 아침에 그는 그들이 나올 수없는 어떤 위치의 도형에 갇혀 있는지 살펴보고 보았습니다. 수류탄이 관련되었을 수도 있습니다.
다른 프로젝트에서 우리는 실제로 모든 사용자 상호 작용에 타임 스탬프를 기록하여 재생할 수있었습니다. 가능한 한 훌륭하게 작동하지만 대부분의 사람들은 전체 상태가 그렇게 쉽게 저장되지 않을 수있는 변화하는 DB와 상호 작용합니다.
좋은 지적. 또한 처리 도구에 대해 "정보를 유지하라"방식을 사용했기 때문에 출력이 손상되거나 늦게 실패한 입력 오류가 추적 될 수 있습니다 (예 : 오류가있는 입력 파일의 행). – steffenj
마크, 나는이 대답을 읽고 있었고, 나는 생각했다. "나는 그 일을 전에 보았다." 그때 당신의 이름을 보았습니다. 우리가 함께 일했음을 깨달았습니다. – Nosredna