← Kembali ke Blog

Dari Sekeping Kayu ke App Store

Kira-kira dua puluh tahun yang lalu, saya dan rakan sebilik universiti saya mengeluarkan sekeping kayu dari skip, melukis grid di atasnya dengan pembaris, membeli beberapa batu kaca dari kedai seni dan kraf dengan harga kira-kira tiga paun, dan mula bermain Go. Saya tidak tahu apa yang saya lakukan. Saya masih tidak tahu, sebenarnya. Tetapi sesuatu tentang permainan ini menarik perhatian saya serta-merta — bagaimana sesuatu yang begitu mudah boleh menjadi begitu dalam. Grid 19×19. Batu hitam putih. Peraturan yang boleh anda pelajari dalam masa lima minit. Namun, pada masa itu, komputer paling berkuasa di bumi tidak dapat mengalahkan pemain manusia yang kuat. Itu menarik perhatian saya.

Obsesi Awal

Daya tarikan itu cukup mendalam sehingga projek tahun akhir saya di Universiti Kingston adalah dalam visi komputer — saya mengekod algoritma secara manual untuk membaca keadaan papan Go daripada gambar, mencapai ketepatan lebih 87%. Untuk awal tahun 2000-an, sebelum ledakan pembelajaran mendalam, saya secara senyap-senyap berbangga dengannya.

Sekitar masa yang sama, saya melawat Jepun selama dua minggu khusus untuk merasai sendiri budaya Go dan bermain menentang pemain tempatan. Saya tewas dalam setiap perlawanan. Satu perlawanan yang menonjol: seorang pemuda, mungkin tahap dan, sangat pemalu, dengan kuku yang sangat panjang, ditemani oleh bapanya. Saya hancur luluh sepenuhnya sebelum saya menyedari apa yang telah berlaku — saya mengambil sedikit masa untuk menyedari bahawa saya perlu meletakkan jawatan.

Setiap salun Go yang saya kunjungi dipenuhi asap rokok sehingga hampir mustahil untuk menghabiskan permainan tanpa udara segar — dan saya sendiri seorang perokok. Para pemain hampir keseluruhannya warga emas. Go seolah-olah menjadi hobi bagi mereka yang berusia emas, yang membingungkan saya memandangkan reputasi Jepun dalam teknologi dan inovasi. Tiada siapa yang seolah-olah menghubungkan Go dengan pengkomputeran. Belum lagi.

Jurang Panjang

Kehidupan terus berjalan. Saya bekerja sebagai pembangun Java, menghabiskan setahun di Accenture semasa di universiti (di mana semua rambut saya gugur akibat tekanan), dan akhirnya mendapati diri saya menganggur untuk jangka masa yang lama akibat masalah kesihatan. Kemahiran Java saya menjadi semakin tidak relevan apabila industri ini terus maju tanpa saya. Saya cuba mengejar ketinggalan, tetapi jurang itu telah menjadi terlalu luas — dan mendapati bahawa gaji di bahagian industri itu sebenarnya telah menurun. Ia tidak berbaloi.

Sepanjang semua itu, saya terus bermain Go. Tidaklah serius — saya telah menghadiri Kelab Exeter Go sekali-sekala selama kira-kira lima belas tahun, dan saya pemain biasa sahaja. Tetapi permainan itu tidak pernah melepaskan saya.

Semuanya Diklik Sekaligus

Kemudian, dalam tempoh yang sangat singkat, beberapa perkara berlaku serentak.

Perintah berkurung COVID melanda. Saya memanjat tembok tanpa melakukan apa-apa, tetapi saya cukup bernasib baik kerana mempunyai tiga peranti Apple — hadiah daripada keluarga dan pasangan saya. Saya menonton dokumentari AlphaGo dan saya teruja. Perkara yang saya minati di universiti — kemustahilan mesin menguasai Go — telah diselesaikan. Dan revolusi AI yang dimulakannya baru sahaja bermula. ChatGPT tiba. Kemudian Claude. Kemudian Apple mengumumkan Vision Pro.

Saya mula bermain dengan KataGo dan perasan ia tidak mempunyai antara muka App Store® yang betul. Saya melihat aplikasi Go yang tersedia untuk iPhone® dan iPad® dan ia... baik-baik saja. Berfungsi. Tetapi tiada satu pun daripadanya yang mempunyai sebarang ciri kebolehcapaian. Tiada satu pun aplikasi Go di seluruh App Store yang mengisytiharkan sokongan untuk VoiceOver, Kawalan Suara, Jenis Dinamik atau mana-mana piawaian kebolehcapaian Apple. Tiada satu pun.

Bagi permainan yang telah dimainkan oleh orang buta selama beberapa dekad — menggunakan papan sentuh bergaris terangkat di Jepun, di Persekutuan Go Perancis, di Korea — ketiadaan langsung sebarang versi yang boleh diakses secara digital terasa seperti jurang yang sepatutnya tidak wujud. Pemain Blind Go telah terkunci sepenuhnya daripada ekosistem aplikasi.

