2 คะแนน โดย GN⁺ 2024-09-12 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ในปี 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 ความคิดเห็น

 
GN⁺ 2024-09-12
ความคิดเห็นจาก Hacker News
  • ในช่วงทศวรรษ 1990 เคยเริ่มทำเกม มินิกอล์ฟ สำหรับ Macintosh อยู่สองครั้ง แต่สุดท้ายก็ไม่ได้ทำเสร็จหรือวางจำหน่าย
    ช่วงนี้กำลังกู้ซอร์สโค้ดที่มีอายุเกือบ 35 ปี และกำลังทำดิสก์อิมเมจไว้ใช้กับอีมูเลเตอร์อยู่ ความพยายามครั้งแรกของ MiniGolf แบบขาวดำอยู่ที่นี่: https://github.com/EngineersNeedArt/SoftDorothy-UnfinishedTa...
    ความพยายามครั้งที่สองเป็นเวอร์ชันสีที่ทำตอนทักษะการเขียนโปรแกรมดีขึ้นแล้ว และมีกำหนดจะอยู่ใน Volume 2 ตอนนี้กำลังประกอบดิสก์อิมเมจของอันนั้นอยู่

    • Glider เป็นแฟรนไชส์ตัวแทนของยุค 68k Mac จริง ๆ เห็นกลับมาทำต่อแล้วซาบซึ้งมาก
    • กราฟิกสวยมาก ชอบ สไตล์ นี้
    • ตอนเด็กเล่น Glider เยอะมาก คงไม่มีโอกาสพูดแบบนี้อีกแล้ว เลยอยากขอบคุณมากที่สร้างเกมเหล่านี้ขึ้นมา
    • ขอบคุณ John คลังนี้มีทั้ง ศิลปะ วิศวกรรม และประวัติศาสตร์ ในสัดส่วนที่ผมชอบ โดยเฉพาะศิลปะ มันสร้างแรงบันดาลใจมากจริง ๆ
  • เจ๋งมาก!
    สงสัยว่าเคยคิดจะใส่ แอนิเมชันตอนลูกบอลตกหลุม ไหม ในวิดีโอมันดูเหมือนว่าพอบอลทับกับหลุมมากพอแล้วก็โหลดด่านใหม่ทันที
    ในมุมผู้ใช้ ถ้าได้เห็นบอลตกลงไปจริง ๆ น่าจะให้ความรู้สึกสะใจกว่ามาก และน่าจะทำให้รู้สึกถึงความสำเร็จก่อนโหลดด่านถัดไปด้วย

    • ตอนนี้จะเอาไปพิจารณาดู ขอบคุณ
  • เป็นงานที่ยอดเยี่ยมและขอบคุณมาก!
    ช่วงนี้เริ่มคิดว่า 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 หรือเว็บอินดี้หลายเกมที่ผมชอบคงพูดแบบนั้นไม่ได้

    • คงดีมากถ้ามี โทรศัพท์ Palm OS ยุคใหม่ ที่ยังรักษาปรัชญา UI เดิมไว้และรันเกมเก่าได้ทั้งหมด ต่อให้ทำผ่านการจำลองระบบก็ตาม
  • ราว ๆ ปี 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 สำหรับพับบล็อกโค้ดแทน แต่ก็ไม่เหมือนกัน
    • จู่ ๆ ก็จินตนาการถึงภาพที่มีคนพยายาม พอร์ต Rust ไปลง PalmOS หวังว่าจะไม่มีวันเกิดขึ้น
  • พอนึกว่ามันจะรันบนฮาร์ดแวร์จริงได้ไหม ก็เพิ่งตระหนักว่าผมไม่รู้เลยว่า Palm LifeDrive ของผมหายไปไหนตอนเปลี่ยนไปใช้ BlackBerry
    คิดถึง PDA เครื่องเล็กอ้วน ๆ นั่นเหมือนกัน สำหรับยุคนั้นมันสุดยอดมากจริง ๆ
    https://en.wikipedia.org/wiki/LifeDrive

    • สัปดาห์ก่อนตอนเก็บบ้านเจอ Palm Tungsten E2 เครื่องเก่าของผม ถ้าหาที่ชาร์จเจอจะลองเปิดแล้วมาบอกผล
    • LifeDrive เป็น Palm ที่แปลกมากจริง ๆ
      ด้านหนึ่งผมไม่ชอบมันเพราะเวลาโหลดที่น่าหงุดหงิดเมื่อเทียบกับเครื่องก่อน ๆ เนื่องจากมันเป็น OS ที่ถูกออกแบบมาให้เก็บทุกอย่างไว้ใน RAM/ROM และเดิมทีแทบไม่มีแนวคิดเรื่องหน่วยความจำแบบไฟล์/บล็อกเลย ทำให้การเข้าถึงหน่วยความจำที่คาดไม่ถึงเกือบทุกครั้งต้องปลุกฮาร์ดดิสก์ขึ้นมาทำงาน อีกทั้งตัวเครื่องก็ค่อนข้างใหญ่
      แต่อีกด้านหนึ่ง มันมี 4GB ใส่หนังเต็มเรื่องได้เกินสองเรื่อง และยังเป็น Palm รุ่นแรกที่มี Wi‑Fi ด้วย ซึ่งก็ดีมาก
      โดยรวมแล้ว สำหรับผมมันดูเหมือนเป็นสัญลักษณ์ของการที่ Palm กำลังพลาดกระแสสมัยใหม่อย่างรวดเร็ว เช่น Symbian แม้ด้านการใช้งานจะเทียบ Palm OS ไม่ได้ แต่ในมุมมองของระบบปฏิบัติการกลับล้ำหน้ากว่ามาก และหลังจากนั้นก็แน่นอนว่ามี iPhone กับ Android ตามมา
  • ชอบมากจริง ๆ โดยเฉพาะ งานออกแบบศิลป์ ยอดเยี่ยมมาก
    ส่วนที่ผมอยากเปลี่ยนเป็นการส่วนตัวคือ ตอนเล็ง ถ้าขยับเมาส์ไปทิศตรงข้ามจะรู้สึกเป็นธรรมชาติกว่า เกมมินิกอล์ฟเก่า ๆ ของ Miniclip หลายเกมก็ทำแบบนั้น
    ถ้าชอบเกมโอเพนซอร์สเสรี ขอแนะนำ Neverball และ Neverput โดย Neverput เป็นเกมจำลองกอล์ฟ 3D ที่กราฟิกใช้ได้เลย

    • เดิมที Palm ใช้สไตลัส จึงไม่บังจุดเล็งเหมือนโทรศัพท์จอสัมผัสที่ใช้นิ้ว และอาจเป็นปัจจัยที่ช่วยให้มีพื้นที่ด้านทิศทางการตีมากขึ้นด้วย
  • สวยมาก! ทำให้คิดถึง IIIxe ของฉันเลย
    ถ้าผ่านฟิลเตอร์ความทรงจำที่สวยเกินจริงแบบคลาดเคลื่อน มันอาจเป็นหนึ่งในอุปกรณ์พกพาที่เข้าใกล้จุดสูงสุดของด้านประสิทธิภาพการใช้งานก็ได้
    มันมีฟังก์ชันมากพอที่จะพกติดตัวตลอดและช่วยเตือนสิ่งที่ต้องใส่ใจ แต่กลับแทบไม่มีการแจ้งเตือนรบกวนให้เสียสมาธิ
    ฉันใช้เวลาพอสมควรกว่าจะทำให้ iPhone เงียบและเลิกกวนฉันตลอดเวลาได้ แต่ Palm นั้นค่าเริ่มต้นคือให้เลือกเองทั้งหมด
    ถ้าไม่ได้สั่งให้มันแจ้งอะไร มันก็จะเงียบอยู่แบบนั้น
    เอาเข้าจริงคงไม่ย้อนกลับไปใช้อีกแล้ว แต่ก็คิดถึงมันอยู่เหมือนกัน

    • รู้สึกเหมือนกันเลย ฉันชอบ IIIxe ของฉันมาก
      ถ้ากลับไปใช้ตอนนี้อาจตกใจกับประสบการณ์ผู้ใช้ก็ได้ แต่ในตอนนั้นมันช่วยเพิ่มประสิทธิภาพการทำงานได้มากจริง ๆ ระบบป้อนข้อความด้วยลายมือ ก็ดีมากด้วย ฉันเคยใช้มันเขียนรายงานจริง ๆ
      มันยอดเยี่ยมมากที่สามารถเขียนบนรถเมล์หรือระหว่างเดินทางได้โดยไม่ต้องพกโน้ตบุ๊ก อุปกรณ์พวกนี้สุดยอดจริง ๆ
    • การควบคุมการแจ้งเตือน เป็นหนึ่งในความสามารถด้านประสบการณ์ผู้ใช้ที่ทรงพลังที่สุดเท่าที่มีได้ ฉันใช้โหมดโฟกัสตามตำแหน่งและเวลาจริงจังมากกับการแจ้งเตือนเพียงไม่กี่อย่างที่ฉันยอมให้ผ่าน
  • ชอบมาก! ขอเสนอแนะสั้น ๆ ว่า ก่อนโหลดด่านถัดไป น่าจะปล่อยเวลาให้เห็น จังหวะที่ลูกบอลลงหลุม สักนิด การพรากความสะใจตรงนั้นไปจากผู้เล่นอาจทำให้หงุดหงิดได้

  • เป็นโปรเจกต์ที่น่าสนใจ ปัญหาอย่างหน่วยความจำรั่วหรือการดีบักพบได้บ่อยใน การพัฒนาเกม มากกว่าที่คิด
    ปัญหาพวกนี้จำนวนมากถูกเอนจินเกมอย่าง Unreal, Unity, Godot ช่วยซ่อนความซับซ้อนไว้ให้แล้ว แต่ถ้าพัฒนาเกมด้วย C, OpenGL และข้อจำกัดด้านหน่วยความจำ โดยเฉพาะเมื่อฮาร์ดแวร์บังคับข้อจำกัดเหล่านั้น คุณก็อาจเจอการลองผิดลองถูกแบบยุคแรก ๆ เหมือนกัน
    ตัวแก้ไขด่านเป็นองค์ประกอบที่ดีมาก ฉันสงสัยว่ามันถูกทำอย่างไร เพราะซีรีส์ Tony Hawk ก็มีฟีเจอร์แนวคล้ายกัน และนำไปสู่ Tony Hawks Pro StrCpy: https://icode4.coffee/?p=954
    แต่ถึงอย่างนั้น การเจลเบรกหรือการรันโค้ดตามอำเภอใจบน PalmOS ก็น่าจะทำได้ง่ายกว่ามินิกอล์ฟโปรเจกต์ข้างเคียงมาก

  • ลองเล่นในอีมูเลเตอร์บนเบราว์เซอร์แล้ว เกมสนุกมากจริง ๆ เกือบจะจมอยู่กับ โหมดฝึกซ้อม เลย
    น่าจะดีถ้ามีพอร์ตหรือเวอร์ชันที่ได้แรงบันดาลใจไปลง Android, iOS หรือเบราว์เซอร์ สนุกจริง ๆ