Saatçi: Koddan Bir Mekanik Saat Yapmak

Mekanik saat tuhaf, küçük bir makine. Pili yok, çipi yok; kurulmuş bir yay, bir avuç çark ve saniyede birkaç kez gidip gelen bir balans var. Yine de günde birkaç saniyelik hatayla zamanı tutuyor. Çoğumuz hayatımız boyunca bir tanesini bile açmayız. Ben açılabilen bir oyun istedim.

Saatçi yavaş bir tamir bulmacası. Tezgâhına durmuş bir saat geliyor. Açıyorsun, doğru sırayla söküyorsun, temizliyorsun, bozulan parçayı buluyorsun, yedeğini takıyorsun, her şeyi geri kurup yağlıyorsun, kuruyorsun ve ayarlıyorsun. Süre yok, can yok, kaybetmek yok. Olabilecek en kötü şey, bir parçanın yerinden çıkmayı reddetmesi.

İlk cep saatini sökmek: balans köprüsü, mavi vidalar ve altındaki dişli dizisi

Gerçekten çalışan bir saat

En çok önem verdiğim kural buydu: Ekrandaki şey bir saat resmi değil, gerçek bir mekanizma olmalıydı.

Her parça kodla üretiliyor ve mekanizmanın planı üzerinde milimetre cinsinden ölçülüyor. Çarkların dişleri gerçek profillere sahip, birbirine geçen çarkların diş adımı aynı. Dişli oranları gerçek saattekiler; bu yüzden maşa saatte 18.000 vuruşla (saniyede beş tık, çok klasik bir hız) çalışıyor ve her çark gerçek bir saatte döneceği hızda dönüyor. Sonunda saati kurup çalıştırdığında saniye ibresi doğru gidiyor, çünkü hesap doğru; ben ona nereyi göstereceğini söylediğim için değil.

İşçilik kısmında biraz kendimi kaptırdım. Köprülerde Cenevre çizgileri var ve çizgiler bir köprüden ötekine kesintisiz devam ediyor; kurulmuş mekanizmanın üzerinden tek seferde işlendiklerinde nasıl görünüyorlarsa öyle. Kenarlar pahlanıp parlatılmış (anglage), plakada perlage var, vidalar ısıyla maviye dönmüş, taşlar kırmızı. Bunların hiçbiri oynanışı değiştirmiyor. Hepsi büyüteçle eğildiğinde hissettirdiğini değiştiriyor.

Sıra önemli

Her saatin arkasında bir bağımlılık grafiği var: her parça üzerinde ne olduğunu biliyor. Bir parçayı ancak üstündeki her şey kalktıktan sonra alabiliyorsun. Yanlış sırayla denersen parça çıkmıyor ve önünde duran parça kısa bir süre parlıyor. Öğretmenin çoğunu bu tek kural yapıyor. Saatin nasıl kurulduğunu, onu yanlış sökmene izin verilmediği için öğreniyorsun.

Önce zembereği boşaltıyorsun ki köprüler kalkınca hiçbir şey fırlamasın. Sonra vidalar geliyor (parmağınla çevirerek söküyorsun), köprüler ve çarklar; cımbızla alınıp çıktıkları sırayla bir tepsiye diziliyorlar. İlk saati tamamen sökmek 25 adım sürüyor.

Temizlik, teşhis ve yedek parça çekmecesi

Kirli parçaların üzerinde fırçayla silinen bir toz, eski yağ ve pas katmanı var. Çok kötü olanlar temizleme kabına giriyor. Oyunun en rahatlatıcı ve muhtemelen en gereksiz kısmı bu; ama kalıyor.

Sonra büyüteçle arızayı buluyorsun. Her saatin kendi arızası var: üçüncü çarkta kırık bir diş, kopmuş bir zemberek, eğilmiş bir balans mili, verniğe dönmüş kurumuş yağ, aşınmış bir rotor yatağı; kronografta da birden fazlası.

Yedek parça çekmecesi: birbirine benzeyen ama uymayan çarklar