Semuanya berjalan lancar dan tersusun rapi. Saya akan mengajar diri saya pembangunan iOS dari awal, menggunakan alatan AI untuk mempercepatkan pembelajaran, dan saya akan membina aplikasi Go yang boleh dimainkan oleh sesiapa sahaja — sama ada melalui penglihatan atau tidak.

Bermula dari Sifar

Pada 1 Julai 2024, saya telah mencipta projek Xcode kosong yang dipanggil "RenderedGoApp" — nama yang tidak begitu memberi inspirasi. Saya tidak tahu apa-apa tentang Swift, SwiftUI, RealityKit atau mana-mana teknologi pembangunan Apple. Saya mempelajari semuanya sendiri melalui dokumentasi rasmi Apple dan sesi WWDC percuma, tanpa latihan formal, kem latihan atau acara pembangun.

Dua minggu kemudian, pada 17 Julai, saya menamakannya semula sebagai "Goban3D". Goban ialah nama tradisional Jepun untuk papan kayu tebal berkaki tempat Go dimainkan. Nama itu terasa tepat — ia mematuhi piawaian penamaan Apple dan ia menyatakan dengan tepat apa aplikasi itu.

Saya menerima sokongan disleksia dari sekolah rendah hingga ke kolej. Saya tahu bagaimana rasanya apabila alatan tidak dibina dengan mengambil kira keperluan anda. Jadi dari baris pertama kod, kebolehcapaian bukanlah sesuatu yang difikirkan kemudian — ia adalah sebab projek ini wujud.

Bencana SceneKit

Salah satu saat paling sukar berlaku apabila Apple tidak lagi menggunakan SceneKit — rangka kerja 3D tempat saya membina keseluruhan papan permainan. Saya mahir dalam hal ini. Adegan itu mempunyai rama-rama yang beterbangan, rumput berayun, dan pencahayaan berasaskan fizikal. Ia berjalan dengan baik dengan CPU yang minimum. Kemudian Apple mengumumkan bahawa ia akan digantikan dengan RealityKit.

Saya sangat marah. Tetapi dengan komitmen untuk menghantar sesuatu yang canggih, dan tiada toleransi terhadap hutang teknikal, saya tahu setiap rangkaian SceneKit perlu dicabut dan diganti. Rama-rama itu tidak terselamat. RealityKit ialah anak poster baharu Apple, tetapi ia jauh lebih dahsyat daripada pendahulunya — sesuatu yang saya ingin bincangkan dengan seorang jurutera Apple suatu hari nanti.

Di Mana Perkara Berdiri

Hari ini, Goban3D berada dalam versi beta luaran di App Store untuk iOS dan macOS. Ia mempunyai liputan kebolehcapaian 100% merentasi semua tujuh kategori kebolehcapaian Apple — VoiceOver, Dynamic Type, Voice Control, Reduce Motion, Reduce Transparency, Sufficient Contrast dan Differentiate Without Color. Ia berfungsi pada setiap iPhone daripada 3.5" SE hingga 6.9" Pro Max, setiap iPad daripada 9.7" hingga 13", dan secara natif pada Mac melalui Catalyst. Papan 3D dihasilkan dalam RealityKit dengan bahan berasaskan fizikal yang menangkap cahaya seperti kayu dan batu sebenar. Terdapat juga mod 2D yang bersih untuk apabila anda mahukan kesederhanaan atau hayat bateri.

Tiada sesiapa di luar proses pembangunan yang tahu kewujudannya lagi. Tiada liputan akhbar, tiada kesedaran komuniti, tiada penguji beta luaran. Catatan blog ini, dalam erti kata lain, merupakan kali pertama saya memberitahu sesiapa mengenainya secara terbuka.

Apa Seterusnya

Keutamaan terbesar adalah mencari penguji beta dengan keperluan kebolehcapaian sebenar — pemain buta, orang yang mempunyai penglihatan rendah, masalah motor. Aplikasi ini telah dibina mengikut piawaian Apple, tetapi piawaian hanyalah permulaan. Saya memerlukan orang sebenar untuk memberitahu saya apa yang berkesan, apa yang tidak, dan apa yang belum saya fikirkan. Mencari mereka adalah seperti mencari unicorn, tetapi saya tidak akan berputus asa. Semua orang harus dilibatkan.

Jika anda ingin mencuba Goban3D, atau mengenali seseorang yang akan mendapat manfaat daripada aplikasi Go yang boleh diakses, saya ingin mendengar daripada anda. Hantarkan e-mel ke support@goban3d.com dengan baris subjek "Beta Tester" dan alamat e-mel Apple ID untuk iPhone, iPad atau Mac anda. Anda akan menerima jemputan TestFlight® sejurus selepas itu.

Ini merupakan perkara yang paling sukar dan paling bermanfaat yang pernah saya lakukan. Daripada sekeping kayu di sebuah flat universiti hinggalah ke App Store — ia mengambil masa dua puluh tahun, tetapi kami sampai di sini.