2P by neo 7일전 | favorite | 댓글 1개

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, 브라우저용 포트 제안
    • 매우 재미있음