본문 바로가기
새로 나온 제품을 먼저 만나는 곳

lucasartsifier

시에라 어드벤처 게임의 진행 불가 상태를 찾아 막는 정적 분석기

게임4일 전
카테고리
게임
웹사이트
github.com
언어
영어
등록일
4일 전
스타
46
포크
1

katiahayati/lucasartsifier ↗· Python· 최근 커밋 2일 전

루카스아츠 게임과 달리 시에라 어드벤처는 플레이어를 막다른 곳에 가둘 수 있습니다. 로스앤젤레스에서 선크림을 안 챙기고 유람선에 오르면, 며칠 뒤 뗏목 위에서 돌아갈 방법 없이 죽습니다. 이 도구는 시에라 SCI 게임을 디컴파일한 뒤 스크립트를 추상 해석해 방 사이 이동 조건, 아이템 이동, 플롯 플래그 쓰기를 그래프로 세우고, 입력은 여전히 받지만 승리는 이미 불가능해진 상태를 찾아냅니다. 그다음 그 이동을 막을 가드를 유도해 모델로 검증하고, 컴파일해 게임에 다시 심습니다.특정 타이틀에 대한 지식은 심어 두지 않았습니다. 시작 방, 승리 방, 사망 신호, 디버그 전역 변수까지 전부 게임 자신의 코드에서 찾아냅니다. 같은 엔진 하나로 게임별 분석 코드 없이 네 편을 분석하고 실제로 플레이 테스트했는데, SCI0의 레저 슈트 래리 2와 킹스 퀘스트 4부터 SCI1.1의 킹스 퀘스트 6과 로라 보우 2까지입니다.

이 제품이 마음에 드세요?