Blog / Topluluk / Koddan Kortuna: Bir Hackathon Prototipinin 6 Ayda Yerel Lige Dönüşüm Hikâyesi
Koddan Kortuna: Bir Hackathon Prototipinin 6 Ayda Yerel Lige Dönüşüm Hikâyesi
Topluluk

Koddan Kortuna: Bir Hackathon Prototipinin 6 Ayda Yerel Lige Dönüşüm Hikâyesi

Giriş — Fikirden Lig Arenasına

Bir hafta sonu boyunca ortaya çıkan hackathon prototipi, iyi bir fikrin, doğru ekibin ve hedefe odaklı bir yol haritasının birleşimiyle nasıl düzenli bir yerel lige dönüşür? Bu yazıda, fikrin ilk kod satırlarından ilk sezon kapanışına kadar geçen 6 aylık dönemi; teknik zorluklar, topluluk inşası, lig formatı ve ölçülen sonuçlar üzerinden derinlemesine inceliyorum.

Başlangıç: Prototipin Anatomisi

Hackathon sonrası elinizde genellikle bir demo ve sınırlı bir özellik seti olur: temel oyun mekaniği, bir sunucu, basit bir veritabanı ve bir front-end. Bizim prototipimizde ise dört temel bileşen vardı: gerçek zamanlı eşleştirme, maç kayıt sistemi, oyuncu profilleri ve basit bir puanlama mekanizması.

Prototipin amacı hızlı geri bildirim almaktı; performans, güvenlik ve ölçeklenebilirlik ikinci plandaydı. Hedef, ilk 100 kullanıcı ile gerçek maç verisi toplamak ve topluluğun gerçekten bu forma ilgi gösterip göstermediğini test etmekti.

Teknik Zorluklar ve Alınan Kararlar

1. Gerçek zamanlı deneyim ve gecikme

Lig oyuncuları, düşük gecikme ve tutarlı mesajlaşma bekler. Hackathon prototipi WebSocket üzerinden doğrudan sunucuya bağlanıyordu, ancak birçok eşzamanlı bağlantıda mesaj kaybı ve gecikme artışı görüldü.

  • Çözüm: WebSocket katmanını korurken, mesaj kuyruğu için Redis pub/sub kullandık. Kritik maç olayları (skor güncellemeleri, maç başlama/duraklatma) Redis ile workerlara yayıldı; böylece stateless uygulama sunucuları kolayca yatay ölçeklendi.
  • Ek adım: Ping/pong mekanizması ile uçtan uca gecikme ölçümleri toplandı. 100 ms'in üzerindeki uçtan uca gecikmeler otomatik olarak uzak bölgeler için farklı matchpool'lara yönlendirildi.

2. Eşleştirme ve adil rekabet

Hackathon sürümündeki eşleştirme, yalnızca rastgele veya ilk gelen ilk hizmet mantığına dayanıyordu. Bu, deneyim açısından kötü eşleşmelere neden oldu ve yeni kullanıcı kaybı getirdi.

  • Algoritma: Basit bir Elo benzeri sistem ile başlayıp, düşük veri setlerinde daha stabil sonuç veren Glicko benzeri hata aralığını (rating deviation) kullanan hibrit bir yaklaşım benimsedik.
  • Pratik uygulama: İlk 50 maç için "placement" mantığı aktif edildi; yeni oyuncular rastgeleleştirilmiş fakat korunmuş bir pool ile eşleşti. Bu, acemi kayıplarının moral bozmasını engelledi.

3. Veri tutarlılığı ve geri oynatılabilirlik

Lig formatının adil olması için her maçın kaydı tutulmalı ve gerektiğinde yeniden oynatılabilmeliydi. Başlangıçta sadece özet skorlar kaydediliyordu; fakat sonradan anlık olayların tamamının loglanacağı bir olay tabanlı sistem kurduk.

  • Ek teknik: Her maç olayı Kafka benzeri bir event stream ile kaydedilip arşivlendi. Bu, hakem itirazlarında veya hata analizlerinde çok işe yaradı.

4. DevOps: Dağıtım, gözlemlenebilirlik ve maliyet

Hızlı iterasyon için CI/CD zorunluydu. Docker ile paketleme, basit bir Kubernetes üzerinde otomatik ölçekleme ve GitHub Actions ile test/dev/prod pipeline kurduk.

  • Gözlemlenebilirlik için Prometheus + Grafana ile metrik toplandı; hata takibi için Sentry benzeri çözümler entegre edildi.
  • Maliyet kontrolü için gecikmeye toleranslı, düşük trafikli bölgelerde standby instance'lar düşük konfigürasyonda tutuldu ve trafik arttıkça otomatik ölçeklendi.
