İçeriğe geç

İşler · Oyun altyapısı / Çok oyunculu platform

Matchdock

Operasyon ekibi olmadan eşleştirme ve özel oyun sunucuları.

Nedir

Matchdock oyuncuları eşleştirir, her maç için izole bir konteynerde özel bir oyun sunucusu başlatır ve sonucu yalnızca o sunucunun bildirmesine izin verir. Puanlar, ligler, liderlik tabloları ve maç geçmişi platformla birlikte gelir; Unity SDK ve sade bir HTTP API her motoru bağlar.

Neden gerekliydi

Gerçek zamanlı bir 1v1 oyun adil eşleştirmeye, maç başına özel sunucuya ve kimsenin sahteleyemeyeceği sonuçlara ihtiyaç duyar. Unity, Multiplay barındırmayı kapattıktan sonra seçenekler ya başka bir satıcının yol haritası ya da küçük bir stüdyonun sahip olmadığı bir operasyon ekibiydi.

Idealink ne yaptı

Idealink, Matchdock'u DoGoal için tasarlayıp geliştirdi, oyunun maçlarını Unity Multiplay yerine bu platforma taşıdı ve AB bölgesi yayındayken platformu erken erişimle diğer stüdyolara açtı.

Durum
Yayında
İlişki
Idealink girişimi
Sektör
Oyun altyapısı
Dönem
2026 — erken erişim
Platform
Backend · Unity SDK · HTTP API · konsol
Idealink'in rolü
Ürün, platform mühendisliği, SDK'lar, filo operasyonu

Tez

Unity, Multiplay barındırmayı kapatınca DoGoal'ün maçlarına yeni bir yuva gerekiyordu. Idealink bir sonraki satıcıya taşınmak yerine platformu kendisi kurdu ve onu diğer stüdyoların da kullanabileceği bir ürüne dönüştürdü.

01

Bir maçın anatomisi

AB bölgesinde dereceli bir 1v1; dokunuştan sonuca.

  1. 0,0 sn · İki oyuncu Oyna'ya dokunur

    SDK cihazda oturum açar ve dereceli kuyruğa katılır.

  2. 0,6 sn · Maç bulunur

    Aynı kuyruk ve bölge, puan farkı ±100 içinde; biri beklerken aralık genişler.

  3. 1,1 sn · Özel sunucu ayağa kalkar

    İzole bir konteynerde, kendi UDP portunda yepyeni bir sunucu.

  4. 1,3 sn · Oyuncular içeri alınır

    Sunucu her katılım token'ını doğrular; yalnızca bu maçın oyuncuları girer.

  5. 3 dk · Sonuç kabul edilir

    3–2, puanlar +12 / −12 ve sunucu kaldırılır.

02

Ölçülenler

matchdock.io'da yayımlandığı gibi; platformun kendi yük testinden ve filosundan.

Kuyruktan maça
İki oyuncunun kuyruğa girmesinden maça ~1 sn
Maçtan sunucuya
Özel sunucunun dinlemeye başlamasına ~1 sn daha
Yük testi
200 oyuncu 5 saniyenin altında eşleşti
Konteyner yetkileri
Bir oyun sunucusu konteynerinde 0 Linux yetkisi

03

Kimsenin sahteleyemeyeceği sonuçlar

Her maç kendi konteynerini alır: hiçbir yetki yok, salt okunur dosya sistemi, ayrıcalıksız kullanıcı, sıkı CPU ve bellek sınırları, yalnızca maç portu açık. Bir build başka hiçbir şeye dokunamaz; başka hiçbir şey de ona dokunamaz.

Sonucu yalnızca özel sunucu bildirebilir ve bildirim idempotent'tir. Oyunu bırakan hükmen kaybeder, çökme kimseye puan kaybettirmez ve her maç tam bir zaman çizelgesi saklar. Yerleştirme maçlı Elo, lig kademeleri, liderlik tabloları ve maç geçmişi platformun parçası.

04

İki tarafta birkaç satır

Unity SDK: istemci tek çağrıyla oturum açar, kuyruğa girer ve bağlanır; özel sunucu oyuncularını içeri alır ve sonucu bildirir. Unity 2021.3 ve üzeri, isteğe bağlı bir Mirror doğrulayıcı ve altında sade bir HTTP API.

matchdock.io · Unity SDK
İstemci (FindMatch.cs) ve özel sunucu (MatchServer.cs) için Matchdock Unity SDK kodu

05

Bilerek sıkıcı

Kendi oyunumuzu üzerinde yayınlamak için kuruldu; bu yüzden işin göz alıcı olmayan kısımlarını da taşıması gerekiyordu.

  • Kademeli build'ler: yeni maçlar yeni build'de başlar; süren maçlar başladıkları build'de biter.
  • Filo sağlığı: node'lar birkaç saniyede bir durum bildirir; sağlıksız ya da boşaltılan node'lar maç almaz, kaybolan node'lar oturumlarını temiz biçimde sonlandırır.
  • Bölge farkındalığı: yer varsa maçlar oyuncuların bölgesine düşer; yoksa hata vermek yerine başka bölgeye geçer.
  • Gözlemlenebilir: kuyruklar, beklemeler, sonuçlar, filo ve API gecikmesi için Prometheus metrikleri; gece 3'te önemli olan şeyler için alarmlar.

Sonuç

Bugün nerede

DoGoal'ün maçları Unity Multiplay yerine Matchdock üzerinde çalışıyor. Platform, AB bölgesi yayında olarak diğer stüdyolara erken erişimde.

Teknoloji ve yetkinlikler

Yalnızca gerekenler

  • İzole Linux konteynerleri
  • Unity SDK (2021.3+)
  • Mirror doğrulayıcı
  • HTTP API
  • Elo puanlama
  • Prometheus