Asıl bulmaca yedek parça çekmecesinde başlıyor. Neredeyse aynı görünen birkaç çark var, her birinin kartında diş sayısı, çapı ve pinyonu yazıyor. Diş sayısı yanlış olanı seçersen oyun kırık çarkla aynı olması gerektiğini söylüyor. Çapı yanlış olanı seçersen komşu pinyonla düzgün kavraşmayacağını söylüyor. Küçük bir ayrıntı ama gerçek bir tezgâhta da tam olarak böyle.

Geri kurmak ve zamanı tutturmak

Kurma işi ters sırayla ilerliyor. Yuvasına yaklaşan çark yerine oturuyor, ama yalnızca dişleri komşusunun pinyonuna gerçekten geçiyorsa. Taşlara birer damla yağ damlıyor. Kısa tutarsan biraz daha tutman gerektiğini söylüyor. Uzun tutarsan yağ taşıyor, silip yeniden deniyorsun.

Sonra kuruyorsun, balans salınmaya başlıyor ve ilk tıkı duyuyorsun. Bütün bölüm o ilk tık için var.

Ayar cihazında: saat günde 30 saniye ileri gidiyor

En son ayar cihazı (timegrapher) geliyor. Gerçek bir saatçi mekanizmayı tıkları dinleyip bir çizgi çizen bir cihaza koyar: Çizgi yukarı gidiyorsa saat ileri, aşağı gidiyorsa geri kalıyor demektir. Oyunda balans köprüsündeki ayar kolunu çizgi düzleşene ve ölçüm günde sıfır saniyeye inene kadar sürüklüyorsun. Sonra saat dönüp sana kadranını gösteriyor, çalışır hâlde.

Altı saat

Her saat mekanizmaya yeni bir parça ekliyor:

  1. Cep saati: zemberek kutusundan balansa temel dişli dizisi.
  2. Askeri kol saati: kurma ve ayar mekanizması, kurma kolu ve kurma çarkları.
  3. Klasik elbise saati: kadran altındaki akrep-yelkovan çarkları, sonra kadran ve ibreler.
  4. Takvimli saat: tarih diski ve onu ileri atan sıçrama mandalı.
  5. Otomatik saat: bileğin hareketiyle saati kuran rotor.
  6. Kronograf: sütun çarkı, kronograf çarkı ve kavrama; bir de birden fazla arıza.

Tamir edilmiş ve çalışan kronograf

Testlerin değiştirdikleri

Oyunu farklı telefonlarda oynamak, masaüstü tarayıcıda asla yakalamayacağım birkaç şeyi ortaya çıkardı:

  • Dar telefonlarda saat menüde karanlık görünüyordu; ışık artık ekranın şekline göre ayarlanıyor.
  • Ayar sırasında kamera telefonlarda o kadar yaklaşıyordu ki tam da ihtiyacın olan kolu gizliyordu. Artık kol hep görünür kalıyor.
  • Hedef yazısı parlak metalin üzerinde zor okunuyordu. Artık gölgesi var.
  • Kronografın kadranı beyaz ve ibreler üzerinde neredeyse kayboluyordu; koyu yapıldılar.
  • Menü ile saat arasında geçerken sayfa yeniden yükleniyordu. Artık geçiş anında ve geri tuşu beklendiği gibi çalışıyor.

Nasıl yapıldı

Three.js ve Vite, düz JavaScript, çerçeve yok; HTML arayüz 3B sahnenin üstünde. Işık bir ortam haritasından geliyor, böylece pirinç ve çelik bir şeyleri yansıtıyor; yavaş telefonlarda kalite kademeli düşüyor. Sesler kodla üretiliyor: saatin kendi tik-takı, metal tıkırtıları, başarı için bir zil ve altta sessiz bir atölye ortamı. Capacitor aynı kodu Android ve iOS için paketliyor. Dışarıdan gelen tek şey açık lisanslı iki yazı tipi.

Reklam yok, satın alma yok, hesap yok ve internetsiz çalışıyor.

Saatçi Google Play’de, tarayıcıda da deneyebilirsin. Şu an bileğinde mekanik bir saat varsa, bu oyunun anlattığı her şeyi saniyede birkaç kez yapıyor. Bu oyunu yaptıktan sonra bunu çok daha sık düşünüyorum.