"Prototipte işe yarayan her çözümü aynen üretime taşımak büyük bir hatadır; bazen yeniden yazmak, daha uzun vadede zaman kazandırır." — Takım lideri

Topluluk İnşası: Kullanıcıdan Sahiplenmeye

Teknik altyapı kadar önemli olan bir diğer unsur topluluk yönetimiydi. Projenin yerel lig olabilmesi için oyuncuların yalnızca tüketici değil, aynı zamanda sahiplenici olmaları gerekiyordu.

1. Erken benimseyenleri korumak

İlk 200 kullanıcıya özel rozetler, beta erişimi ve geri bildirim kanalları sağladık. Bu kişiler hakem, moderatör veya topluluk elçisi (ambassador) olabilecek şekilde yapılandırıldı.

2. İletişim kanalları ve ritüeller

  • Discord/Slack üzerinden ayrı kanallar: destek, maç-analizi, sosyal ve turnuva duyuruları.
  • Haftalık AMA (ask me anything) ile gelişim planları paylaşıldı ve topluluk önerileri oylamaya açıldı.

3. Yerel etkinlikler ve onboarding

İlk ayda iki yerel mini-turnuva düzenlendi. Katılımcılara kısa bir yüz yüze onboarding verildi; bu, teknik aksaklıkların ve kullanıcı deneyimi sürtüşmelerinin hızla tespit edilmesini sağladı.

İlk Sezon: Format, Ölçümler ve Sonuçlar

6 aylık yolculuğun sonunda ilk resmi sezonu 8 haftalık bir lig + 2 haftalık playoff formatında açtık. Katılımcı sayısı: 842 kayıtlı oyuncu, aktif haftalık oyuncu (WAU): 312, sezon boyunca ortalama maç süresi 12 dakika.

Ölçülen ana metrikler

  • Retention (1 hafta): %48 — beta aşaması için beklenenden iyi.
  • Konversiyon (kayıt → ilk maç): %76 — onboarding ve mini-turnuvaların etkisi.
  • Churn nedenleri: teknik hatalar %34, eşleştirme adaletsizliği %28, zamanlama/uygunluk %20.

Formatın etkileri

Haftalık maç sayısı ve playoff yaklaşımı, rekabeti canlı tuttu. Örneğin, ikinci hafta sonunda yapılan eşleştirme güncellemesiyle adalet algısında anketlerde %22 artış gözledik.

Öğrenilen Kilit Dersler

  1. Prototipi üretime doğrudan taşımayın: Hackathon çözümleri hızlı test içindir; sürdürülebilirlik için yeniden mimari gerekebilir.
  2. Topluluk erken aşamada ürünün güvencesidir: Onları dinlemek, gamification ve rolleri doğru kurgulamak retention'u artırır.
  3. Veri odaklı karar verin: Basit metrikler (DAU/WAU, retention, konversiyon) ilk sezonda hangi önceliklerin belirlenmesi gerektiğini gösterir.
  4. Basit, ölçülebilir iyileştirmeler büyük fark yaratır: Örneğin eşleştirme logic'inde yapılan küçük parametre değişiklikleri rakamsal olarak anlamlı kazanımlar sağladı.

Sonraki Adımlar ve Yol Haritası

Birkaç öncelik belirledik: eşleştirme algoritmasının olgunlaştırılması (ML destekli öneri), mobil performans optimizasyonu, resmi hakem süreçleri ve sponsorlu yerel etkinliklerle lig takvimini genişletmek.

Sonuç — Koddan Kortuna

Bir hackathon prototipinin 6 ay içinde yerel bir lige dönüşmesi, doğru teknik kararlar, topluluk odaklı büyüme ve sıkı ölçüm disiplini gerektirir. Bu hikâye, hızlı fikir doğrulamadan sürdürülebilir ürüne geçişin somut bir örneğidir: teknik zorluklar çözülür, topluluk inşa edilir ve format doğru kurgulanırsa fikirler sahaya dönüşür.

Bu süreç boyunca en kıymetli varlığımız, geri bildirim veren gerçek oyuncular oldu. Onları dinlemek, hem kodu hem de lig deneyimini iyileştirdi — ve gerçek ligler, oyuncuların sahiplendiği yerlerdir.