본 게임 개발 과정은 여러 핵심 구성 요소를 포함합니다.
씬 관리 및 게임 로직
-
게임은
:game과:game_over두 씬으로 구분되며, 상태에 따라 화면 전환을 구현합니다. -
game_over?메서드로 비행기 추락 또는 장애물 충돌 시 게임 종료 조건을 확인합니다. -
init,calc,render메서드를 활용하여 상태 초기화, 로직 계산, 화면 렌더링을 체계적으로 분리합니다.
충돌 감지 및 장애물 시스템
-
walls배열로 이동하는 장애물을 관리하며, 화면 밖으로 나간 벽은 제거하고 새로운 벽을 주기적으로 생성합니다. -
DragonRuby의
any_intersect_rect?메서드를 사용하여 비행기와 벽 스프라이트 간의 충돌을 효율적으로 감지합니다.
점수 시스템 및 사운드 효과
-
플레이어
score를 추적하고 화면에 표시하며, 벽을 통과할 때마다 점수를 증가시킵니다. -
루핑 엔진 사운드와 비행기 상승, 점수 획득, 게임 오버 시 재생되는 원샷 사운드 효과를 통합하여 몰입도를 높입니다.
-
game_over_played플래그로 게임 오버 사운드 중복 재생을 방지합니다.
HTTP 서버 연동 및 하이 스코어
-
Roda 기반의 경량 HTTP 서버를 구축하여
/score엔드포인트를 통해 점수를POST하고, 상위 3개 하이 스코어를GET합니다. -
DragonRuby의
http_post_body를 사용하여 비동기적으로 점수를 전송하고, 게임 오버 씬에서 업데이트된 리더보드를 화면에 렌더링합니다.
itch.io 배포 과정
-
game_metadata.txt파일 설정 후bundle_game명령어로 HTML5 빌드를 생성합니다. -
생성된
.zip파일을 itch.io에 업로드하고, 브라우저 플레이 설정을 완료하여 게임을 공개합니다.