목표는 원작 실행이 아니라 규칙의 재현
이 프로젝트의 목표는 구판 PC 한국어판 대항해시대4 PK의 규칙을 웹에서 재현하는 것이다. 원작을 브라우저 안에서 실행하는 것과는 다르다. 거래와 상태 변화를 다루는 규칙을 새로 만들고, 나중에는 화면도 교체할 수 있는 구조를 지향한다. 다만 지금은 웹에서 플레이할 수 있는 결과물이 없다. 여기서 다루는 ‘구매’는 실제 물품을 산 일이 아니라 게임 안 교역소에서 교역품을 사는 기능을 뜻한다. 원작에서도 아직 교역 단계에 도달하지 못했고, 게임 내 거래를 관측하지 못했다. 첫 기록은 이 교역 기능을 재현하기 전에 드러난 작업 방식의 한계에 관한 이야기다.
첫 범위를 게임 내 교역품 구매 하나로 좁힌 것은 작지만 분명하게 비교할 수 있는 단위이기 때문이다. 상품을 고르고 수량을 정하면 돈, 화물, 적재량, 재고가 어떻게 달라지는지 확인할 수 있다. 돈이나 적재 공간이 모자랄 때의 처리도 뒤따른다. 화면에 같은 숫자를 그리는 데서 끝나는 것이 아니라, 같은 조건에서 같은 결과가 나오는지를 묻는 출발점이다.
이 비교에는 되돌아갈 기준 상태가 필요하다. 원작에서 구매 전 상태를 저장하고 복구한 뒤 같은 거래를 반복해 전후 값을 확보해야 한다. 새로 만든 코드의 출력을 다시 정답으로 삼으면 구현이 자기 자신만 증명하게 된다. 그래서 원작의 독립 관측을 중요한 기준으로 두었다.
준비한 것과 아직 확보하지 못한 것
요구사항과 구조, 분석 방법, 검증, 실행계획을 문서로 정리했고, 현재 개정안은 문서 9개와 설명용 SVG 8개, 16쪽 읽기본으로 묶여 있다. 작성과 문서 검수는 끝났지만, 그림은 구현 화면이 아니며 문서 검수가 게임 검증을 대신하지도 않는다.
원작 자료를 보존하면서 실행·분석 환경을 준비하는 작업도 진행했다. 그러나 맥에서의 실행은 호환성과 매체 인식 문제로 정상 구매 관측까지 이어지지 못했다. 기존 윈도 실행 환경을 원격으로 확인하는 경로로 옮겼지만, 화면을 볼 수 있는 것과 게임을 안정적으로 조작하는 것은 별개의 문제였다.
정적 분석에서는 가격 표시와 계산 후보를 잇는 근거 일부를 확보했다. 그렇다고 실제 구매 단가의 의미나 구매 확정 뒤 돈과 화물이 갱신되는 과정까지 확인한 것은 아니다. 손에 쥔 것은 다음 확인 지점을 좁힐 단서이지, 구매 규칙 전체의 복원 결과가 아니다.
구매를 보려다 오프닝에 붙잡히다
원작 관측은 거래 화면에 도착하기 전부터 길어졌다. 창이 실제 입력을 받는지, 다른 창에 가려지지 않았는지, 화면 변화가 키 입력 때문인지 자동 영상 전환 때문인지부터 구분해야 했다. 불러오기 목록을 다른 메뉴로 잘못 읽은 일도 있었다. 이후 실제 키 입력에 따라 선택 테두리가 움직이는 것을 확인했지만, 그것만으로 무인 조작의 안정성이 확보되지는 않았다. 게임이 멈춘 듯 보인 현상의 정확한 원인도 확정하지 못했다.
더 큰 문제는 오프닝을 한 입력씩 진행하며 매번 화면을 받아 모델이 판단하는 방식이었다. 필요한 것은 구매 전후 값인데, 작업의 중심이 도입 대사 진행과 원격 조작 절차로 옮겨 갔다. 짧은 구간마다 담당 작업을 다시 이어 붙이는 과정도 있었다. 입력 횟수가 늘어도 비교할 구매 사례는 생기지 않았다.
이를 막연히 느리다고만 평가하지 않기 위해 기존 기록에서 한 구간의 시간을 집계했다. 16시 19분 32초부터 16시 50분 52초까지, 약 31분 20초 동안 실제 입력은 29회였다. 모델 응답 102회에 약 18분 4초, 원격 작업 40회에 약 6분 6초가 기록됐고, 관측 담당을 다시 배정하는 사이의 공백은 약 6분 1초였다.
이 수치는 전체 개발 소요가 아니다. 앞선 환경 준비나 재시작도 포함하지 않은 한 오프닝 진행 구간의 감사다. 모델 응답 시간에는 서비스 대기, 화면 해석, 판단, 명령 작성과 보고가 섞여 있어 순수한 화면 판독 시간으로 부를 수 없다. 원격 작업 시간 역시 키 전달만의 시간이 아니다. 다만 거래 규칙을 확인하기 전에 조작과 왕복 절차에 많은 시간이 들어갔다는 점은 분명했다.
방향을 바꾸기 전에, 무엇을 유지할 것인가
재검토한 방향은 이미 확보한 데이터 구조와 코드 근거를 먼저 활용하는 것이다. 공개된 저장파일 편집기에는 도시와 인물, 상품 가격·수량 등을 읽는 코드가 있다. 다만 완성된 게임 엔진은 아니고, 이번 한국어판과 호환되는지도 아직 검증하지 않았다. 그대로 가져다 쓰면 된다는 결론은 낼 수 없다.
제안은 확인된 자료로 최소 규칙을 만드는 일과 원작 관측을 병행하고, 원작과 일치한다고 판단하기 전에는 반드시 독립 비교를 거치자는 것이다. 모든 입력을 모델에 되묻는 대신, 반복 가능한 부분과 예외 판단을 나누려는 취지다. 아직 속도가 얼마나 나아질지는 측정하지 않았다. 원작 자체를 브라우저에서 실행하는 환경도 비교용 후보일 뿐, 새 웹 구현의 대체는 아니다.
여기에는 중요한 단서가 있다. 이 방향은 문서 v0.2의 개정 제안이다. 현재의 선행 조건, 즉 구매 전 상태의 저장·복구와 반복 관측을 먼저 확보한 뒤 기능 구현에 들어간다는 순서는 공식 변경되지 않았다. 기존 여덟 수락 기준도 그대로 유지한다.
현재 원작 구매 관측, 저장 상태 복구, 웹 구현은 모두 미완료이며 실행과 분석은 중지돼 있다. 다음 판단은 제안한 순서를 채택할지, 그리고 어떤 좁은 데이터 확인과 관측 경로로 다시 시작할지 정하는 일이다. 원작 자료는 로컬 연구용으로만 보존한다. 첫 구매를 재현했다고 말할 수 있는 시점은 문서나 분석량이 늘었을 때가 아니라, 같은 조건의 거래 결과를 독립적으로 대조했을 때다.