Trò chơi minigolf cho Palm OS
(ctrl-c.club)- Năm 2024, trò chơi minigolf mới cho Palm OS Captain's MiniGolf v0.6 đã được phát hành, hoàn thành sau chưa đầy khoảng hai tháng viết mã không liên tục
- Điểm cốt lõi là cấu trúc cho phép người chơi tự tạo cơ sở dữ liệu gói màn chơi, xuất ra và chia sẻ với người dùng khác
- Ngay cả khi không có thiết bị Palm OS thật, vẫn có thể chạy trực tiếp trên trình duyệt bằng trình giả lập cloudpilot
- C và môi trường Palm OS cũ một lần nữa bộc lộ các hạn chế phát triển như rò rỉ bộ nhớ, khó gỡ lỗi polygon/đường đi của bóng, và thiếu tài liệu
- Mã nguồn đã được công bố theo giấy phép GPL3, có thể dùng làm tài liệu tham khảo để người khác tạo game Palm OS
Phát hành Captain's MiniGolf v0.6
- Captain's MiniGolf v0.6 là trò chơi minigolf cho Palm OS mới được tạo trong năm 2024
- Bắt đầu như một dự án phụ mùa hè, và được phát hành sau chưa đầy hai tháng viết mã không liên tục
- Đặc điểm lớn nhất là người dùng có thể tự tạo cơ sở dữ liệu gói màn chơi
- Các gói màn chơi đã tạo có thể được xuất ra và chia sẻ
- Việc chờ xem người dùng khác sẽ tạo những sân chơi nào vẫn là một điểm thú vị được kỳ vọng
- Ngay cả khi không có thiết bị Palm OS, cũng có thể chạy trên trình duyệt thông qua trình giả lập cloudpilot
Trải nghiệm phát triển Palm OS và tài liệu công khai
- Khi làm game cho Palm OS bằng C, tác giả một lần nữa xác nhận rằng khi không có các cơ chế bảo vệ của ngôn ngữ hiện đại, những sai sót nhỏ có thể dẫn đến vấn đề lớn hơn
- Rò rỉ bộ nhớ xảy ra thường xuyên hơn dự kiến, và việc gỡ lỗi hình dạng polygon cũng như đường đi của bóng cũng không dễ dàng
- Bản build gỡ lỗi trực quan hóa logic bên trong đã giúp ích rất nhiều trong việc xác định vấn đề
- Palm OS thiếu tài liệu, làm tăng độ khó phát triển, và các tài liệu sau được dùng để tham khảo
- Các lỗi đã biết gồm vấn đề bóng bị kẹt vào tường, và vấn đề màu nền hoặc màu sân không được xử lý đúng khi tạo polygon tường khép kín bên trong khu vực chơi chính
- Các hạng mục dự kiến cải thiện gồm xóa/di chuyển màn chơi, xóa/chia sẻ gói màn chơi, và hỗ trợ độ phân giải động theo kích thước màn hình
- Độ phân giải hiện được cố định ở 160x160
- Trên các thiết bị Palm OS 5 độ phân giải cao, game hoạt động ở 320x320
- Toàn bộ mã nguồn được công bố theo giấy phép GPL3
- Bản nháp được viết trên Palm Zire 72
1 bình luận
Ý kiến trên Hacker News
Vào thập niên 1990, tôi đã hai lần bắt tay làm một game mini golf cho Macintosh, nhưng cuối cùng không hoàn thiện hay phát hành được.
Gần đây tôi đang khôi phục mã nguồn gần 35 năm tuổi và tạo image đĩa để dùng trên trình giả lập. Lần thử làm MiniGolf đen trắng đầu tiên ở đây: https://github.com/EngineersNeedArt/SoftDorothy-UnfinishedTa...
Lần thử thứ hai là phiên bản màu được làm khi kỹ năng lập trình của tôi đã khá hơn, và sẽ được đưa vào Volume 2. Hiện tôi đang ghép image đĩa đó
Hay quá!
Tôi tò mò không biết bạn đã nghĩ đến việc thêm animation quả bóng rơi vào lỗ chưa. Trong video, có vẻ như level mới được load ngay khi bóng và lỗ chồng lên nhau đủ nhiều.
Từ góc nhìn người dùng, thấy bóng thật sự rơi vào lỗ chắc sẽ thỏa mãn hơn nhiều. Cũng sẽ tạo cảm giác đạt được thành tựu hơn trước khi level tiếp theo được load
Công việc tuyệt vời, cảm ơn bạn!
Gần đây tôi bắt đầu nghĩ rằng Palm OS hay các định dạng file thực thi homebrew retro khác có thể có công dụng thực tế vượt ngoài sự hoài niệm.
Những thứ như Palm OS
.prc, ROM homebrew.gbtrên itch.io có thể chạy trên desktop, iOS, Android và thiết bị chơi game thật; chúng hiệu quả khi offline, không gây phân tâm và không có khả năng mua hàng trong ứng dụng.Lấy Apotris làm ví dụ: tôi đã mua nhiều phiên bản Tetris chính thức trong nhiều năm và có lẽ vẫn sẽ tiếp tục, nhưng đây là một bản triển khai cực kỳ mượt có thể chạy trên mọi console. Nhờ các trình giả lập GBA dựa trên WASM như RetroArch Web và hỗ trợ gamepad mặc định của trình duyệt hiện đại, gần như máy tính nào cũng có thể chơi mà không cần cài đặt.
Hơn nữa, có một file thực thi độc lập duy nhất cũng mang lại cảm giác yên tâm rằng sau 1 năm, 10 năm, 20 năm nữa khả năng cao vẫn chạy được. Có lẽ điều đó không đúng với nhiều game iOS hay game indie web mà tôi thích
Tôi từng viết code cho PalmOS khoảng năm 1999. Điều đặc biệt còn nhớ là cách test ứng dụng.
Hình như đó là một tính năng của emulator, nó liên tục ném event vào phần mềm. Tôi quên chi tiết rồi, nhưng ví dụ chịu được 1.000 event thì đậu, 10.000 thì tốt, 100.000 thì xuất sắc.
Tôi vốn nghĩ mình là một lập trình viên C++ khá ổn, nhưng khi dùng công cụ đó, tôi bị sốc vì ứng dụng chết nhanh đến mức nào. Đó là một trải nghiệm khiến tôi khiêm tốn hơn nhiều và thật sự mở mắt.
Tôi thường nhớ đến việc một công cụ đơn giản như vậy lại hiệu quả đến mức nào trong việc phơi bày bug, dù chắc cách đó không còn áp dụng nguyên xi được cho các thiết bị đa nhiệm, kết nối Internet ngày nay.
Một điều nữa tôi nhớ là CodeWarrior là IDE đầu tiên có hộp thả xuống hiển thị mọi hàm trong file nguồn hiện tại. Về năng suất thì đó là một bước tiến khá lớn.
Nhân tiện, năm 2010 khi ở Nhật tôi vẫn còn dùng Palm Tungsten. Có một app từ điển tiếng Nhật rất đơn giản cho Palm; chỉ cần nắm các quy tắc cơ bản về thứ tự và hướng nét, bạn có thể dùng stylus bắt chước ký tự mình nhìn thấy để tìm chữ Hán khớp. Tôi đã giải quyết được khá nhiều việc tìm đường bằng cách bắt chước các chữ Hán không biết trên biển hiệu
> drop-down box with all the functionsTôi nhớ
#pragma -dùng để phân tách các hàm. Giờ không còn thứ như vậy nữa. Có lựa chọn thay thế là#pragma regionđể gập khối code, nhưng nó khácKhi tự hỏi liệu có thể chạy thứ này trên phần cứng thật không, tôi nhận ra mình hoàn toàn không biết chiếc Palm LifeDrive của mình đã đi đâu sau khi chuyển sang BlackBerry.
Tôi nhớ chiếc PDA nhỏ, dày đó. Vào thời điểm ấy nó thật sự rất ấn tượng.
https://en.wikipedia.org/wiki/LifeDrive
Một mặt, tôi ghét nó vì thời gian load gây bực mình so với các thiết bị trước. Lý do là hệ điều hành vốn được thiết kế để đặt mọi thứ trong RAM/ROM, ban đầu thậm chí không có khái niệm bộ nhớ dựa trên file/block, nên gần như mỗi lần truy cập bộ nhớ ngoài dự kiến đều đánh thức ổ cứng. Nó cũng tương đối cồng kềnh.
Mặt khác, nó có 4GB. Có thể chứa nguyên hơn hai bộ phim. Nó cũng là chiếc Palm đầu tiên có Wi-Fi, nên tôi thích điểm đó.
Nhìn chung, với tôi nó giống như biểu tượng cho việc Palm đang nhanh chóng hụt hơi trước xu hướng hiện đại. Chẳng hạn Symbian không thể so với Palm OS về tính dễ dùng, nhưng xét từ góc độ hệ điều hành thì đi trước hơn nhiều; rồi sau đó dĩ nhiên là iPhone và Android xuất hiện
Tôi thật sự thích nó, đặc biệt là thiết kế mỹ thuật. Làm rất tốt.
Cá nhân tôi muốn thay đổi một điểm: khi nhắm, di chuyển chuột theo hướng ngược lại có vẻ tự nhiên hơn. Rất nhiều game mini golf cũ của Miniclip đã làm như vậy.
Nếu bạn thích game nguồn mở tự do, tôi đề xuất Neverball và Neverput. Neverput là một trình mô phỏng golf 3D có đồ họa khá ổn
Đẹp quá! Nhờ vậy mà tôi lại nhớ chiếc IIIxe của mình
Nếu nhìn qua lăng kính màu hồng của ký ức không chính xác, có lẽ đó là thứ gần đạt đỉnh về năng suất trên thiết bị cầm tay. Nó luôn ở bên người và đủ chức năng để nhắc tôi nhớ những việc mình bận tâm, nhưng lại hoàn toàn thiếu các thông báo gây xao nhãng
Tôi đã mất một thời gian để làm cho iPhone im lặng, không liên tục làm phiền mình nữa, nhưng Palm thì mặc định là tùy chọn. Nếu bạn không tự bảo nó thông báo điều gì đó, nó sẽ im lặng
Nếu bảo quay lại dùng thật thì tôi sẽ không quay lại, nhưng mặt khác, tôi vẫn thấy nhớ
Nếu bây giờ quay lại nhìn, có lẽ tôi sẽ kinh ngạc trước trải nghiệm người dùng, nhưng vào thời đó nó đã giúp tăng năng suất rất nhiều. Ngôn ngữ nhập chữ viết tay cũng thật sự rất tốt. Tôi còn thực sự viết báo cáo bằng nó
Có thể viết trên xe buýt hoặc khi di chuyển mà không cần mang laptop theo là rất tuyệt. Chúng là những thiết bị đáng nể
Tôi thích đấy! Một đề xuất nhỏ: trước khi tải màn tiếp theo, nên cho thêm một chút thời gian để thấy khoảnh khắc bóng rơi vào lỗ. Tước mất cảm giác thỏa mãn đó khỏi người chơi có thể gây khó chịu
Một dự án thú vị. Những vấn đề như rò rỉ bộ nhớ hay debug thực ra phổ biến trong phát triển game hơn nhiều so với bạn tưởng
Rất nhiều vấn đề kiểu này đã được các game engine như Unreal, Unity, Godot trừu tượng hóa đi, nhưng nếu phát triển game bằng C, OpenGL và trong giới hạn bộ nhớ, đặc biệt khi phần cứng buộc phải tuân theo các giới hạn đó, bạn có thể sẽ trải qua cùng những thử-sai ban đầu
Trình chỉnh sửa màn chơi là một điểm hay. Tôi tò mò cách triển khai; series Tony Hawk cũng từng có một tính năng cùng họ tương tự, và nó đã dẫn tới Tony Hawks Pro StrCpy: https://icode4.coffee/?p=954
Tuy vậy, jailbreak hay thực thi mã tùy ý có lẽ sẽ dễ đạt được trên PalmOS hơn nhiều so với một dự án phụ về mini golf
Thử trên trình giả lập chạy trong trình duyệt thì game thật sự rất vui. Tôi suýt bị chế độ luyện tập cuốn vào
Giá mà có bản port hoặc phiên bản lấy cảm hứng cho Android, iOS và trình duyệt thì tốt. Thật sự rất vui