จากชิ้นไม้ธรรมดา สู่แอปสโตร์
ประมาณยี่สิบปีก่อน ผมกับเพื่อนร่วมห้องสมัยเรียนมหาวิทยาลัยไปดึงไม้แผ่นหนึ่งออกมาจากกองขยะ วาดตารางลงบนไม้ด้วยไม้บรรทัด ซื้อหินแก้วจากร้านขายอุปกรณ์งานฝีมือในราคาประมาณสามปอนด์ แล้วก็เริ่มเล่นโกะกัน ผมไม่รู้เลยว่าตัวเองกำลังทำอะไรอยู่ จริงๆ แล้วตอนนี้ผมก็ยังไม่รู้เลย แต่บางอย่างในเกมนี้ดึงดูดใจผมทันที — วิธีที่สิ่งที่ดูเหมือนเรียบง่ายกลับมีความลึกซึ้งอย่างเหลือเชื่อ ตาราง 19x19 หินสีดำและสีขาว กฎที่คุณสามารถเรียนรู้ได้ภายในห้านาที และถึงกระนั้น ในเวลานั้น คอมพิวเตอร์ที่ทรงพลังที่สุดในโลกก็ยังเอาชนะผู้เล่นที่เก่งกาจในระดับมนุษย์ไม่ได้ นั่นทำให้ผมหลงใหล
ความหลงใหลในวัยเด็ก
ความหลงใหลนั้นลึกซึ้งมากจนโครงการปีสุดท้ายของผมที่มหาวิทยาลัยคิงส์ตันเกี่ยวข้องกับคอมพิวเตอร์วิชั่น — ผมเขียนโค้ดอัลกอริธึมด้วยมือเพื่ออ่านสถานะของกระดานโกะจากภาพถ่าย ซึ่งได้ความแม่นยำมากกว่า 87% ในช่วงต้นทศวรรษ 2000 ก่อนที่การเรียนรู้เชิงลึกจะเฟื่องฟู ผมรู้สึกภูมิใจกับผลงานนั้นอย่างเงียบๆ
ในช่วงเวลาเดียวกันนั้น ผมได้ไปเยือนญี่ปุ่นเป็นเวลาสองสัปดาห์โดยเฉพาะเพื่อสัมผัสวัฒนธรรมโกะด้วยตัวเองและเล่นกับผู้เล่นท้องถิ่น ผมแพ้ทุกแมตช์ มีเกมหนึ่งที่ผมจำได้แม่น คือเกมที่เล่นกับชายหนุ่มคนหนึ่ง น่าจะมีฝีมือระดับดั้งสูง ขี้อายมาก มีเล็บยาวผิดปกติ มาพร้อมกับพ่อของเขา ผมแพ้ราบคาบก่อนที่จะรู้ตัวด้วยซ้ำว่าเกิดอะไรขึ้น ผมใช้เวลาสักพักกว่าจะรู้ตัวว่าต้องยอมแพ้
ทุกร้านโกะที่ผมไปเยี่ยมชมนั้นเต็มไปด้วยควันบุหรี่จนแทบเล่นเกมไม่ได้เลยหากไม่มีอากาศบริสุทธิ์ — และผมเองก็สูบบุหรี่ด้วย ผู้เล่นส่วนใหญ่เป็นผู้สูงอายุ โกะดูเหมือนจะเป็นกิจกรรมยามว่างสำหรับผู้สูงอายุ ซึ่งทำให้ผมงงมากเมื่อพิจารณาจากชื่อเสียงของญี่ปุ่นในด้านเทคโนโลยีและนวัตกรรม ดูเหมือนไม่มีใครเชื่อมโยงโกะเข้ากับการคำนวณเลย อย่างน้อยก็ยังไม่ถึงตอนนี้
ช่องว่างยาว
ชีวิตก็ดำเนินต่อไป ผมทำงานเป็นนักพัฒนา Java ใช้เวลาหนึ่งปีที่ Accenture ระหว่างเรียนมหาวิทยาลัย (ซึ่งช่วงนั้นผมร่วงหมดเพราะความเครียด) และในที่สุดก็พบว่าตัวเองตกงานเป็นเวลานานเนื่องจากปัญหาสุขภาพ ทักษะ Java ของผมเริ่มไม่เกี่ยวข้องมากขึ้นเรื่อย ๆ เพราะอุตสาหกรรมก้าวหน้าไปโดยไม่รู้ตัว ผมพยายามตามให้ทัน แต่ช่องว่างก็กว้างเกินไปแล้ว และพบว่าค่าจ้างในส่วนนั้นของอุตสาหกรรมกลับลดลง มันไม่คุ้มค่าเลย
ตลอดช่วงเวลาเหล่านั้น ผมก็ยังคงเล่นโกะต่อไป ไม่ได้เล่นอย่างจริงจังหรอกครับ ผมไปร่วมชมรมโกะที่เอ็กซิเตอร์เป็นครั้งคราวมาประมาณสิบห้าปีแล้ว และผมก็เป็นแค่ผู้เล่นระดับปานกลางเท่านั้น แต่เกมนี้ก็ไม่เคยปล่อยมือจากผมเลย
ทุกอย่างลงตัวพร้อมกัน
จากนั้น ในช่วงเวลาอันสั้นอย่างน่าประหลาดใจ หลายสิ่งหลายอย่างก็เกิดขึ้นพร้อมกัน
ช่วงล็อกดาวน์จากโควิดมาถึง ผมรู้สึกเบื่อหน่ายมากเพราะไม่มีอะไรทำ แต่โชคดีที่ผมมีอุปกรณ์ Apple สามชิ้น ซึ่งเป็นของขวัญจากครอบครัวและแฟนของผม ผมดูสารคดี AlphaGo แล้วรู้สึกตื่นเต้นมาก สิ่งที่ผมหลงใหลมาตั้งแต่สมัยเรียนมหาวิทยาลัย—ความเป็นไปไม่ได้ที่เครื่องจักรจะเชี่ยวชาญเกมโกะ—ได้รับการแก้ไขแล้ว และการปฏิวัติ AI ที่เริ่มต้นขึ้นนั้นเพิ่งจะเริ่มขึ้นเท่านั้น ChatGPT มาถึง จากนั้นก็มี Claude แล้ว Apple ก็ประกาศ Vision Pro ออกมา
ฉันเริ่มลองใช้ KataGo แล้วสังเกตว่ามันไม่มีอินเทอร์เฟซ App Store® ที่ใช้งานได้สะดวก ฉันดูแอป Go ที่มีให้ใช้งานสำหรับ iPhone® และ iPad® แล้วก็...ก็โอเค ใช้งานได้ แต่ไม่มีแอปไหนเลยที่มีฟีเจอร์ช่วยเหลือผู้พิการ ไม่มีแอป Go แม้แต่แอปเดียวใน App Store ที่ระบุว่ารองรับ VoiceOver, Voice Control, Dynamic Type หรือมาตรฐานการช่วยเหลือผู้พิการของ Apple ไม่มีเลยสักแอปเดียว
สำหรับเกมที่คนตาบอดเล่นกันมานานหลายทศวรรษแล้ว — โดยใช้กระดานสัมผัสที่มีเส้นนูนในญี่ปุ่น สมาคมโกะแห่งฝรั่งเศส และในเกาหลี — การที่ไม่มีเวอร์ชันดิจิทัลที่เข้าถึงได้เลยนั้น รู้สึกเหมือนเป็นช่องว่างที่ไม่ควรมีอยู่ ผู้เล่นโกะตาบอดถูกกีดกันออกจากระบบนิเวศของแอปพลิเคชันอย่างสิ้นเชิง
ทุกอย่างลงตัวพร้อมกันและควบคุมไม่ได้ ฉันจะเรียนรู้การพัฒนาแอป iOS ด้วยตัวเองตั้งแต่เริ่มต้น โดยใช้เครื่องมือ AI เพื่อเร่งการเรียนรู้ และฉันจะสร้างแอป Go ที่ทุกคนสามารถเล่นได้ ไม่ว่าจะมีสายตาปกติหรือไม่ก็ตาม
เริ่มต้นจากศูนย์
เมื่อวันที่ 1 กรกฎาคม 2024 ฉันสร้างโปรเจ็กต์ Xcode ว่างเปล่าชื่อ "RenderedGoApp" ซึ่งไม่ใช่ชื่อที่น่าสนใจนัก ฉันไม่รู้เรื่อง Swift, SwiftUI, RealityKit หรือเทคโนโลยีการพัฒนาใดๆ ของ Apple เลย ฉันเรียนรู้ทุกอย่างด้วยตัวเองจากเอกสารทางการของ Apple และเซสชั่น WWDC ฟรี โดยไม่มีการฝึกอบรมอย่างเป็นทางการ ค่ายฝึกอบรม หรือกิจกรรมสำหรับนักพัฒนาใดๆ
สองสัปดาห์ต่อมา ในวันที่ 17 กรกฎาคม ผมเปลี่ยนชื่อแอปเป็น "Goban3D" คำว่า "goban" เป็นชื่อเรียกแบบดั้งเดิมของภาษาญี่ปุ่นสำหรับกระดานไม้หนาที่มีขาตั้งซึ่งใช้เล่นโกะ ชื่อนี้ฟังดูเหมาะสม — มันสอดคล้องกับมาตรฐานการตั้งชื่อของ Apple และมันก็บอกได้อย่างตรงตัวว่าแอปนี้คืออะไร
ฉันได้รับการสนับสนุนด้านการอ่านออกเขียนได้บกพร่อง (ดิสเล็กเซีย) ตั้งแต่ชั้นประถมศึกษาจนถึงระดับมหาวิทยาลัย ฉันรู้ดีว่ามันเป็นอย่างไรเมื่อเครื่องมือไม่ได้ถูกสร้างขึ้นโดยคำนึงถึงผู้ใช้ ดังนั้นตั้งแต่บรรทัดแรกของโค้ด ความสามารถในการเข้าถึงจึงไม่ใช่สิ่งที่นึกถึงทีหลัง แต่เป็นเหตุผลหลักที่ทำให้โครงการนี้เกิดขึ้น
หายนะของ SceneKit
หนึ่งในช่วงเวลาที่ยากที่สุดคือตอนที่ Apple ยกเลิกการสนับสนุน SceneKit ซึ่งเป็นเฟรมเวิร์ก 3 มิติที่ผมใช้สร้างฉากบอร์ดทั้งหมด ผมใช้มันได้คล่องแล้ว ฉากนั้นมีผีเสื้อบินไปมา หญ้าพลิ้วไหว และแสงเงาตามหลักฟิสิกส์ มันทำงานได้อย่างราบรื่นโดยใช้ CPU น้อยที่สุด จากนั้น Apple ก็ประกาศว่าจะแทนที่ด้วย RealityKit
ผมโมโหมาก แต่ด้วยความมุ่งมั่นที่จะส่งมอบสิ่งที่ล้ำสมัย และไม่ยอมรับหนี้ทางเทคนิคใดๆ ผมรู้ว่าทุกบรรทัดของ SceneKit ต้องถูกลบออกและเขียนใหม่ทั้งหมด ผีเสื้อตัวนั้นไม่รอด RealityKit คือผลิตภัณฑ์เด่นตัวใหม่ของ Apple แต่มันกินทรัพยากรมากกว่ารุ่นก่อนมาก ซึ่งเป็นสิ่งที่ผมอยากจะคุยกับวิศวกรของ Apple สักวันหนึ่ง
สถานการณ์ปัจจุบัน
ปัจจุบัน Goban3D อยู่ในช่วงเบต้าภายนอกบน App Store สำหรับ iOS และ macOS แอปนี้รองรับการเข้าถึงได้ 100% ในทุกๆ 7 หมวดหมู่การเข้าถึงของ Apple ได้แก่ VoiceOver, Dynamic Type, Voice Control, Reduce Motion, Reduce Transparency, Sufficient Contrast และ Differentiate Without Color สามารถใช้งานได้บน iPhone ทุกรุ่นตั้งแต่ 3.5" SE ถึง 6.9" Pro Max, iPad ทุกรุ่นตั้งแต่ 9.7" ถึง 13" และใช้งานบน Mac® ได้โดยตรงผ่าน Catalyst กระดาน 3 มิติถูกสร้างขึ้นด้วย RealityKit โดยใช้วัสดุที่อิงตามหลักฟิสิกส์ซึ่งสะท้อนแสงได้เหมือนไม้และหินจริง นอกจากนี้ยังมีโหมด 2 มิติที่เรียบง่ายสำหรับกรณีที่ต้องการความเรียบง่ายหรือประหยัดแบตเตอรี่
ยังไม่มีใครนอกกระบวนการพัฒนาทราบว่ามันมีอยู่จริง ไม่มีการรายงานข่าวจากสื่อ ไม่มีผู้คนในชุมชนรับรู้ ไม่มีผู้ทดสอบเบต้าจากภายนอก ในแง่หนึ่ง โพสต์บล็อกนี้จึงเป็นครั้งแรกที่ผมบอกเรื่องนี้ให้ใครรู้ต่อสาธารณะ
ต่อไปจะเป็นอย่างไร
สิ่งสำคัญที่สุดคือการหาผู้ทดสอบเบต้าที่มีความต้องการด้านการเข้าถึงอย่างแท้จริง เช่น ผู้เล่นตาบอด ผู้ที่มีสายตาเลือนราง ผู้ที่มีความบกพร่องทางการเคลื่อนไหว แอปนี้สร้างขึ้นตามมาตรฐานของ Apple แต่มาตรฐานเป็นเพียงจุดเริ่มต้นเท่านั้น ผมต้องการให้คนจริงๆ บอกผมว่าอะไรใช้ได้ผล อะไรใช้ไม่ได้ผล และอะไรที่ผมยังนึกไม่ถึง การหาคนเหล่านั้นจะเป็นเรื่องยากเหมือนการหาม้ายูนิคอร์น แต่ผมจะไม่ยอมแพ้ ทุกคนควรมีส่วนร่วม
หากคุณสนใจทดลองใช้ Goban3D หรือรู้จักใครที่อาจได้รับประโยชน์จากแอป Go ที่ใช้งานง่าย โปรดติดต่อเราได้เลย ส่งอีเมลไปที่ support@goban3d.com โดยระบุหัวข้ออีเมลว่า "Beta Tester" และแนบอีเมล Apple ID ของ iPhone, iPad หรือ Mac ของคุณ คุณจะได้รับคำเชิญเข้าร่วมทดสอบ TestFlight® ในไม่ช้า
นี่เป็นสิ่งที่ยากที่สุดและคุ้มค่าที่สุดที่ฉันเคยทำมา จากเศษไม้ชิ้นเล็กๆ ในห้องพักมหาวิทยาลัย สู่ App Store — ใช้เวลาถึงยี่สิบปี แต่เราก็มาถึงจุดนี้ได้