[연재] 엔진 하나로 초한지까지 왔습니다 — 파일 하나만 바꿨습니다
고쳤는데 복사본에는 없었습니다
지난 글 끝에서 말씀드린 복사본 문제부터 이야기하겠습니다. 메모리 문제를 고치고 나서 보니, 고친 계산이 들어간 곳은 공통 엔진 하나뿐이었어요. 삼국지 폴더와 초한지 폴더 안에는 예전에 복사해 둔 스크립트가 따로 남아 있었고, 거기에는 고친 내용이 없었습니다. 그 복사본을 실수로 돌리면 고치기 전의 메모리 사고가 그대로 되살아날 수 있어요. 그래서 「이 복사본은 직접 돌리지 말 것」이라고 기록해 둘 수밖에 없었어요.
복사본이 둘이면 고칠 곳도 둘입니다. 하나를 고치고 다른 하나를 잊는 순간 같은 사고가 다시 납니다. 이 불편함이 이번 편의 출발점입니다. 초한지 지도를 만들려는 참이었고, 초한지도 복사해서 시작하면 복사본이 하나 더 늘어나는 거였으니까요.
지도는 복사로 시작했습니다
삼국지 지도 자체가 복사로 시작했습니다. 먼저 만든 성경 지도 코드를 복사해서 삼국지로 고쳐 쓴 거예요. 초한지는 그 삼국지를 복사해서 만들 수도 있었습니다.
그 대신 선택한 건 공통 엔진을 따로 두는 것이었습니다. 화면, 빌드, 시험 코드를 모아 하나의 폴더(history_atlas)에 두고, 아틀라스마다 데이터 폴더와 설정 파일(atlas.json) 하나만 갖게 했어요. 삼국지 폴더에는 데이터와 설정, 삼국지 전용 시험만 남았고요. 명령도 같습니다. 어느 아틀라스를 만들지 폴더 하나를 가리키면 됩니다.
성경 지도는 이 엔진 밖에 두었습니다. 성격이 달라서 따로 가기로 한 겁니다.
설정 파일에는 무엇이 들어 있나
이 설정 파일에 들어가는 항목을 보면 두 지도가 어디서 다른지 알 수 있습니다. 제목, 지도가 보여 주는 범위, 시작 연도와 끝 연도, 연도를 부르는 방식(기원전 몇 년), 세력 목록과 색깔, 참고하는 원전과 소설 이름 같은 것들이에요.
| 삼국지 아틀라스 | 초한지 아틀라스 | |
|---|---|---|
| 기간 | 184~280년 | 기원전 209~195년 |
| 처음 열었을 때 | 208년 | 기원전 206년 |
| 지도 범위 | 동경 92~128도, 북위 17~46도 | 동경 100~123도, 북위 22~42도 |
| 기준 사서 | 삼국지, 자치통감 등 | 사기, 한서, 자치통감 |
세력 이름과 색깔도 따로입니다. 삼국지는 위·촉한·오가, 초한지는 진·초·한·제·조·위·연·한(韓)·제후·흉노 같은 11개가 들어갑니다. 연의를 따로 접어 두던 칸은 초한지에서 「소설 창작 항목 보기」가 됩니다. 연의처럼 장회 번호로 짚을 소설이 없어서 회차를 입력하는 칸은 아예 없습니다.

초한지 아틀라스의 첫 화면(기원전 206년 봄). 같은 엔진 위에서 이름과 색, 시대 탭, 연도 표시만 다릅니다.
같은 화면에서 해하까지
화면이 같다는 게 중요했습니다. 연도 슬라이더, 시대 탭, 사건과 전투 목록, 전투 하나를 고르면 정사 주와 진군로가 뜨는 방식까지 삼국지에서 쓰던 그대로예요. 해하 전투(기원전 202년)를 열면 『항우본기』와 『고조본기』를 근거로 정사 주가 붙고, 항우가 포위당하는 대목이 보입니다.

해하 전투(기원전 202년) 화면. 삼국지에서 쓰던 정사 주 표시와 목록이 그대로 쓰입니다.
하루 만에 부딪힌 것들
엔진이 같다고 데이터까지 같은 건 아닙니다. 초한지 첫 빌드가 나온 날(2026-10-08 저녁) 남은 일이 넷 있었습니다.
1. 번우(지금의 광저우)가 지도 남쪽 밖에 있었습니다. 지도를 남쪽으로 넓혀 해결했습니다. 2. 고도 단면 5개가 아직 없었습니다. 메모리 문제를 고친 뒤 하나씩 돌려 만들었습니다. 3. 시대별 세력 판도가 비어 있었습니다. 이건 지금도 비어 있습니다. 4. 800km가 넘게 한 번에 움직인 기록이 네 건 있었습니다. 『사기』 원문으로 확인해 회계, 함곡관, 양적 같은 경유지를 넣었습니다.
좌표를 못 구한 지명도 있었어요. 신안은 좌표를 넣어 경로 4개를 이었는데, 서통은 좌표 근거를 못 찾아 경로 2쌍이 빠진 채로 남아 있습니다. 없는 좌표를 지어 넣으면 길은 이어지지만, 그건 1편의 약속을 어기는 일이라서요.
아직 덜 끝난 공통화
엔진을 나눈 일에도 마무리가 덜 된 곳이 있습니다. 시험 코드 중 일부가 삼국지 모양의 견본에 기대고 있어서, 같은 엔진 시험을 초한지에 돌리면 84개 중 61개가 통과합니다. 안 되는 23개는 삼국지 모양의 견본에 기대는 시험들입니다. 견본을 중립으로 바꾸는 일이 남아 있습니다.
그래도 이 선택을 후회하지 않습니다. 앞으로 고칠 곳이 한 곳이라는 건, 앞으로 틀릴 곳도 한 곳이라는 뜻이니까요.
초한지 아틀라스는 여기서 볼 수 있습니다: https://victor-house.com/chuhan/