UğurcanEser
İşlerHexsmith

Hexsmith

iPhone ve Android için, çözücüyle doğrulanmış 300 bölümlük bir somun sıralama bulmacası

Genel bakış

Hexsmith kendi sıralama bulmacam: bir civatanın üstündeki aynı renk somunları alıp başka bir civataya vidalıyorsunuz, ta ki her civatada tek renk kalana kadar. Öğrenmesi kolay; telefonu bırakmadan önce “bir bölüm daha” dedirten türden.

Oyun ücretsiz ve tamamen çevrimdışı; reklam yok, hesap yok, veri toplama yok; İngilizce ve Türkçe. iPhone ve iPad için App Store’da yayında, Android sürümü Google Play için hazırlanıyor. Atölye teması her yere işlemiş: tahtanın çevresinde pirinç göstergeler ve dişliler, bölüm çözülünce basılan bir “kontrol edildi” damgası ve bölümler arasında onardığınız bir atölye.

Renkli somun dizili civatalar ve geri al, ipucu, ekstra civata, karıştır güçlendiricileriyle bir bölüm Çok zor olarak işaretlenmiş günün bulmacası Kazanılan altın, yıldız ve seriyle çözülmüş bir bölüm Sıradaki parçanın gösterildiği atölye

Oyunda neler var

  • 300 bölüm, hepsi çözülebilir. Her bölüm yayımlanmadan önce bir çözücüyle kontrol ediliyor, yani her zaman bir çıkış yolu var. Zorluk yavaş yavaş artıyor, zor bölümlerin arasında nefes aldıran bölümler geliyor.
  • On bir mekanik, teker teker ve kısa bir kartla tanıtılıyor: en üste gelince rengini gösteren gizli somunlar, farklı boylarda civatalar, donmuş civatalar, kilitler ve anahtarlar, zincirler, geri sayan bomba somunlar, iki yer kaplayan büyük somunlar, kapaklı civatalar, bukalemun somunlar, tek yönlü ve bağlı civatalar.
  • Gerektiğinde yardım. Hamlelerinizi geri alın, ipucu isteyin, ekstra civata ekleyin ya da serbest somunları karıştırın. Bölüm bitirmek altın ve yıldız kazandırıyor; günlük ödüller ve bir seri var.
  • Günün bulmacası. Günlük bölüm cihazda, tarihten üretiliyor; böylece her oyuncu sunucu olmadan aynı tahtayı görüyor. Hafta boyunca zorlaşıyor: pazartesi beş renk, pazar sekiz renk.
  • Atölye. Yıldızlar bir atölyenin parçalarını tek tek onarıyor, biten bir mekân bir sonrakini açıyor. Mekânlar veri olarak tutuluyor ve satır içi SVG ile çiziliyor, bu yüzden yenileri uygulama güncellemesi gerektirmeden eklenebiliyor.
  • 32 başarım, oyunun makine dairesi diliyle; her birinin küçük bir altın ödülü var.

Nasıl yapıldı

  • Paket olarak kurallar. Oyun kuralları motor bağımsız bir TypeScript paketinde, mekanikler için bir eklenti sistemiyle yaşıyor: yeni bir mekanik birkaç kancası olan bir modül, çekirdek kurallar hiç değişmiyor. İstemci yalnızca kuralların ürettiği olayları çiziyor.
  • Elle bölüm yerine bir üretim hattı. Tersine karıştıran üreteç çözülmüş tahtadan yola çıkıyor, bu yüzden her aday yapısı gereği çözülebilir. Kanonik durum tekilleştirmeli bir genişlik öncelikli çözücü tam en az hamle sayısını veriyor, bot oyunculu bir zorluk modeli her adayı puanlıyor ve eğriye göre çalışan seçim adımı zorluk eğrisinin her yuvası için bir bölüm seçiyor. Doğrulama, commit’ten önce bayat çözümleri, kopyaları ve çözülemeyen bölümleri reddediyor.
  • Tarayıcıda bölüm editörü. Civataları ve somunları boyayın, bölümü oynayın, en iyi çözümü adım adım izleyin, üretilen adayları inceleyin ve sıralamayı zorluk eğrisine karşı sürükleyip bırakarak düzenleyin.
  • Tek kod tabanı, birden çok uygulama. Oyun, bölüm editörü, oynanabilir reklam (her reklam ağı için tek HTML dosyası) ve komut satırı araçları bir pnpm monorepo’sunda aynı paketleri paylaşıyor. Bir ekonomi simülatörü, ödüllerdeki bir değişikliğin bir aylık altın akışını nasıl etkilediğini gösteriyor.
  • Çizim ve kabuk. Tahtayı PixiJS 8 çiziyor; düşük donanımlı Android telefonlar akıcı kalsın diye sprite havuzları ve paylaşılan dokular kullanılıyor. Capacitor 8 bunu iOS ve Android için sarıyor; uygulama simgesi ve açılış ekranı SVG olarak çizilip iki platform için üretiliyor.
  • Önce yerel. Kayıt cihazda duruyor ve gelişigüzel düzenlemelere karşı imzalı. Mağaza derlemeleri hiç ağ isteği yapmıyor; App Store gizlilik etiketinin “Veri Toplanmıyor” olmasının nedeni bu.

Teknolojiler

  • TypeScript, PixiJS 8, Vite, Capacitor 8, Zod
  • Vitest ve fast-check özellik testleriyle pnpm çalışma alanı, ESLint, Prettier
  • Bölüm üretme, çözümleme, seçme, doğrulama ve paketleme için Node.js komut satırı araçları

Kalite

  • Kurallar, çözücü, üreteç, zorluk modeli ve ekonomi genelinde yaklaşık 260 birim ve özellik testi; her push’tan önce çalışan bir bölüm doğrulaması
  • Bölüm aralıklarının tamamını oynayan betikli dokunma oturumları ve düşük donanımlı bir Android cihazda ölçülen performans bütçesi

Diğer işler

Tüm işler