무중력 우주선 도킹 시뮬레이터(Zero-G Docking)는 공기 저항과 중력 감속이 전혀 존재하지 않는 극한의 우주 환경에서 추진제 관성만을 이용해 우주비행사가 직접 우주정거장 도킹 칼라에 기체를 결합하는 고난도 궤도 수동 랑데부 과제를 해결합니다. 브라우저 환경에서 별도의 플러그인 설치 없이 순수 HTML5 캔버스와 Web Audio API로 구현되어 데스크톱 키보드는 물론 모바일 터치 환경에서도 정밀한 우주 비행의 손맛을 제공합니다.
🚀 실제 구현 기능 (Core Features)
- 뉴턴 역학 기반 순수 무중력 관성 비행 엔진:
- 대기 마찰이 없는 진공 공간 특성을 완벽히 재현하여 한 번 발생한 선형 속도와 각속도는 반대 방향 역추진을 가하기 전까지 감속 없이 영구히 지속됩니다.
- 전진(Forward), 역추진(Retro), 좌/우 횡이동(Lateral Strafe) 4방향 병진 RCS와 시계(CW)/반시계(CCW) 2방향 회전 모멘트 토크를 독립적으로 조작할 수 있습니다.
- SAS (Stability Augmentation System) 자세 자동 감쇄:
- 회전 입력이 없을 때 비행 컴퓨터가 기체 잔여 각속도($\omega$)를 실시간 감지하여 미세 역분사로 회전을 멈추고 현재 기수를 안정적으로 유지하는 전자 제어 시스템을 토글(
T키 / HUD 버튼)할 수 있습니다.
- 회전 입력이 없을 때 비행 컴퓨터가 기체 잔여 각속도($\omega$)를 실시간 감지하여 미세 역분사로 회전을 멈추고 현재 기수를 안정적으로 유지하는 전자 제어 시스템을 토글(
- 5단계 점진적 난이도 미션 스테이지:
- 스테이지 1: 저궤도 기본 정지 도킹: 정지 궤도 모듈 접근, 넉넉한 100% 추진제, 기본 관성 적응.
- 스테이지 2: 회전 우주정거장 동기화: 초당 약 6.9°로 자전하는 원심 정거장의 회전축에 기체 각속도를 완벽히 일치시키는 인터스텔라 스타일 도킹.
- 스테이지 3: 우주 잔해 회피 궤도: 접근 통로를 불규칙하게 가로지르는 우주 쓰레기와 소행성 파편을 피하며 회랑 내 진입.
- 스테이지 4: 연료 긴급 상황 (RCS 결함): 초기 추진제 40% 제한 상태에서 최소한의 펄스 분사만으로 랑데부 완수.
- 스테이지 5: 거대 연구기지 텀블링: 복합 다축 회전과 워블 진동을 일으키는 대형 외곽 기지의 극한 수동 도킹.
- 소프트 래치 자성 유도 및 하드 도킹 물리 판정:
- 도킹 포트 36px 이내로 근접하고 축 정렬이 일치할 경우 전자기적 유도 인력이 작동하여 부드러운 최종 결합을 돕습니다.
- 진입 속도(시속 1.25 m/s 이하), 도킹 축 기울기 각도(8.5° 이내), 측면 편차(15px 이내)의 4대 안전 기준을 모두 충족해야 하드 래치가 체결되며 한계 초과 시 선체 충돌 및 바운스 파손이 발생합니다.
- 시크하고 차분한 모스 그린 & 테라코타 자연 톤 테마:
- 딥 모스 그린(#14221D, #1B2F28, #385B4E) 바탕의 우주 캔버스와 온스크린 HUD 패널, 온화한 테라코타(#C86446, #D97757, #E28D72) 열차폐 타일 및 분사 불꽃 악센트로 세련된 자연 감성 비주얼을 제공합니다.
- Web Audio API 프로시저럴 사운드 합성:
- 압축 냉각 가스 RCS 분사 히스 노이즈, 주 추진 펄스 공명음, 도킹 포트 거리 비율에 따라 템포와 주파수가 변하는 레이더 비프음, 결합 성공 시의 금속 체결 및 하모닉 팡파르, 충돌 금속 파열음을 외부 음원 다운로드 없이 즉시 합성합니다.
- 프로젝트 접두사 기반 자동 로컬 저장 (
zero_g_docking_):zero_g_docking_high_score: 도킹 부드러움, 각도 정밀도, 잔여 연료, 비행 시간을 종합 산출한 최고 점수.zero_g_docking_longest_time: 무중력 궤도 상에서 충돌 없이 자세를 유지한 최장 비행 생존 시간.zero_g_docking_stage_progress: 1부터 5단계까지 달성한 최고 스테이지 해금 상태.zero_g_docking_total_dockings: 누적 성공 도킹 횟수.zero_g_docking_sound: 사용자 음향 온/오프 환경설정.
👥 대상 사용자 (Target Audience)
- 케르발 스페이스 프로그램(KSP), 오비터(Orbiter), 루나 랜더 등 물리학 기반 우주 비행 조종의 손맛을 즐기는 사용자
- 영화 인터스텔라(Interstellar)의 회전 정거장 수동 결합 씬처럼 정밀한 랑데부 도킹을 직접 체험하고 싶은 게이머
- 공기 저항이 없는 순수 뉴턴 관성 법칙과 작용-반작용 추진 원리를 시각적·체감적으로 학습하고자 하는 학생 및 엔지니어
- 설치나 로그인 없이 모바일과 PC 웹 브라우저에서 가볍게 반사 신경과 정밀 조작 실력을 겨루고 싶은 플레이어
🎯 활용 사례 (Use Cases)
- 무중력 물리 직관 훈련: 추진기를 끈 상태에서도 일정한 속도로 계속 직진하는 관성 이동과 카운터 분사의 필요성을 자연스럽게 체득
- 회전 각속도 동기화 연습: 2단계 및 5단계에서 자전하는 대상 정거장의 회전 속도에 맞춰 기체를 회전시키며 상대 속도를 0으로 유지하는 비행술 연마
- 추진제 절약 챌린지: 불필요한 가속 대신 관성 드리프트를 적극 활용하여 잔여 연료 80% 이상으로 도킹 점수 극대화
⚠️ 기술적 제한 사항 (Limitations)
- 브라우저 LocalStorage 의존: 최고 점수, 최장 시간, 스테이지 해금 기록은 실행 중인 기기 브라우저의 로컬 스토리지에 보관되므로 브라우저 쿠키/사이트 데이터를 완전 삭제하거나 시크릿 창에서 실행할 경우 초기화됩니다.
- 오디오 자동 재생 보안 규정: 최신 웹 브라우저의 Web Audio 보안 정책에 따라 사용자의 첫 번째 화면 터치 또는 키보드 조작이 발생한 이후 효과음이 활성화됩니다.
- 진동 햅틱 지원 범위: Web Vibration API를 지원하는 모바일 기기(안드로이드 크롬 등)에서만 햅틱 피드백이 발생하며 데스크톱 PC나 iOS Safari 환경에서는 진동이 생략됩니다.
📖 사용 방법 (How to Play)
- 상태 계측기 확인: 상단 좌측 HUD에서 도킹 포트까지의 거리(DIST), 접근 속도(V-AXIAL), 축 편차(OFFSET), 정렬 각도 오차(ANG-ERR), 추진제 잔여량(RCS PROPELLANT)을 확인합니다.
- 기체 병진 이동 (Translation):
- 데스크톱:
W(전진 가속),S(역추진 감속),A(좌측 횡이동),D(우측 횡이동) 키를 짧게 톡톡 눌러 미세 속도를 부여합니다. - 모바일: 하단 좌측 4방향 D-Pad 버튼을 터치하거나 화면을 원하는 방향으로 드래그합니다.
- 데스크톱:
- 기체 회전 및 각도 정렬 (Rotation):
Q/←키로 반시계 회전,E/→키로 시계 회전하여 기체 앞부분의 도킹 프로브를 우주정거장의 도킹 칼라 방향으로 똑바로 맞춥니다.- 비의도적인 회전을 멈추고 싶다면
T키 또는 중앙 SAS: ON 버튼을 활성화하여 기수 안정화를 켭니다.
- 안전 도킹 회랑 진입:
- 레이저 가이드선이 뻗어 나오는 정렬 회랑 안으로 진입하면 인디케이터가 녹색으로 점등합니다.
- 접촉 직전 접근 속도를 시속 0.4 ~ 0.8 m/s 수준으로 낮추고 각도 오차를 5° 이내로 정렬합니다.
- 도킹 체결 및 점수 획득:
- 안전 조건 범위 내에서 접촉하면 마그네틱 래치가 기체를 끌어당겨 완벽히 잠그며 착륙 부드러움, 정렬도, 잔여 연료, 비행 시간에 따른 미션 점수가 산출됩니다.
❓ 자주 묻는 질문 (FAQ)
Q1. 추진기를 뗐는데도 우주선이 멈추지 않고 계속 날아가는 이유는 무엇인가요?
A1. 우주 공간은 공기 저항과 마찰이 없는 완전한 진공 무중력 상태이기 때문입니다. 뉴턴의 제1법칙(관성의 법칙)에 따라 한 번 얻은 속도는 반대 방향으로 스러스터를 분사(역추진 S 키 또는 비상 브레이크 Space)하여 운동량을 상쇄시키기 전까지 계속 유지됩니다. 지속적으로 꾹 누르지 말고 짧게 끊어서 분사하는 것이 핵심입니다.
Q2. 도킹 포트에 닿았는데 결합되지 않고 폭발하는 이유는 무엇인가요?
A2. 안전 도킹 한계 기준을 초과했기 때문입니다. 전진 접근 속도가 1.25 m/s를 초과하여 너무 강하게 부딪혔거나 진입 각도가 8.5° 이상 틀어졌거나 도킹 포트 중심선에서 벗어난 상태로 충돌하면 충격으로 기체가 튕겨 나가거나 파손됩니다. 포트에 접근할수록 역추진을 걸어 속도를 0에 가깝게 줄여야 합니다.
Q3. SAS 기능은 무엇이며 언제 켜고 꺼야 하나요?
A3. SAS(자세 안정화 시스템)는 조종 입력이 없을 때 기체의 회전 쏠림을 감지하여 자동으로 반대 토크를 분사해 기수를 고정해주는 오토 파일럿입니다. 일반적으로는 SAS를 켜두는 것이 직선 비행에 유리하지만 회전하는 정거장과 속도를 맞춰 연속으로 회전해야 하는 스테이지 2나 5에서는 정밀한 수동 각속도 동기화를 위해 일시적으로 끄거나 수동 회전 입력을 지속하는 것이 효과적입니다.
WebMiniApps