Kendi ürünümüz · Satranç Oyna ve Öğren
İlk hamleden itibaren kurulmuş bir satranç platformu.
chessGM ücretsiz bir satranç uygulaması: canlı çevrimiçi oyunlar, insan gibi oynayan botlar, sesli koçlu tam oyun analizleri, puanlı bulmacalar ve kurslar; İngilizce, Bangla ve Hintçe. Satranç motorunu, sunucuyu, uygulamaları ve ses servisini kendimiz yazdık ve kendi altyapımızda işletiyoruz.
Kullanım rehberi: 0'dan 2600+'ya Yapay zekâ asistanınızla kullanın
Web'de ve Google Play'de (Android) yayında. iOS uygulaması App Review aşamasında: yakında App Store'da.

- Web (PWA)
- Android
- iOS
- iPadOS
- motor tarafından doğrulanmış puanlı bulmaca
- 15.200
- kurs ve sıfırdan başlayan bir parkur
- 60
- 3000'e sınırlanmış Stockfish 19'a karşı Elo (200 oyun; Stockfish'in kendi ölçeği)
- +164
- 2.500 eşzamanlı oyunluk yük testinde p99 hamle yazma süresi
- 3 ms
Uygulamanın içi
Mağaza sayfalarında göründükleri gibi, yayındaki uygulamadan gerçek ekranlar.

Saniyeler içinde canlı oyun 
Tam bir oyun analizi 
Hata okları ve “Varyantı gör” 
Daha iyi varyantı adım adım izleyin 
Analiz, koyu modda 
Cevap veren botlar 
Puanlı bulmacalar 
Sıfırdan öğrenin 
Açılış kursları 
Efsanelerden esinlenen botlar 
İngilizce, Bangla ve Hintçe
Oyuncular neler alıyor
Canlı çevrimiçi oyun
Bullet, blitz, rapid ve klasik modlarda hızlı eşleşme; puanlı ya da dostane; sunucu saatleri, Glicko-2 puanları, arkadaşlar, meydan okumalar, mesajlar ve izleyicilik.
İnsan gibi oynayan botlar
13 özgün karakter ve ünlü oyuncuların herkese açık oyunlarından esinlenen botlar (bağlantısız). Her biri, puanındaki bir insanın yapacağı hataları yapar.
Koçlu oyun analizi
Tahtada hata okları, sesli adımlarla “Varyantı gör”, hamle etiketi rozetleri ve nedenini açıklayan bir koç paneli. Doğruluk, 739 herkese açık chess.com oyununa göre kalibre edilmiştir (tipik fark yaklaşık 4 puan) ve hamle etiketleri chess.com'un Game Review'una göre ayarlanmıştır. Chess.com ile bağlantısı yoktur.
Bulmacalar ve Bulmaca Koşusu
Temalı, ipuçlu yaklaşık 15.200 puanlı bulmaca ve günün bulmacası. 3 dk, 5 dk ve Hayatta Kalma modlarında Bulmaca Koşusu ve kendi puanı olan çevrimiçi Koşu Savaşı.
Aralıklı tekrarlı kurslar
Her biri yaklaşık 50 hatlı 30 açılış kursu, 30 taktik, orta oyun ve oyun sonu kursu ve 200 puandan başlayan bir yeni başlayan parkuru. Her hat motor tarafından doğrulanmış ve FSRS ile tekrar ettirilir.
Açıklayan ve konuşan bir koç
Bulunanı, kaçırılanı ve bir hamlenin neden kötü olduğunu İngilizce, Bangla ve Hintçe yazan, sohbet botu değil, satranç motorumuz ve açıklama kurallarıdır. Açık kaynaklı ses modelleriyle çalışan bir ses servisi bunu seslendirir; sesler makine tarafından üretilir. Hiçbir dış yapay zekâ servisi çağrılmaz.
Çevrimdışı çalışır, bildirim de gönderebilir
Bulmacalar, botlar, iki kişilik oyunlar ve analiz tahtası web sitesinde ve Android uygulamasında çevrimdışı çalışır. Web sitesi bildirimleri masaüstü ve Android tarayıcılarında çalışır; iPhone'da siteyi Ana Ekran'a ekledikten sonra.
Ücretsiz, günlük sınırlarla ve onayla
Uygulama içi satın alma yoktur. Bazı özelliklerin ücretsiz günlük sınırları vardır (10 ipucu, 3 derin analiz, 3 arama, 3 sesli sohbet oyunu) ve uygulamalarda ödüllü bir reklam her birinden bir tane daha ekler. Yeni oyuncular reklamsız başlar ve reklamlar oyuncunun onay tercihlerini izler (kişiselleştirilmiş reklamlar yalnızca onayla). Google, Apple veya e-posta ile giriş yapın ve hesabınızı uygulamadan silin.
Botları yenin, basamak basamak
En kolaydan en zora 13 alıştırma botundan oluşan bir merdiven; her biri için kendi rehberimiz, alıştırma ortakları, metin olarak yapıştırdığınız oyunların analizi, hatalarınızdan üretilen bulmacalar ve kayıtlı ilerleme. Başkalarının botlarına asla bağlanmaz.
Rakibinizi nasıl yeneceğinizi öğrenin
Bir chess.com kullanıcı adı yazın: tarayıcınız bu oyuncunun son herkese açık oyunlarını chess.com'un herkese açık veri API'sinden okur ve chessGM bunları adımlar ve hatırlatıcılarla bir plana dönüştürür. Chess.com ile bağlantısı yoktur.
Sesli sohbet ve aramalar
Yalnızca ses, görüntü yok. Ses doğrudan iki cihaz arasında akar (yalnızca doğrudan bağlantı mümkün değilse bir aktarıcı üzerinden); sunucumuz yalnızca kurulum mesajlarını iletir, hiçbir şey kaydedilmez veya saklanmaz. Her gün ücretsiz: 3 sesli sohbet oyunu ve 3 yanıtlanan arama.
Tahtalar ve taşlar
Kendi chessGM taş setlerimiz ve tahtalarımız, ayrıca özgün çizimli dört premium set: Abanoz ve Şimşir, Kraliyet Altını, Mermer ve Kristal. Hepsi ücretsiz; “Premium” yalnızca bir etikettir.
Sıfırdan yapıldı
Her katman bize ait; oyunun kurallarından üzerinde çalıştığı sunucuya kadar.
Tek bir Go sunucusu
Tek bir Go ikili dosyası HTTP API'sini ve WebSocket merkezini sunar; oyun saatlerini, eşleştirmeyi, 1.200 ev botu hesabından oluşan bir filoyu (her zaman bot olarak etiketli) ve bulmaca ile kurs motorlarını çalıştırır.
- Go
- WebSocket
- SQLite (WAL)
- Glicko-2
Kendi satranç motorumuz
Perft ile doğrulanmış bitboard hamle üretimi ve alfa-beta araması; hepsi Go ile yazıldı. Tam güçte, çoğunlukla lichess'in açık değerlendirmeleri üzerinde, bazı pozisyonlar öğretmen olarak Stockfish ile puanlanarak kendimizin eğittiği küçük bir sinir ağı (NNUE) eklenir; başka hiçbir motorun ağ ağırlıkları kullanılmaz. Stockfish 19'un UCI_Elo ölçeğinde yaklaşık 3160 ölçülür (10+0.1 sürede, tek iş parçacığıyla 200 oyunluk maçlar; önceki motor 2840 ölçülmüştü); bu ölçek FIDE ya da web sitesi Elo'su değildir. Daha yeni sürümler daha da güçlüdür. Aynı motor sunucuda daha büyük bir ağla, tarayıcıda ve uygulamalarda ise WebAssembly'ye derlenmiş daha küçük bir ağla çalışır. Oyun Analizi, koç ve alt seviye botlar önceki, dondurulmuş motoru kullanır; bu yüzden sayıları sabit kalır.
- Go
- Bitboards
- NNUE
- WebAssembly
Web uygulaması
TypeScript ile yazılmış statik bir SvelteKit uygulaması; çevrimdışı oyun için bir service worker ve yalnızca gerektiğinde yüklenen diller.
- SvelteKit
- TypeScript
- Service worker
- PWA
iOS ve Android uygulamaları
Yerel giriş, onaylı reklamlar, anlık bildirimler, yerel konuşma ve iOS sürümüne gömülü çevrimdışı uygulama kopyası içeren Capacitor uygulamaları.
- Capacitor
- AdMob
- Firebase Cloud Messaging
- APNs
Ses servisi
sherpa-onnx üzerinde küçük bir C yardımcısıyla Go'da yazılmış, açık sinir ağı ses modellerini çalıştıran ve söylediklerini önbelleğe alan bir metinden konuşmaya servisi. Aynı modeller tarayıcıda da çalışır.
- Go
- C
- sherpa-onnx
- onnxruntime-web
Sesli sohbet ve aramalar
İki cihaz arasında eşler arası WebRTC sesi; doğrudan yol engellendiğinde bir aktarıcıyla. Sunucu yalnızca kurulum mesajlarını iletir ve ücretsiz günlük sınırları sayar.
- WebRTC
- TURN
Operasyon
Sunucuları kendimiz işletiyoruz
Arada oyun arka uç servisi yok: kendi sunucumuz, kendi dağıtımlarımız, kendi izlememiz.
- nginx ve Cloudflare arkasında, baştan sona TLS ile tek bir kendi yönettiğimiz Linux sunucusu
- Oyun sunucusu bir systemd servisi olarak çalışır; WebSocket'ler nginx'ten geçer
- Tek komutla dağıtım: derle, zaman damgalı bir sürüm yükle, geç, sağlık kontrolü yap, anında geri alma için eski sürümleri sakla
- Günde birçok dağıtım; her biri saniyeler içinde geçiş yapar, yeniden başlatma sırasında bir bekleme sayfasıyla
- WAL modunda SQLite ve gece yedekleri
- İçerik Güvenliği Politikası, yalnızca Cloudflare'den gelen istemci IP'lerine güven, çapraz kaynaklı yazmaların reddi, WebSocket hız sınırları
Çözdüğümüz zor sorunlar
Oyuncuların hiç görmediği kısımlar, ölçtüğümüz sayılarla.
Oyunu yavaşlatmadan her hamleyi kaydetmek
- Sorun
- Yük altında her hamleyi doğrudan veritabanına yazmak en yavaş yazmaları yaklaşık 100 ms'ye çıkardı.
- Ne yaptık
- Hamleler gruplanır ve oyunun arkasında her 250 ms'de SQLite'a WAL modunda yazılır; saatler ise sunucuda kalır.
Sonuç Yük testinde 2.500 eşzamanlı oyunla p99 hamle yazma süresi yaklaşık 100 ms → 3 ms. Profil sorgusu 17 ms → 1,1 ms.
Oyuncuların güvenebileceği doğruluk
- Sorun
- Oyuncular doğruluk puanlarını büyük satranç sitelerinden bildikleri sayılarla karşılaştırır.
- Ne yaptık
- Doğruluk modelimizi 739 gerçek oyun üzerinde chess.com'un yayımladığı puanlara göre kalibre ettik (bağlantımız yok) ve daha önce görmediği oyunlarda test ettik.
Sonuç Ayrılmış oyunlarda doğrulukta tipik olarak yaklaşık 4 puan fark ve 0,9 korelasyon. Hamle etiketleri chess.com'unkilerle yaklaşık yarı yarıya birebir uyuşuyor, sayılar ise birbirine yakın.
Tam olarak tek yanıtı olan bulmacalar
- Sorun
- İki iyi yanıtı olan ya da daha önce ayna görüntüsüyle görülmüş bir bulmaca oyuncuya bozuk gelir.
- Ne yaptık
- Bulmacaları motorun kendi kendine oynadığı ve insan modeli oyunlardan şirket içinde üretiyoruz. Derin bir motor araması her çözücü hamlenin tek hamle olduğunu kanıtlar; renk ve tahta aynaları dahil kopyalar kaldırılır.
Sonuç Yaklaşık 15.200 puanlı bulmaca; bunların yaklaşık 4.900'ü son çalıştırmadan gelen yenilerdir.
iPhone'da çevrimdışı, reklamlar da çalışırken
- Sorun
- Apple'ın web görünümü çevrimdışı service worker'lara yalnızca uygulamaya bağlı alan adlarıyla izin verir ve uygulamaya bağlı alan adları AdMob'u bozar.
- Ne yaptık
- Bir sonraki iOS sürümü, bağlantı geri geldiğinde eşitlenen yerel paylaşımlı depolamayla web uygulamasının kendi çevrimdışı kopyasını taşır.
Sonuç Bir sonraki mağaza sürümünde iOS'ta tam çevrimdışı oyun, uygulama boyutunda yalnızca +0,06 MB'a mal olarak.
Yavaş ağlarda hızlı
- Sorun
- Oyuncularımızın çoğu mobil veri kullanıyor ve analiz sayfası yüklenirken zıplıyordu.
- Ne yaptık
- Statik bir derleme, istek üzerine yüklenen diller, her tahta ve panel için ayrılmış alan ve bir service worker önbelleği.
Sonuç Yavaş 4G'de ilk anlamlı boyama 2,8 sn → 1,0 sn. Analiz sayfasında yerleşim kayması 0,81 → 0.
Kimsenin taklit edemeyeceği puanlar
- Sorun
- Neyin doğru yanıt sayıldığına ve ne kadar sürdüğüne telefon karar verdiğinde liderlik tabloları hileye davetiye çıkarır.
- Ne yaptık
- Bulmaca Koşusu yanıtları sunucuda denetlenir ve sunucu saatiyle zamanlanır. 5 saniye içinde insan bulunamazsa, puanına göre modellenmiş bir hız ve doğrulukla çözen bir ev botu Koşu Savaşı'na katılır.
Sonuç Adil liderlik tabloları ve neredeyse hiç CPU harcamayan botlar: Koşu botları motoru çalıştırmak yerine çözümlerini simüle eder ve bir oyun botunun hamlesi birkaç milisaniye sürer.
GPU çiftliği olmadan sinir ağı motoru
- Sorun
- Daha güçlü bir motorun bir tarayıcıda ve tek bir küçük sunucuda çalışması gerekiyordu; eğitim için de bir Mac vardı, GPU kümesi yoktu.
- Ne yaptık
- Küçük bir NNUE ağını lichess'in açık değerlendirmeleri üzerinde eğittik (en büyük kaldıraç daha fazla veriydi: 10M, 20M ve 94M pozisyon sırasıyla +111 ve ardından +99 Elo getirdi), yeniden hesaplamak yerine hamle hamle güncelledik ve sunucu işlemcileri için sade sürümle bit bit karşılaştırılarak denetlenen hızlı kod yazdık. Bir değişiklik yalnızca önceki sürüme karşı yapılan maç kazandığını söylerse yayına çıkar.
Sonuç 600 kendi kendine oyunda önceki motora göre +349 ± 37 Elo; 3000'e sınırlanmış Stockfish 19'un 164 Elo üzerinde ve 3190'a sınırlanmışıyla yaklaşık aynı seviyede (her biri 200 oyun, 10+0.1; Stockfish'in sınırlayıcısı kendi ölçeğidir, bir puan listesi değildir).
Taklit edilemeyen bir reklamla uzatılan ücretsiz günlük sınırlar
- Sorun
- Oyuncu bir ipucu, derin analiz, arama veya sesli sohbet oyunu daha kazanmak için reklam izleyebilir ve tek başına telefondaki hiçbir şey bu ödülü kendi kendine verememelidir.
- Ne yaptık
- Sunucu, ödülü Google AdMob'un reklam görüntülemesine ilişkin imzalı sunucu tarafı doğrulamasını aldığında verir (uygulamanın onayladığı sınırlı bir yedekle) ve ödülleri ile günlük sınırları kendisi doğrular, sınırlar ve sayar.
Sonuç Her gün ücretsiz: 10 ipucu, 3 derin analiz, 3 arama ve 3 sesli sohbet oyunu; ödüllü her reklam için her birinden bir tane daha (varsayılanlar; işletmeci değiştirebilir).
Demo değil, ürün gibi test edildi
- Hamle üretimi bilinen pozisyonlara karşı perft ile doğrulanır
- Bir motor değişikliği yalnızca önceki sürüme karşı yapılan maç kazandığını söylerse yayına çıkar ve güç, sabit seviyelerde Stockfish'e karşı denetlenir
- Sunucu işlemcileri için hızlı motor kodu, sade sürümle bit bit karşılaştırılarak denetlenir
- Sunucu entegrasyon testleri, motor testleri ve WebAssembly derleme testleri
- Binlerce eşzamanlı oyunu simüle eden yük testleri
- Sesli koç yanıtları yeni bir cümle için 0,3–2 sn, önbellekteyse anında; 18 sesle
Teknoloji
- Go
- SQLite
- WebSocket
- SvelteKit
- TypeScript
- NNUE
- WebAssembly
- WebRTC
- Capacitor
- sherpa-onnx
- nginx
- Cloudflare
- systemd
Bir oyunu ya da gerçek zamanlı bir uygulamayı bu şekilde kurdurmak ister misiniz?
Oyunları ve gerçek zamanlı platformları baştan sona tasarlıyor, geliştiriyor ve işletiyoruz: uygulamalar, sunucular, mağazalar ve operasyon.