GN⁺: Palm OS용 미니골프 게임
(ctrl-c.club)Holy smokes, I just released a MiniGolf game for Palm OS in 2024
새로운 Palm OS MiniGolf 게임 출시
- 이번 여름, 새로운 Palm OS 게임을 만드는 프로젝트를 시작했음
- 두 달도 안 되는 간헐적인 코딩 후, "Captain's MiniGolf (v0.6)"을 출시하게 되어 기쁨
- 게임의 주요 특징은 사용자가 직접 레벨을 만들 수 있다는 점임
- 레벨팩 데이터베이스를 만들어 다른 사용자와 공유 가능
게임 플레이 방법
- Palm OS 기기가 없어도, cloudpilot 에뮬레이터 덕분에 브라우저에서 직접 플레이 가능
- 게임 다운로드 및 브라우저 내 에뮬레이터 제공
Palm OS 코딩의 어려움
- C 언어로 코딩하면서 몇 가지 깨달은 점:
- 현대 프로그래밍 언어에서 제공하는 편의 기능이 없어 실수하기 쉬움
- 메모리 누수가 자주 발생함
- 다각형 모양과 궤적 디버깅이 어려워 디버그 빌드가 큰 도움이 됨
- Palm OS의 문서 부족으로 인해 코딩이 어려움
- 다음 두 가지 참고 자료를 사용:
- The Palm OS Programmer Companion (Palm OS SDK의 일부)
- Palm OS Programming Bible
- GitHub에 다른 개발자들이 공유한 Palm OS 게임 코드도 참고
왜 Palm OS인가?
- Palm OS 기기는 단순함과 우아함으로 많은 일을 해낼 수 있음
- 이러한 제약 조건이 창의적인 사고와 대안적 해결책을 찾게 만듦
- 현대의 성능 좋은 휴대폰에서는 코드 최적화에 신경 쓰지 않음
알려진 버그
- 공이 벽에 끼일 수 있음
- 메인 필드 벽 내에 닫힌 다각형 벽이 있는 레벨을 만들면 배경/코스를 올바르게 색칠하지 못함
개선 사항
- 레벨 삭제/이동 옵션 추가
- 레벨팩 삭제 및 공유 옵션 추가 (현재는 FileZ 같은 외부 애플리케이션을 사용해야 함)
- 해상도가 160x160 (또는 Palm OS 5 고해상도 기기에서는 320x320)으로 고정되어 있음, 화면 크기에 따라 동적으로 변경 필요
공유는 배려
- 이 게임의 전체 소스 코드를 GPL3 라이선스로 공개
- 다른 사람들이 더 많은 Palm OS 게임을 만들 수 있도록 영감을 주거나 도움이 되길 바람
- Captain's MiniGolf 소스 코드 제공
GN⁺의 정리
- 이 글은 Palm OS에 대한 향수를 자극하며, 제한된 자원으로 창의적인 해결책을 찾는 재미를 강조함
- 현대의 성능 좋은 기기와는 달리, Palm OS의 제약 조건이 개발자에게 도전과 창의성을 요구함
- Palm OS 게임 개발에 관심 있는 사람들에게 유용한 참고 자료와 소스 코드를 제공함
- 비슷한 기능을 가진 프로젝트로는 RetroArch와 같은 에뮬레이터 프로젝트를 추천함
Hacker News 의견
-
"공이 구멍에 떨어지는" 애니메이션 추가 제안
- 공이 구멍에 들어가는 모습을 보면 성취감을 느낄 수 있음
-
다음 레벨 로딩 전에 짧은 축하 애니메이션 추가 제안
- "Loading" 텍스트가 갑작스러워 잘못한 것 같은 느낌을 줌
- "Nice!" 같은 텍스트를 표시하고, 공이 구멍에 사라지는 모습을 보여줌
- 로딩 다이얼로그를 짧게 보여주거나 생략 가능
-
1990년대 Macintosh용 미니어처 골프 게임 개발 경험 공유
- 35년 된 소스를 복구하고 에뮬레이터용 디스크 이미지 생성 중
- 첫 번째 흑백 시도는 GitHub에 있음
- 두 번째 컬러 시도는 Volume 2에 포함 예정
-
Palm OS와 같은 레트로 홈브루 실행 파일의 실용성에 대한 의견
- 다양한 플랫폼에서 실행 가능하고, 오프라인, 효율적, 방해 요소 없음
- Apotris 같은 게임은 여러 콘솔과 컴퓨터에서 설치 없이 플레이 가능
- 단일 실행 파일의 장점: 오랜 시간 후에도 실행 가능
-
Palm IIIxe에 대한 향수
- 알림이 적고 필요한 기능만 제공
- iPhone의 알림을 조용히 만드는 데 시간이 걸림
- Palm은 사용자가 요청하지 않으면 알림을 보내지 않음
- 돌아가고 싶지는 않지만 일부는 그리움
-
공이 구멍에 떨어지는 모습을 보여주는 제안
- 플레이어의 만족감을 높일 수 있음
-
Palm LifeDrive에 대한 향수
- Blackberries로 변경하면서 잃어버림
- 당시에는 놀라운 장치였음
-
게임 개발에서 흔한 문제들에 대한 의견
- 메모리 누수, 디버깅 등은 흔한 문제
- Unreal, Unity, Godot 같은 게임 엔진이 많은 문제를 추상화함
- C, OpenGL, 메모리 제한으로 게임 개발 시 비슷한 문제를 겪을 수 있음
- 레벨 에디터 구현에 관심
-
미니어처 골프 게임의 아트 디자인 칭찬
- 마우스 조작 방향을 반대로 하는 것이 더 자연스러울 것 같음
- FOSS 게임 팬이라면 Neverball과 Neverput 추천
-
브라우저 기반 에뮬레이터에서 게임이 재미있다는 의견
- Android, iOS, 브라우저용 포트 제안
- 매우 재미있음