미로 아케이드 · SOURCE GUIDE

NEON MAZE

빛 조각을 모으며 추격자를 피하는 미로 게임입니다. 칸 단위 이동, 경로 연결과 여러 추격 성향을 분리해 읽는 학습 자료입니다.

AI Tools Lab · · 소스 v1.0.0

NEON MAZE 실제 실행 캔버스 화면
로컬 브라우저에서 실행한 게임 캔버스입니다. 주변 메뉴·점수판 등은 제외했으며, 게임 내 순간에 따라 화면이 달라집니다.

같은 미로에서도 다음 모퉁이가 중요합니다

NEON MAZE에서는 빛 조각을 모으면서 추격자의 길을 피합니다. 커다란 파워 코어를 얻으면 잠시 관계가 뒤집히므로, 가까운 조각만 따라가기보다 돌아올 길과 코어의 위치를 함께 기억하는 편이 유리합니다.

방향을 미리 입력해 다음 모퉁이를 준비할 수 있습니다. 캐릭터가 아직 직선 구간에 있더라도 다음 회전 의도를 기억하는 방식이 좁은 미로에서 조작을 편하게 만듭니다.

지도·규칙·그림의 역할

dist/engine.mjs에는 지도 생성과 이동·수집·추격 규칙이 있습니다. renderer.mjs는 격자와 캐릭터를 그리며 app.mjs는 화면 표시와 입력을 맡습니다. 모듈 파일을 사용하므로 로컬 서버로 실행해야 합니다.

지도는 가로 21칸, 세로 23칸입니다. makeMaze()는 고정된 초기값으로 난수를 만들고 길을 구성합니다. 화면을 새로 열 때마다 완전히 다른 무작위 지도를 그리는 것과는 구분해서 읽어야 합니다.

추격자를 색상으로만 구분하지 않기

ENEMIES에는 이름·색·설명·시작 위치·모서리 목표가 들어 있습니다. 직접 추격, 앞길 매복, 옆길 포위, 변칙 추격처럼 역할을 나눈 구조입니다. 색상을 바꾸는 수정과 추격 규칙을 바꾸는 수정은 다른 작업입니다.

지도에는 일반 수집물과 파워 코어가 있습니다. 모두 모았는지 확인하는 상태와, 일정 시간 추격 관계가 바뀌는 상태를 분리해서 읽으면 규칙의 조합이 보입니다.

직접 바꿔볼 과제: 이동 규칙은 그대로, 안내부터 바꾸기

  1. ENEMIES의 표시 색과 이름 하나를 바꾸어 엔진 데이터가 화면에 연결되는 위치를 찾습니다.
  2. 경로 계산은 그대로 두고 추격자 안내 문구를 더 이해하기 쉽게 바꿔봅니다.
  3. 지도 수정에 도전할 때는 모든 수집물에 도달할 수 있는지부터 확인합니다.

벽을 한 칸 추가하는 작은 수정도 길을 완전히 끊을 수 있습니다. 그림만 보고 판단하지 말고 시작 위치에서 각 구역까지 실제로 이동해 보세요.

경계와 연결 통로 확인

모퉁이에서 미리 누른 방향으로 돌아가는지, 양옆 연결 통로가 반대편으로 이어지는지, 일시정지 중 추격 상태가 진행되지 않는지 확인합니다. 파워 코어 효과가 끝난 직후와 스테이지 전환 직후도 따로 살펴보면 상태 전환을 이해하는 데 도움이 됩니다.

내 컴퓨터에서 실행하기

  1. 소스 ZIP을 내려받고 압축을 풉니다.
  2. README.md와 dist가 있는 폴더에서 터미널을 엽니다.
  3. 아래 명령을 실행한 뒤 http://127.0.0.1:8080/에 접속합니다.
python3 -m http.server 8080 --bind 127.0.0.1 --directory dist

Windows에서는 python3 대신 py를 사용할 수 있습니다. Python이 없다면 코드 편집기의 로컬 정적 서버를 dist에 연결하세요. 종료는 Ctrl + C입니다.

HTML 파일 더블 클릭보다 로컬 서버를 권장합니다. 모듈·이미지 경로를 일관되게 읽을 수 있습니다. 포트가 사용 중이면 8081 등으로 바꾸고 접속 주소에도 반영하세요. npm 설치나 별도 게임 빌드는 필요하지 않습니다.

이 소스로 할 수 있는 일

이 ZIP에 포함된 AI Tools Lab 제작 소스와 게임 에셋은 개인·상업 목적으로 사용, 복제, 수정, 재배포할 수 있습니다. 저작권 소유권이 양도되는 것은 아닙니다. 이 허락은 AI Tools Lab 사이트의 다른 콘텐츠에는 적용되지 않습니다. 포함되지 않은 외부 폰트·상표 등 제3자 자료는 각 권리자의 조건을 따릅니다.

설명에 있는 수정 과제는 직접 비교해 볼 실습 제안입니다. 수행하지 않은 테스트 결과나 제작 당시의 경험을 의미하지 않습니다. 오류를 발견했다면 게임명·브라우저·조작 순서와 함께 알려주세요.