Ana içeriğe geç
Ukarisatur Logo
Ukarisatur

Gerçek Zamanlı Çok Oyunculu Dünyalar Kuruyoruz

2019'dan beri İstanbul'da çalışan ekibimiz, binlerce oyuncunun aynı anda bağlandığı oyun sistemleri geliştiriyor. Backend altyapısından istemci optimizasyonuna kadar her detayı bizzat kodluyoruz.

Oyun stüdyolarının en büyük kabusu sunucu çökmesi. Bizim işimiz tam da bunun önüne geçmek – oyuncular keyif alırken, sistemler sessizce çalışıyor.

Projenizi Konuşalım
Çok oyunculu oyun geliştirme sürecinde kod yazılırken ekran görüntüsü

Nereden Başladık, Nereye Geldik

Küçük bir proje ekibinden sektörün güvendiği partnerine

İlk Günler – 2019

Başlangıçta üç kişiydik. Bir mobil oyun için basit bir eşleştirme sistemi yapmıştık. O dönem saniyede 50 eşleşme bile büyük başarıydı bizim için.

İlk hafta canlıya çıktığımızda sunucu saatlerce ayakta kaldı ama sonra yavaşlamaya başladı. Gece yarısı kodları yeniden yazdık. Sabaha karşı sorun çözüldü, ama o gece çok şey öğrendik: teoride güzel olan her şey pratikte patlar.

Büyüme Ağrıları – 2021

İkinci yıl çok farklı geçti. Bir battle royale projesi aldık, 100 oyunculu maçlar istiyorlardı. Sistemimiz o zamanlar 30 oyuncuyu zor taşıyordu.

Altı ay boyunca mimariyi sıfırdan yeniden kurduk. Mikroservis yapısına geçtik, sunucu bölgelendirmesi ekledik, netcode'u optimize ettik. Mart 2022'de beta testlerde 120 oyuncuyla sorunsuz maç oynandı.

Bugün – 2025

Artık daha büyük bir ekibiz ve daha karmaşık projeler yapıyoruz. Geçtiğimiz ay 50,000 eş zamanlı oyuncu altyapısı kurduk. Sistem hiç aksama yaşamadı, oyuncular fark etmedi bile.

Hala her projeye sanki ilk projemizmiş gibi yaklaşıyoruz. Kod yazmak sadece iş değil bizim için – bu sistemlerin canlıda nasıl davranacağını düşünmek, gecenin 3'ünde bir bug'ı çözmek, müşteriye "her şey hazır" diyebilmek için saatlerce test yapmak.

Neyle Uğraşıyoruz Gerçekten

Sunucu Mimarisi

Oyununuz büyüdükçe sistem de büyümeli. Biz bunu baştan planlıyoruz.

  • Yük dengeleme sistemleri (load balancing)
  • Bölgesel sunucu yapılandırması
  • Otomatik ölçeklendirme (auto-scaling)
  • Felaket kurtarma planları

Gerçek Zamanlı Senkronizasyon

100 milisaniye gecikme fark edilir. 50 milisaniye iyidir. 20 milisaniye mükemmeldir.

  • Özel netcode yazımı
  • Lag compensation teknikleri
  • Delta compression optimizasyonu
  • İstemci-taraf tahmin algoritmaları

Güvenlik ve Hile Önleme

Oyuncular her türlü hileyi dener. Sistem her türlü hileyi yakalar.

  • Sunucu taraflı doğrulama (server authority)
  • Anormal davranış algılama
  • Şifreli veri iletimi
  • Anti-cheat entegrasyonları

Gerçek Bir Projeden: MOBA Türü Oyun Backend'i

Problem

Müşteri 5v5 MOBA tarzı bir oyun yapıyordu. Maçlar ortalama 25 dakika sürüyordu ve her saniye yüzlerce veri paketi gidip geliyordu. İlk prototiplerinde lag sorunları vardı – özellikle büyük team fight'larda sistem yavaşlıyordu.

Çözüm Süreci

İlk iki hafta sadece mevcut sistemlerini inceledik. Sorun açıktı: her veri paketini tüm oyunculara gönderiyorlardı. Görüş alanı kontrolü yoktu, gereksiz veriler sürekli iletiliyordu.

Üç aylık geliştirme döneminde interest management sistemi kurduk. Her oyuncu sadece kendi görüş alanındaki verileri alıyor. Büyük team fight'larda bile sistem sakin kalıyor artık.

Sonuçlar

Öncesi: Ortalama 120ms gecikme, 10 oyunculu savaşlarda 200ms'ye çıkıyor

Sonrası: Sabit 35ms gecikme, 10 oyuncu olsa da değişmiyor

Beta testlerde 2,000 oyuncu aynı anda oynadı. Sıfır sunucu çökmesi, minimal bug raporu.

