arrow_backletspets' Projects

Swing Golf

폰을 골프채처럼 휘둘러 치는 3홀 스피드 골프

티박스에 놓인 공과 조준 리본, 그 옆에 조준 화면과 홀아웃 결과 화면을 띄운 아이폰 두 대 — Swing Golf

최신 버전

1.0

스토어 제출

2026.08.01

플랫폼

iOS·Android

코스

3홀

화면을 눌러 방향을 조준하고 폰을 쥔 채로 팔을 휘두르면 그 세기가 그대로 비거리가 됩니다. 버튼을 누르는 골프가 아니라 몸으로 치는 골프입니다. 코스는 파4·파3·파5 세 홀. 점수는 타수와 홀아웃까지 걸린 시간으로 매겨집니다. Godot 4.7로 만들었고 저장소를 만든 지 이틀 만에 iOS와 Android 양쪽 스토어에 올렸습니다. 회원가입도 인터넷 연결도 필요 없고 광고와 데이터 수집이 없습니다.

기능

진짜 스윙

가속도계가 백스윙에서 임팩트까지의 궤적을 읽어 파워를 계산한다. 살살 치면 짧게, 힘껏 휘두르면 멀리 날아간다. 사람마다 스윙 크기가 다르니 튜토리얼에서 최대 스윙을 등록하고 설정에서 스윙·퍼터 감도를 50~200%로 조정한다.

방향은 화면에서

스윙 전 화면 조준으로 방향이 100% 고정된다. 모션은 세기만 정하므로 임팩트 순간을 맞출 필요가 없다. 휘두르는 사람은 세기에만 집중하면 된다.

3홀 스피드 라운드

파4·파3·파5 세 홀을 도는 짧은 코스. 점수는 타수와 홀아웃까지 걸린 시간으로 매겨진다. 한 라운드가 몇 분이면 끝난다.

클래식 & 패스트

클래식은 공이 완전히 멈춘 뒤 다음 샷을 치는 정석 골프다. 패스트 모드는 공이 땅에 닿는 순간부터, 굴러가는 공을 그 자리에서 바로 다시 칠 수 있다.

바람과 클럽

홀마다 고정된 바람이 공의 비행에 실제로 반영되고 조준 리본이 그 궤적을 미리 보여준다. 남은 거리에 맞는 클럽이 자동 추천되고 그린에 올라가면 퍼터로 바뀐다.

기록과 공유

홀별 최고 기록은 기기에 저장된다. 라운드가 끝나면 스코어 카드 이미지를 만들어 친구에게 보낼 수 있다.

실행 화면

드라이버로 어드레스한 조준 화면 — 조준 리본과 클럽 선택 버튼
패스트 모드에서 굴러가는 중에도 바로 스윙하라는 안내가 뜬 화면
이글로 홀아웃하고 신기록이 표시된 결과 카드

제작 노트

모션은 파워만 정하게 했다

방향까지 모션으로 받으면 임팩트 순간을 밀리초 단위로 잡아야 한다. 방향을 화면 조준으로 고정하니 그 정밀도가 필요 없어졌고 60Hz 프레임 샘플링으로도 엔벨로프 피크와 임펄스가 안정적으로 잡힌다.

공은 RigidBody가 아니다

드래그·마그누스·바운스·롤·홀인을 1/240초 고정 서브스텝으로 적분하는 결정론 적분기를 따로 썼다. 조준 리본과 실제 샷과 테스트가 전부 같은 코드를 지난다. 클럽 최대 볼스피드는 목표 캐리에 맞게 이분탐색으로 역산해서, 손으로 맞춘 숫자가 어긋나는 원천을 없앴다.

센서 샘플링 레이트가 곧 fps다

Godot 센서는 프레임당 한 번 갱신된다. 프레임이 떨어지면 스윙 궤적 자체가 뭉개진다. 실그림자를 끄고 3D 스케일을 0.7로 낮추고 스윙 대기 구간에는 3D 렌더를 아예 끄는 식으로, 갤럭시 A20s에서 21fps를 스윙 구간 52fps까지 올렸다.

푸시할 때마다 게임을 완주시킨다

pre-push 훅이 유닛 테스트와 proof 하니스를 돌린다. 메뉴에서 튜토리얼, 클래식 샷, 퍼팅 홀아웃, 공유 카드, 홀 전환, 패스트 모드까지 자동으로 완주하며 스크린샷을 남기고 게이트를 집계한다. 마지막 푸시는 유닛 41종 전부 통과에 스크린샷 18장이었다.

스토어마다 스크린샷 규격이 다르다

App Store의 이 앱 iPhone 슬롯은 6.5"(1284×2778)만 받고 알파 채널이 있으면 그대로 거부한다. Play는 종횡비 상한이 2:1이라 같은 이미지를 쓸 수 없어 1080×1920으로 다시 뽑았다. 이 페이지의 화면들도 그때 아이폰 실기에서 캡처한 것이다.

심사에 올리기 전에 걷어낸 것

가속도계 없는 기기에 지원을 선언하면 심사에서 걸리므로 iPhone 전용으로 좁히고 아이콘 알파를 제거했다. 배포 번들에서 빌드·문서·테스트·도구 폴더를 빼서 pck를 1.91MB에서 1.43MB로 줄였다 — 학습용 레퍼런스 이미지가 그대로 실려 나가고 있었다.

받기 전에 알아두세요

  • iOS는 App Store 심사 대기 중입니다. 수동 출시로 걸어 둬서 심사를 통과해도 직접 출시 버튼을 눌러야 공개됩니다.
  • Android는 Google Play 내부 테스트 트랙에 배포된 상태입니다. 프로덕션 공개는 비공개 테스트를 거쳐 액세스 권한을 신청해야 합니다.
  • iPhone 전용입니다. iPad는 지원하지 않습니다.
  • 팔을 휘두르는 게임입니다. 주변에 사람이나 물건이 없는 곳에서 폰을 꼭 쥐고 플레이해 주세요.
  • 저장소가 비공개라 소스 코드 링크를 제공하지 않습니다.

두 스토어 모두 심사·테스트 단계라 아직 받을 수 있는 링크가 없습니다. 공개되면 이 자리에 스토어 링크를 답니다.