2 điểm bởi GN⁺ 2024-09-12 | 1 bình luận | Chia sẻ qua WhatsApp

Holy smokes, I just released a MiniGolf game for Palm OS in 2024

Phát hành trò chơi MiniGolf mới cho Palm OS

  • Mùa hè này, tôi đã bắt đầu một dự án tạo một trò chơi mới cho Palm OS
  • Sau chưa đầy hai tháng lập trình ngắt quãng, tôi rất vui khi phát hành "Captain's MiniGolf (v0.6)"
  • Tính năng chính của trò chơi là người dùng có thể tự tạo màn chơi
  • Có thể tạo cơ sở dữ liệu gói màn để chia sẻ với người dùng khác

Cách chơi

  • Ngay cả khi không có thiết bị Palm OS, bạn vẫn có thể chơi trực tiếp trên trình duyệt nhờ trình giả lập cloudpilot
  • Có cung cấp bản tải trò chơi và trình giả lập trong trình duyệt

Khó khăn khi lập trình cho Palm OS

  • Khi lập trình bằng ngôn ngữ C, tôi nhận ra một vài điều:
    • Không có các tính năng tiện lợi như trong ngôn ngữ lập trình hiện đại nên rất dễ mắc lỗi
    • Rò rỉ bộ nhớ xảy ra thường xuyên
    • Việc debug hình đa giác và quỹ đạo rất khó, nên bản dựng debug giúp ích rất nhiều
  • Việc lập trình trở nên khó khăn do thiếu tài liệu về Palm OS
  • Tôi đã dùng hai tài liệu tham khảo sau:
    • The Palm OS Programmer Companion (một phần của Palm OS SDK)
    • Palm OS Programming Bible
  • Tôi cũng tham khảo mã trò chơi Palm OS do các nhà phát triển khác chia sẻ trên GitHub

Tại sao lại là Palm OS?

  • Thiết bị Palm OS có thể làm được nhiều việc nhờ sự đơn giản và thanh lịch
  • Những ràng buộc này thúc đẩy tư duy sáng tạo và việc tìm ra các cách giải quyết thay thế
  • Với điện thoại hiện đại có hiệu năng cao, người ta thường không bận tâm đến tối ưu mã

Lỗi đã biết

  • Quả bóng có thể bị kẹt vào tường
  • Nếu tạo màn có tường đa giác khép kín bên trong tường của sân chính, nền/sân sẽ không được tô màu đúng cách

Điểm cần cải thiện

  • Thêm tùy chọn xóa/di chuyển màn
  • Thêm tùy chọn xóa và chia sẻ gói màn (hiện tại phải dùng ứng dụng bên ngoài như FileZ)
  • Độ phân giải đang bị cố định ở 160x160 (hoặc 320x320 trên thiết bị Palm OS 5 độ phân giải cao), cần thay đổi động theo kích thước màn hình

Chia sẻ là quan tâm

  • Toàn bộ mã nguồn của trò chơi này được công khai theo giấy phép GPL3
  • Tôi hy vọng nó sẽ truyền cảm hứng hoặc giúp người khác tạo ra thêm nhiều trò chơi Palm OS
  • Có cung cấp mã nguồn của Captain's MiniGolf

Tóm tắt của GN⁺

  • Bài viết này gợi lại cảm giác hoài niệm về Palm OS và nhấn mạnh niềm vui của việc tìm ra giải pháp sáng tạo với tài nguyên hạn chế
  • Khác với các thiết bị hiện đại hiệu năng cao, những ràng buộc của Palm OS đòi hỏi nhà phát triển phải đối mặt với thách thức và phát huy sự sáng tạo
  • Bài viết cung cấp tài liệu tham khảo hữu ích và mã nguồn cho những ai quan tâm đến phát triển trò chơi trên Palm OS
  • Một dự án có chức năng tương tự được gợi ý là các dự án giả lập như RetroArch

1 bình luận

 
GN⁺ 2024-09-12
Ý kiến trên Hacker News
  • Đề xuất thêm hoạt ảnh "quả bóng rơi vào lỗ"

    • Nhìn thấy quả bóng vào lỗ có thể tạo cảm giác thành tựu
  • Đề xuất thêm một hoạt ảnh chúc mừng ngắn trước khi tải màn tiếp theo

    • Dòng chữ "Loading" xuất hiện quá đột ngột, tạo cảm giác như đã làm sai điều gì đó
    • Hiển thị chữ như "Nice!" và cho thấy quả bóng biến mất vào trong lỗ
    • Có thể hiển thị hộp thoại tải trong thời gian ngắn hoặc bỏ qua
  • Chia sẻ kinh nghiệm phát triển một trò mini golf cho Macintosh vào thập niên 1990

    • Đang khôi phục mã nguồn 35 năm tuổi và tạo ảnh đĩa cho trình giả lập
    • Bản thử nghiệm đen trắng đầu tiên có trên GitHub
    • Bản thử nghiệm màu thứ hai dự kiến sẽ có trong Volume 2
  • Ý kiến về tính thực dụng của các tệp thực thi homebrew retro như Palm OS

    • Có thể chạy trên nhiều nền tảng, ngoại tuyến, hiệu quả và không có yếu tố gây xao nhãng
    • Các trò như Apotris có thể chơi trên nhiều máy console và máy tính mà không cần cài đặt
    • Ưu điểm của một tệp thực thi đơn: vẫn có thể chạy sau một thời gian rất dài
  • Hoài niệm về Palm IIIxe

    • Ít thông báo và chỉ cung cấp những chức năng cần thiết
    • Mất thời gian để làm cho thông báo trên iPhone trở nên yên lặng
    • Palm không gửi thông báo nếu người dùng không yêu cầu
    • Không muốn quay lại, nhưng vẫn nhớ một vài điều
  • Đề xuất cho thấy quả bóng rơi vào lỗ

    • Có thể tăng sự thỏa mãn cho người chơi
  • Hoài niệm về Palm LifeDrive

    • Làm mất nó khi chuyển sang Blackberries
    • Đó là một thiết bị đáng kinh ngạc vào thời điểm đó
  • Ý kiến về những vấn đề thường gặp trong phát triển game

    • Rò rỉ bộ nhớ, gỡ lỗi v.v. là những vấn đề phổ biến
    • Các game engine như Unreal, Unity, Godot đã trừu tượng hóa nhiều vấn đề
    • Khi phát triển game với C, OpenGL và giới hạn bộ nhớ, có thể gặp các vấn đề tương tự
    • Quan tâm đến việc triển khai trình chỉnh sửa màn chơi
  • Khen ngợi thiết kế mỹ thuật của trò mini golf

    • Có vẻ việc đảo ngược hướng điều khiển chuột sẽ tự nhiên hơn
    • Nếu là fan game FOSS thì nên thử Neverball và Neverput
  • Ý kiến cho rằng game rất vui trong trình giả lập trên trình duyệt

    • Đề xuất port sang Android, iOS và trình duyệt
    • Rất vui