Oyun geliştirme ekibinin teknik toplantı sırasında whiteboard üzerinde mimari planları çizerken görüntüsü

Nasıl Çalışıyoruz

Her proje farklı ama süreç aynı: anlamak, planlamak, yapmak, test etmek. Basit aslında, sadece dikkat ister.

1

Keşif ve Analiz

Oyununuz ne yapacak? Kaç oyuncu olacak? Hangi platformlarda çalışacak? Bu sorulara cevap bulmadan kod yazmaya başlamıyoruz. Genelde bir hafta ayırıyoruz bu aşamaya – doküman okumak, ekibinizle konuşmak, benzer projeleri incelemek.

2

Mimari Tasarım

Hangi teknolojileri kullanacağız? Sunucular nerede olacak? Veri nasıl akacak? Burada kağıt üzerinde her şeyi çiziyoruz. Sistemin iskeletini kuruyoruz. Bu aşama kritik çünkü sonradan mimari değiştirmek çok pahalı.

3

Geliştirme Döngüleri

İki haftalık sprint'lerle çalışıyoruz. Her sprint sonunda çalışan bir şey gösteriyoruz. Bazen basit bir login sistemi, bazen karmaşık bir matchmaking algoritması. Ama her zaman test edilebilir, gözlemlenebilir bir şey.

4

Test ve Optimizasyon

Kod yazmak işin yarısı. Gerisi test ve optimize etmek. Yük testleri yapıyoruz, darboğazları buluyoruz, düzeltiyoruz. Bazen bir fonksiyon 50ms sürüyor, optimize edince 5ms'ye düşüyor. Bu tür küçük iyileştirmeler büyük fark yaratıyor.

Hangi Teknolojilerle Çalışıyoruz

Backend ve Sunucu

  • C++ (yüksek performans gereken yerler için)
  • Go (mikroservis mimarileri)
  • Node.js (real-time websocket bağlantıları)
  • Redis (hızlı veri cache)
  • PostgreSQL (kalıcı veri saklama)
  • Docker ve Kubernetes (container yönetimi)

İstemci Entegrasyonları

  • Unity entegrasyon SDK'ları
  • Unreal Engine plugin geliştirme
  • Custom netcode kütüphaneleri
  • WebSocket ve UDP protokolleri
  • Cross-platform destek

Altyapı ve DevOps

  • AWS (EC2, ECS, Lambda)
  • Monitoring araçları (Grafana, Prometheus)
  • CI/CD pipeline'ları
  • Automated testing sistemleri
  • Log toplama ve analiz

Güvenlik ve Performans

  • TLS/SSL şifreleme
  • Rate limiting mekanizmaları
  • DDoS koruması
  • Profiling ve benchmark araçları
  • Memory optimization teknikleri

Teknoloji seçimi her proje için değişir. Yukarıdakiler sık kullandıklarımız ama önemli olan doğru aracı doğru işe kullanmak. Bazen en basit çözüm en iyisidir, bazen karmaşık sistemler gerekir. Bunu birlikte karar veriyoruz.

Birlikte Çalışma Modeli

Uzaktan çalışabiliyoruz ama en verimli projeler yüz yüze başlayan projeler oluyor. İlk hafta İstanbul ofisimizde bir araya gelip tüm detayları konuşuyoruz genelde.

Yazılım geliştirme ekibinin ofiste bilgisayar başında beraber çalışırken görünümü

Başlangıç Toplantıları

İlk hafta yoğun geçiyor. Ekibinizle tanışıyoruz, oyununuzu oynuyoruz (varsa), teknik dokümanları inceliyoruz. Sorular soruyoruz – bazen sıkıcı detaylar gibi görünen ama sonra çok önemli olan şeyler.

Düzenli Sprint Görüşmeleri

İki haftada bir sprint review yapıyoruz. Video call üzerinden yaptıklarımızı gösteriyoruz, geri bildirim alıyoruz. Bazen planları değiştiriyoruz – bu normal, yazılım geliştirme böyle bir şey.

Canlıya Çıkış Desteği

Oyun canlıya çıkarken yanınızdayız. İlk hafta 7/24 izliyoruz sistemleri. Küçük bir sorun olsa bile hemen müdahale ediyoruz. Canlıya çıkış streslı bir süreç ama birlikte geçirince daha kolay oluyor.

Projeniz İçin Konuşalım

Çok oyunculu bir oyun projesi üzerinde çalışıyorsanız, backend altyapısı konusunda soru işaretleriniz varsa ya da mevcut sisteminiz yavaş çalışıyorsa konuşabiliriz. İlk görüşme ücretsiz – projenizi anlıyoruz, neler yapabileceğimizi tartışıyoruz.

İletişim Bilgileri

Adres: Basaksehir İkitelli OSB Metal İş Sanayi Sitesi 10. Blok No: 41, 34490 İkitelli Osb/Başakşehir/İstanbul
İletişime Geç