Hizmetler

Oyun Teknolojileri

Unity ile oyun geliştirme ve multiplayer altyapısı. Dedicated sunucu kurulumundan matchmaking’e, NAT yapılandırmasından sunucu operasyonuna kadar — kendi donanımımızda işlettiğimiz mimarinin aynısı.

Bu sorunlar tanıdık geliyorsa

  • Oyun hazır ama dedicated server’ı nasıl yayına alacağımızı bilmiyoruz.
  • Client bağlanıyor, paketler gidiyor ama dönüş trafiği gelmiyor. NAT arkasında UDP çalışmıyor.
  • Hazır multiplayer servisinin maliyeti oyuncu sayısıyla birlikte sürdürülemez hale geliyor.
  • Oda tahsisini elle yapıyoruz; hangi sunucunun boş olduğunu takip edemiyoruz.
  • Bir sunucu çöktüğünde oyuncu şikâyet edene kadar haberimiz olmuyor.

Kapsam

Unity oyun geliştirme

Oyun tarafında geliştirme ve multiplayer desteği. Mevcut projenize dahil olabilir ya da sunucu tarafını komple üstlenebiliriz.

Sunucu derleme ve paketleme

Headless Linux build’inin container imajına dönüştürülmesi. ARM makinede geliştirip x86_64 sunucuda çalıştırma dahil çapraz platform derleme.

Port havuzu ve oda yönetimi

Her oda bir UDP portu. Havuzun otomatik başlatılması, çöken instance’ın kendiliğinden ayağa kalkması, kapasitenin tek yerden yönetilmesi.

NAT ve güvenlik duvarı

UDP port aralığının sanal IP üzerinden yönlendirilmesi, kaynak portların korunması ve host tarafındaki eşleşen kurallar. Bu adım sanılandan kritik: yanlış yapılandırılmış bir container ağ modu dönüş trafiğini sessizce bozuyor.

Matchmaking ve slot tahsisi

Kuyruk yönetimi, slot rezervasyonu ve serbest bırakma, heartbeat ile sağlık kontrolü. Oyuncu hiçbir zaman ölü bir sunucuya yönlendirilmiyor.

Sunucu barındırma

İsterseniz kendi donanımımızda barındırırız, isterseniz sizin sunucunuza kurarız. Vendor kilidi yok.

İzleme

Prometheus ve Grafana ile instance sağlığı, oda doluluğu ve kapasite takibi. Sorunu oyuncudan önce görmek.

Devir ve dokümantasyon

Ekibiniz devralmak isterse çalıştırma prosedürleri ve mimari kararların gerekçeleri yazılı olarak teslim ediliyor.

Kullandığımız teknolojiler

  • Unity
  • FishNet
  • Nakama
  • Docker
  • UDP / NAT
Kendi altyapımızda

Multiplayer altyapısını kendi donanımımızda işletiyoruz.

Geliştirdiğimiz multiplayer oyunun sunucu tarafını baştan sona biz kurduk ve işletiyoruz. Aşağıdaki mimari, tarif ettiğimiz bir şey değil — her gün çalıştırdığımız sistem.

Dedicated server katmanı. Unity headless FishNet sunucuları, her biri kendi container’ında, UDP 7000–7019 port aralığında ve çökme durumunda otomatik yeniden başlatma ile çalışıyor. Container ağ modu, dönüş trafiğinin doğru portlardan geçebilmesi için kaynak portları koruyacak biçimde yapılandırıldı.

Ağ katmanı. Trafik, kendi public IP bloğumuzdaki bir sanal IP’ye geliyor; OPNsense üzerinde NAT’lanıp iç ağdaki host’a yönlendiriliyor. Host tarafında da bunlarla eşleşen güvenlik duvarı kuralları var.

Kontrol düzlemi. Nakama üzerinde çalışan eşleştirme katmanı slot tahsisini yönetiyor. Sunucular 30 saniyede bir heartbeat gönderiyor ve slot durumu buna göre güncelleniyor. Eşleştirme, yalnızca son 90 saniye içinde heartbeat göndermiş slotlara oyuncu atıyor. Yeniden başlatmada, yapılandırmada karşılığı olmayan eski slot kayıtları otomatik temizleniyor — bu kontrolü, bayat kayıtların oyunculara geçersiz adres döndürdüğü bir olaydan sonra ekledik.

Son paragraf, hazır çözümlerle gerçek işletme arasındaki farkın nerede ortaya çıktığını gösteriyor. Bu tür ayrıntılar öğreticide yazmıyor; sistemi canlıda tutarken öğreniliyor.

Nasıl çalışırız

Sunucu altyapısı kurulumu

Mevcut oyununuzun sunucu tarafının kurulması ve yayına alınması. Tanımlı kapsam, tanımlı teslim.

Oyun geliştirme ortaklığı

Oyun tarafında geliştirme ekibine dahil oluruz. Multiplayer, ağ katmanı ve sunucu tarafı bizde kalır.

Barındırma ve operasyon

Sunucuları biz barındırır ve işletiriz. İzleme, güncelleme ve kapasite yönetimi dahil.

Sıkça sorulan sorular

FishNet dışında bir netcode kullanıyoruz, yine de çalışır mısınız?

Evet. Mirror, Netcode for GameObjects ya da kendi protokolünüz fark etmiyor. Dedicated server dağıtımı, port yönetimi, NAT ve slot tahsisi problemleri netcode’dan bağımsız olarak aynı — asıl zorluk orada.

Sunucular sizde mi barındırılacak?

Tercihinize göre. Kendi donanımınızda, kiraladığınız bir sunucuda veya bizim altyapımızda kurabiliriz. Hangisini seçerseniz seçin kurulum sizin olarak kalıyor; vendor kilidi yaratmıyoruz.

Kaç eşzamanlı oyuncuya kadar çıkabilir?

Bu tek bir sayı değil — oyunun tick oranına, oda başına oyuncu sayısına, simülasyonun ağırlığına ve donanıma bağlı. İlk görüşmede sizin rakamlarınızla birlikte hesaplıyoruz. Ölçüm yapmadan sayı vermiyoruz.

Hazır multiplayer servislerinden geçiş yapabilir miyiz?

Evet, sık karşılaştığımız bir senaryo. Genelde maliyet belirli bir oyuncu sayısından sonra kendi altyapınızı işletmeyi mantıklı hale getiriyor. Eşiğin sizin için nerede olduğunu birlikte çıkarıyoruz — geçiş her zaman doğru cevap değil.

Oyunumuz henüz geliştirme aşamasında, erken mi?

Aksine, en doğru zaman. Ağ mimarisi kararları oyunun kod tabanına derinlemesine işliyor; sonradan değiştirmek her zaman daha pahalı oluyor. Geliştirme sürerken devreye girmek en az sürtünmeli yol.

Ne kurmaya çalıştığınızı anlatın.

İlk görüşme teknik geçer, satış sunumu yapmayız. Mevcut durumunuzu dinler, yapılabilir olup olmadığını söyleriz. 2 iş günü içinde dönüş yaparız.