피드로 돌아가기
Solstice Panic! — Protect the Sun on the Longest Day of the Year
Dev.toDev.to
Frontend

Web Audio API와 Canvas 루프 기반의 제로-에셋 고성능 아케이드 엔진 설계

Solstice Panic! — Protect the Sun on the Longest Day of the Year

Aashita2026년 6월 17일7intermediate

Context

게임 잼의 제한된 시간 내에 8종의 서로 다른 물리 체계와 실시간 오디오 합성을 구현해야 하는 제약 발생. 외부 에셋(이미지, 사운드 파일) 의존도를 완전히 제거하여 런타임 오버헤드를 최소화하고 로딩 속도를 극대화한 구조 설계가 필요했음.

Technical Solution

  • TypeScript State Queue 기반의 독립적 렌더 루프 설계로 8가지 서로 다른 Power-up 물리 상태의 동시 실행 및 렌더링 충돌 방지
  • HTML5 Canvas API의 Vector Movement와 Glow Gradient를 활용하여 외부 Sprite Sheet 없이 코드로만 시각 효과를 구현하는 절차적 그래픽스 적용
  • Web Audio API를 통한 수학적 파형 합성을 적용하여 파일 I/O 없이 런타임에 사운드를 생성하는 Zero-Audio-File 아키텍처 구축
  • 콤보 수치에 따른 Base Frequency 가변 제어 로직을 통해 게임 진행도와 청각적 피드백을 동기화한 동적 오디오 시스템 구현
  • Cloud Run 기반의 서버리스 배포를 통해 확장 가능한 웹 경험을 제공하고 인프라 관리 비용 최소화

- 외부 에셋 의존성을 제거하고 Procedural Generation을 도입하여 초기 로딩 시간과 패키지 크기를 줄일 수 있는가? - 다수의 독립적인 물리 상태가 공존하는 시스템에서 State Queue를 통해 렌더링 사이클의 원자성을 보장하고 있는가? - Web Audio API의 Oscillator를 활용해 게임 상태와 연동되는 동적 사운드 피드백을 구현함으로써 몰입감을 높일 수 있는가?

원문 읽기