เกมมินิกอล์ฟสำหรับ Palm OS
(ctrl-c.club)- ในปี 2024 มีการเปิดตัว เกมมินิกอล์ฟสำหรับ Palm OS เกมใหม่ชื่อ Captain's MiniGolf v0.6 ซึ่งสร้างเสร็จจากการเขียนโค้ดแบบเป็นช่วง ๆ ไม่ถึงราวสองเดือน
- จุดสำคัญคือโครงสร้างที่ให้ผู้เล่นสร้าง ฐานข้อมูลเลเวลแพ็ก ด้วยตัวเอง แล้วส่งออกไปแชร์กับผู้ใช้อื่นได้
- แม้ไม่มีอุปกรณ์ Palm OS จริง ก็สามารถรันได้ทันทีบนเบราว์เซอร์ผ่าน cloudpilot emulator
- ภาษา C และสภาพแวดล้อม Palm OS รุ่นเก่าเผยให้เห็น ข้อจำกัดในการพัฒนา อีกครั้ง เช่น memory leak การดีบัก polygon/trajectory และเอกสารที่มีอยู่น้อย
- ซอร์สโค้ดถูกเผยแพร่ภายใต้ สัญญาอนุญาต GPL3 และอาจใช้เป็นข้อมูลอ้างอิงให้ผู้อื่นสร้างเกมบน Palm OS ได้
เปิดตัว Captain's MiniGolf v0.6
- Captain's MiniGolf v0.6 คือ เกมมินิกอล์ฟสำหรับ Palm OS ที่สร้างขึ้นใหม่ในปี 2024
- เริ่มต้นจากโปรเจ็กต์ข้างเคียงช่วงฤดูร้อน และเปิดตัวหลังจากเขียนโค้ดแบบเป็นพัก ๆ ไม่ถึงสองเดือน
- จุดเด่นที่สุดคือผู้ใช้สามารถสร้าง ฐานข้อมูลเลเวลแพ็ก ได้ด้วยตัวเอง
- เลเวลแพ็กที่สร้างแล้วสามารถส่งออกและแชร์ได้
- ความสนุกอีกอย่างคือการได้รอดูว่าผู้ใช้อื่นจะสร้างคอร์สแบบไหน
- แม้ไม่มีอุปกรณ์ Palm OS ก็สามารถรันบนเบราว์เซอร์ผ่าน cloudpilot emulator ได้
ประสบการณ์พัฒนา Palm OS และเอกสารที่เผยแพร่
- ระหว่างสร้างเกมสำหรับ Palm OS ด้วย C ทำให้เห็นอีกครั้งว่าเมื่อไม่มีตัวป้องกันแบบที่ภาษาสมัยใหม่มีอยู่ ความผิดพลาดเล็กน้อยก็อาจลุกลามเป็นปัญหาใหญ่ได้
- Memory leak เกิดขึ้นบ่อยกว่าที่คาดไว้ และการดีบักรูปร่าง polygon กับวิถีของลูกบอลก็ไม่ง่าย
- debug build สำหรับแสดงภาพลอจิกภายในช่วยมากในการระบุปัญหา
- Palm OS มีเอกสารน้อย ทำให้พัฒนาได้ยาก และมีการใช้อ้างอิงจากเอกสารต่อไปนี้
- บั๊กที่ทราบแล้วคือปัญหาที่ลูกบอลติดอยู่ในกำแพง และปัญหาที่เมื่อสร้าง wall polygon แบบปิดภายในพื้นที่เล่นหลักแล้ว พื้นหลังหรือสีของคอร์สจะถูกประมวลผลไม่ถูกต้อง
- รายการที่วางแผนปรับปรุงมีการลบ/ย้ายเลเวล การลบ/แชร์เลเวลแพ็ก และการรองรับความละเอียดแบบไดนามิกตามขนาดหน้าจอ
- ตอนนี้ความละเอียดถูกกำหนดคงที่ที่ 160x160
- บนอุปกรณ์ Palm OS 5 แบบความละเอียดสูง จะทำงานที่ 320x320
- ซอร์สโค้ดทั้งหมดเผยแพร่ภายใต้ สัญญาอนุญาต GPL3
- ร่างแรกเขียนบน Palm Zire 72
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ในช่วงทศวรรษ 1990 เคยเริ่มทำเกม มินิกอล์ฟ สำหรับ Macintosh อยู่สองครั้ง แต่สุดท้ายก็ไม่ได้ทำเสร็จหรือวางจำหน่าย
ช่วงนี้กำลังกู้ซอร์สโค้ดที่มีอายุเกือบ 35 ปี และกำลังทำดิสก์อิมเมจไว้ใช้กับอีมูเลเตอร์อยู่ ความพยายามครั้งแรกของ MiniGolf แบบขาวดำอยู่ที่นี่: https://github.com/EngineersNeedArt/SoftDorothy-UnfinishedTa...
ความพยายามครั้งที่สองเป็นเวอร์ชันสีที่ทำตอนทักษะการเขียนโปรแกรมดีขึ้นแล้ว และมีกำหนดจะอยู่ใน Volume 2 ตอนนี้กำลังประกอบดิสก์อิมเมจของอันนั้นอยู่
เจ๋งมาก!
สงสัยว่าเคยคิดจะใส่ แอนิเมชันตอนลูกบอลตกหลุม ไหม ในวิดีโอมันดูเหมือนว่าพอบอลทับกับหลุมมากพอแล้วก็โหลดด่านใหม่ทันที
ในมุมผู้ใช้ ถ้าได้เห็นบอลตกลงไปจริง ๆ น่าจะให้ความรู้สึกสะใจกว่ามาก และน่าจะทำให้รู้สึกถึงความสำเร็จก่อนโหลดด่านถัดไปด้วย
เป็นงานที่ยอดเยี่ยมและขอบคุณมาก!
ช่วงนี้เริ่มคิดว่า Palm OS หรือ ฟอร์แมตไฟล์ executable แบบโฮมบรูเรโทร อื่น ๆ อาจมีประโยชน์จริงมากกว่าแค่ความคิดถึงก็ได้
อย่าง Palm OS
.prcหรือโฮมบรู ROM.gbบน itch.io สามารถรันได้บนเดสก์ท็อป, iOS, Android และเครื่องเกมจริง ใช้งานออฟไลน์ได้อย่างมีประสิทธิภาพ ไม่มีสิ่งรบกวน และไม่มีโอกาสมี in-app purchaseยกตัวอย่าง Apotris ผมซื้อ Tetris เวอร์ชันทางการมาเยอะตลอดหลายปีและก็คงซื้ออีกต่อไป แต่ตัวนี้เป็นเวอร์ชันที่ลื่นมากและรันได้บนทุกคอนโซล ด้วย อีมูเลเตอร์ GBA แบบ WASM อย่าง RetroArch Web และการรองรับ gamepad พื้นฐานของเบราว์เซอร์สมัยใหม่ จึงเล่นได้บนคอมพิวเตอร์แทบทุกเครื่องโดยไม่ต้องติดตั้ง
นอกจากนี้ยังให้ความรู้สึกมั่นคงจากการมีไฟล์ executable อิสระเพียงไฟล์เดียว และมีโอกาสสูงมากที่จะยังรันได้อีกในอีก 1 ปี 10 ปี หรือ 20 ปีข้างหน้า ซึ่งเกม iOS หรือเว็บอินดี้หลายเกมที่ผมชอบคงพูดแบบนั้นไม่ได้
ราว ๆ ปี 1999 ผมเคยเขียนโค้ดสำหรับ PalmOS สิ่งที่จำได้ชัดมากอย่างหนึ่งคือวิธีทดสอบแอปพลิเคชัน
น่าจะเป็นฟีเจอร์ของอีมูเลเตอร์ มันจะโยนอีเวนต์ใส่ซอฟต์แวร์อย่างต่อเนื่อง ผมจำรายละเอียดไม่ได้แล้ว แต่ประมาณว่าถ้าทนได้ 1,000 อีเวนต์ถือว่าผ่าน 10,000 อันถือว่าดี และ 100,000 อันถือว่ายอดเยี่ยม
ตอนนั้นผมคิดว่าตัวเองเป็นโปรแกรมเมอร์ C++ ที่ค่อนข้างใช้ได้ แต่พอใช้เครื่องมือนั้นแล้วเห็นว่าแอปพังเร็วแค่ไหนก็ช็อกมาก มันเป็นประสบการณ์ที่ทำให้ถ่อมตัวลงและเปิดหูเปิดตาจริง ๆ
ผมมักนึกถึงอยู่บ่อย ๆ ว่าเครื่องมือง่าย ๆ แบบนั้นมีประสิทธิภาพในการเปิดเผยบั๊กมากแค่ไหน แต่ก็คงใช้แนวทางเดิมตรง ๆ กับอุปกรณ์สมัยนี้ที่ทำงานหลายอย่างพร้อมกันและเชื่อมต่ออินเทอร์เน็ตไม่ได้
อีกอย่างที่จำได้คือ CodeWarrior เป็น IDE ตัวแรกที่มี กล่องดรอปดาวน์ แสดงฟังก์ชันทั้งหมดในซอร์สไฟล์ปัจจุบัน นี่ถือเป็นก้าวกระโดดด้านประสิทธิภาพพอสมควร
เพิ่มเติมคือแม้ตอนอยู่ญี่ปุ่นในปี 2010 ผมก็ยังใช้ Palm Tungsten อยู่ มีแอปพจนานุกรมภาษาญี่ปุ่นง่าย ๆ สำหรับ Palm ที่ถ้าเรียนรู้กฎพื้นฐานของลำดับและทิศทางการเขียนขีดแล้ว ก็สามารถใช้สไตลัสลากเลียนแบบตัวอักษรที่เห็นเพื่อค้นหาคันจิที่ตรงกันได้ ผมอาศัยวิธีเลียนแบบคันจิที่ไม่รู้จากป้ายต่าง ๆ เพื่อช่วยหาทางอยู่บ่อยพอสมควร
> drop-down box with all the functionsจำ
#pragma -ที่ใช้แยกฟังก์ชันได้เลย เดี๋ยวนี้ไม่มีอะไรแบบนั้นแล้ว มี#pragma regionสำหรับพับบล็อกโค้ดแทน แต่ก็ไม่เหมือนกันพอนึกว่ามันจะรันบนฮาร์ดแวร์จริงได้ไหม ก็เพิ่งตระหนักว่าผมไม่รู้เลยว่า Palm LifeDrive ของผมหายไปไหนตอนเปลี่ยนไปใช้ BlackBerry
คิดถึง PDA เครื่องเล็กอ้วน ๆ นั่นเหมือนกัน สำหรับยุคนั้นมันสุดยอดมากจริง ๆ
https://en.wikipedia.org/wiki/LifeDrive
ด้านหนึ่งผมไม่ชอบมันเพราะเวลาโหลดที่น่าหงุดหงิดเมื่อเทียบกับเครื่องก่อน ๆ เนื่องจากมันเป็น OS ที่ถูกออกแบบมาให้เก็บทุกอย่างไว้ใน RAM/ROM และเดิมทีแทบไม่มีแนวคิดเรื่องหน่วยความจำแบบไฟล์/บล็อกเลย ทำให้การเข้าถึงหน่วยความจำที่คาดไม่ถึงเกือบทุกครั้งต้องปลุกฮาร์ดดิสก์ขึ้นมาทำงาน อีกทั้งตัวเครื่องก็ค่อนข้างใหญ่
แต่อีกด้านหนึ่ง มันมี 4GB ใส่หนังเต็มเรื่องได้เกินสองเรื่อง และยังเป็น Palm รุ่นแรกที่มี Wi‑Fi ด้วย ซึ่งก็ดีมาก
โดยรวมแล้ว สำหรับผมมันดูเหมือนเป็นสัญลักษณ์ของการที่ Palm กำลังพลาดกระแสสมัยใหม่อย่างรวดเร็ว เช่น Symbian แม้ด้านการใช้งานจะเทียบ Palm OS ไม่ได้ แต่ในมุมมองของระบบปฏิบัติการกลับล้ำหน้ากว่ามาก และหลังจากนั้นก็แน่นอนว่ามี iPhone กับ Android ตามมา
ชอบมากจริง ๆ โดยเฉพาะ งานออกแบบศิลป์ ยอดเยี่ยมมาก
ส่วนที่ผมอยากเปลี่ยนเป็นการส่วนตัวคือ ตอนเล็ง ถ้าขยับเมาส์ไปทิศตรงข้ามจะรู้สึกเป็นธรรมชาติกว่า เกมมินิกอล์ฟเก่า ๆ ของ Miniclip หลายเกมก็ทำแบบนั้น
ถ้าชอบเกมโอเพนซอร์สเสรี ขอแนะนำ Neverball และ Neverput โดย Neverput เป็นเกมจำลองกอล์ฟ 3D ที่กราฟิกใช้ได้เลย
สวยมาก! ทำให้คิดถึง IIIxe ของฉันเลย
ถ้าผ่านฟิลเตอร์ความทรงจำที่สวยเกินจริงแบบคลาดเคลื่อน มันอาจเป็นหนึ่งในอุปกรณ์พกพาที่เข้าใกล้จุดสูงสุดของด้านประสิทธิภาพการใช้งานก็ได้
มันมีฟังก์ชันมากพอที่จะพกติดตัวตลอดและช่วยเตือนสิ่งที่ต้องใส่ใจ แต่กลับแทบไม่มีการแจ้งเตือนรบกวนให้เสียสมาธิ
ฉันใช้เวลาพอสมควรกว่าจะทำให้ iPhone เงียบและเลิกกวนฉันตลอดเวลาได้ แต่ Palm นั้นค่าเริ่มต้นคือให้เลือกเองทั้งหมด
ถ้าไม่ได้สั่งให้มันแจ้งอะไร มันก็จะเงียบอยู่แบบนั้น
เอาเข้าจริงคงไม่ย้อนกลับไปใช้อีกแล้ว แต่ก็คิดถึงมันอยู่เหมือนกัน
ถ้ากลับไปใช้ตอนนี้อาจตกใจกับประสบการณ์ผู้ใช้ก็ได้ แต่ในตอนนั้นมันช่วยเพิ่มประสิทธิภาพการทำงานได้มากจริง ๆ ระบบป้อนข้อความด้วยลายมือ ก็ดีมากด้วย ฉันเคยใช้มันเขียนรายงานจริง ๆ
มันยอดเยี่ยมมากที่สามารถเขียนบนรถเมล์หรือระหว่างเดินทางได้โดยไม่ต้องพกโน้ตบุ๊ก อุปกรณ์พวกนี้สุดยอดจริง ๆ
ชอบมาก! ขอเสนอแนะสั้น ๆ ว่า ก่อนโหลดด่านถัดไป น่าจะปล่อยเวลาให้เห็น จังหวะที่ลูกบอลลงหลุม สักนิด การพรากความสะใจตรงนั้นไปจากผู้เล่นอาจทำให้หงุดหงิดได้
เป็นโปรเจกต์ที่น่าสนใจ ปัญหาอย่างหน่วยความจำรั่วหรือการดีบักพบได้บ่อยใน การพัฒนาเกม มากกว่าที่คิด
ปัญหาพวกนี้จำนวนมากถูกเอนจินเกมอย่าง Unreal, Unity, Godot ช่วยซ่อนความซับซ้อนไว้ให้แล้ว แต่ถ้าพัฒนาเกมด้วย C, OpenGL และข้อจำกัดด้านหน่วยความจำ โดยเฉพาะเมื่อฮาร์ดแวร์บังคับข้อจำกัดเหล่านั้น คุณก็อาจเจอการลองผิดลองถูกแบบยุคแรก ๆ เหมือนกัน
ตัวแก้ไขด่านเป็นองค์ประกอบที่ดีมาก ฉันสงสัยว่ามันถูกทำอย่างไร เพราะซีรีส์ Tony Hawk ก็มีฟีเจอร์แนวคล้ายกัน และนำไปสู่ Tony Hawks Pro StrCpy: https://icode4.coffee/?p=954
แต่ถึงอย่างนั้น การเจลเบรกหรือการรันโค้ดตามอำเภอใจบน PalmOS ก็น่าจะทำได้ง่ายกว่ามินิกอล์ฟโปรเจกต์ข้างเคียงมาก
ลองเล่นในอีมูเลเตอร์บนเบราว์เซอร์แล้ว เกมสนุกมากจริง ๆ เกือบจะจมอยู่กับ โหมดฝึกซ้อม เลย
น่าจะดีถ้ามีพอร์ตหรือเวอร์ชันที่ได้แรงบันดาลใจไปลง Android, iOS หรือเบราว์เซอร์ สนุกจริง ๆ