Dünyanın en uzun gündüzüne ulaşmadan önce gizli mesajları çözmeye hazır mısınız? Solstice Cipher, kullanıcıların gerçek JavaScript fonksiyonları yazarak şifreleri kırdığı, tarayıcı tabanlı bir bulmaca oyunudur. Bu oyun, hem kodlama pratiği yapmanızı sağlarken hem de gizemli bir hikayenin parçası olmanızı sunuyor.
Oyun, Haziran Solstice Game Jam için tasarlandı ve her seviye geçildikçe ekranınızdaki gündüz süresi artıyor — ta ki 21 Haziran'daki en uzun günde karanlığın tamamen yenildiği ekrana ulaşana kadar.
Oyunun Temel Mekaniği: Kod Yaz, Şifreleri Kır
Solstice Cipher'ın çekirdek oynanışında, oyunculara gerçek Monaco Editor arayüzünde çalışma imkanı sunuluyor. Bu editör, Visual Studio Code'un da kullandığı aynı motorla çalışıyor. Oyunun amacı oldukça basit:
- Gizli bir mesajı okuyun
decrypt(text)fonksiyonunu canlı editörde yazın- decrypt() çalıştır butonuna basın
- Çıktının doğru olup olmadığını kontrol edin
Her seviyenin zorluğu arttıkça, oyuncunun algoritma tasarlama ve hata ayıklama becerileri test ediliyor. Oyun, sadece şifreleri kırmanın değil, aynı zamanda doğru kodun nasıl yazılacağının da peşinde.
Beş Seviyede Gündüzü Geri Kazanma Yolculuğu
Oyun, beş farklı seviyeden oluşuyor ve her biri bir şifreleme tekniğine odaklanıyor. Ayrıca, her seviye tarihi bir bağlamla ilişkilendiriliyor — özellikle Bletchley Park'taki 1941 yılı ve Alan Turing'in ekibi tarafından kullanılabilecek tarzda şifreler kullanılıyor. Seviyelerin ilerleyişi aynı zamanda ekrandaki gündüz süresinin de artmasını sağlıyor:
- Seviye 1 (Şafak Öncesi): Caesar kaydırma şifresi —
HELLO WORLDmesajını çözün - Seviye 2 (Gündoğumu): Atbash ayna şifresi —
THE COOLmesajını deşifre edin - Seviye 3 (Sabah): ROT13 —
PRIDE HUMANmesajını okuyun - Seviye 4 (Öğle Vakti): Vigenère şifresi (anahtar: PRIDE) —
BE YOUmesajını çözün - Seviye 5 (En Uzun Gün): Caesar kaydırma + kelime ters çevirme —
THE LIGHT SHINESifadesini bulun
Her seviyenin sonunda, ekrandaki gündüz çubuğu %15'ten %100'e kadar doluyor ve arka plandaki manzara giderek aydınlanıyor. Oyunun finalinde, 21 Haziran'daki en uzun günde Alan Turing'in kendi sözleriyle karşılaşıyorsunuz.
Teknik Altyapı: Monaco Editörü ve Güvenli Kod Yürütme
Oyun, React 19, TypeScript ve Vite kullanılarak geliştirildi. Temel oynanış arayüzü olarak @monaco-editor/react kütüphanesi tercih edildi. Bu sayede, oyuncular gerçek bir kod editörü deneyimi yaşarken, aynı zamanda tarayıcıda çalışabilen statik bir uygulama elde ediliyor.
Kodun güvenli bir şekilde yürütülmesi için, oyuncu tarafından yazılan decrypt(text) fonksiyonu tarayıcıda yerel olarak çalıştırılıyor. Fonksiyon, new Function() kullanılarak izole bir ortamda çalıştırılıyor ve sadece decrypt fonksiyonunun tanımlanmasını bekliyor. Çıktı, karşılaştırma yapılmadan önce normalleştiriliyor (büyük harfe çevirme, boşluk temizleme vb.).
// src/utils/runUserCode.ts — basitleştirilmiş versiyon
const fn = new Function(`
${code}
if (typeof decrypt !== 'function') throw new Error('Lütfen decrypt(text) fonksiyonunu tanımlayın');
return decrypt(${JSON.stringify(encrypted)});
`);Yapay Zeka Destekli Hatalarınızı Bulma
Oyun, isteğe bağlı olarak Google AI Studio üzerinden alınan bir API anahtarıyla çalışan Gemini 3.5 Flash modelini kullanarak oyunculara özel hata ayıklama desteği sunuyor. Bu özellik etkinleştirildiğinde, VITE_GEMINI_API_KEY ortam değişkeni aracılığıyla tanımlanıyor.
Yapay zeka desteği üç aşamada çalışıyor:
- Yerel Statik Analiz: Oyuncunun kodunda yer alan hatalar tespit ediliyor (örneğin, şifreleme yapılmadan karakterlerin eklenmesi).
- Gemini'ye Özel İpucu Talebi: Analiz sonuçlarına göre, hataların nerede olduğunu ve nasıl düzeltilmesi gerektiğini belirten satır bazlı ipuçları oluşturuluyor.
- Otomatik Düzeltme Önerileri: Eğer oyuncu hata yapmaya devam ederse, ikinci bir Gemini çağrısıyla çalışan bir kod parçası öneriliyor. Bu öneri, doğrudan editöre uygulanabiliyor ve hatanın giderilmesini sağlıyor.
Eğer API anahtarı tanımlı değilse, oyun çevrimdışı modda da çalışmaya devam ediyor ve yerel bir karşılaştırma motoru kullanarak doğru cevaplara ulaşmanızı sağlıyor.
Tasarım ve Estetik: Endüstriyel Brutalizm ve CRT Estetiği
Solstice Cipher, endüstriyel brutalizm ve eski CRT ekranlarından ilham alan bir tasarıma sahip. Arayüzde kullanılan renkler ve fontlar, 1940'lı yılların Bletchley Park'ındaki ortamı yansıtacak şekilde tasarlandı. Özellikle Monaco Editörü için özel bir tema oluşturuldu:
- Fosfor yeşili karakter dizileri
- Tehlike kırmızısı anahtar kelimeler
- Karanlık CRT arka planı
Ayrıca, oyun ekranındaki gündüz süresini gösteren çubuk ve geçiş animasyonları Motion kütüphanesi kullanılarak geliştirildi. Bu sayede, her seviye geçildiğinde ekranın giderek aydınlanması, hem görsel hem de duygusal bir deneyim sunuyor.
Nasıl Başlanır? Hızlı Başlangıç Rehberi
Solstice Cipher'ı yerel ortamınızda çalıştırmak için aşağıdaki adımları izleyin:
- Depoyu klonlayın:
cd solstice-cipher
git clone - Bağımlılıkları yükleyin:
npm install- Geliştirme sunucusunu başlatın:
npm run devBu komut, uygulamanın ` adresinde çalışmasını sağlayacaktır.
Eğer Gemini AI desteği kullanmak istiyorsanız, proje kök dizininde .env dosyası oluşturun ve içine aşağıdaki satırı ekleyin:
VITE_GEMINI_API_KEY=your_google_ai_studio_keyBu anahtar için ücretsiz bir Google AI Studio anahtarı edinebilirsiniz.
Geleceğe Bakış: Kodlama Oyunları ve Topluluk Katılımı
Solstice Cipher, sadece bir oyun değil — aynı zamanda kodlama pratiği yapmak isteyenler için yenilikçi bir araç. Gelecekte, daha fazla şifreleme tekniği, zorluk seviyesi ve topluluk tarafından oluşturulan içerikler eklenmesi planlanıyor. Ayrıca, oyunun açık kaynaklı doğası sayesinde geliştiricilerin kendi versiyonlarını oluşturmaları ve katkıda bulunmaları mümkün.
Bu tür projeler, hem eğlenceli hem de eğitici olma potansiyeline sahip. Eğer siz de kodlama pratiği yaparken macera dolu bir deneyim yaşamak istiyorsanız, Solstice Cipher tam size göre bir oyun olabilir. Haziran Solstice Game Jam'e katılmak ve kendi projelerinizi geliştirmek için ilham kaynağı olabilir.
Yapay zeka özeti
Solstice Cipher, tarayıcıda gerçek JavaScript kodları yazarak şifreleri kırmanızı sağlayan benzersiz bir bulmaca oyunudur. Haziran Solstice Game Jam projesi olan bu oyunun detayları ve nasıl oynanacağı hakkında bilgi edinin.