Şimdi Ara

Online oyun mantığı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
322
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar. Low Level API ile online oyun yazmaya başladım. Şu ana kadar yaptıklarım:

    Oyunu build edip açıyorum ayrıca editör üzerinden açıyorum. Birini Host olarak kullanıp diğerinden client olarak bağlanıyorum. İkiside bağlandığında seçim ekranı yükleniyor. Bu ekranda 4 farklı karakterden birini seçiyorsunuz. İki tarafta seçimi yaptığında oyun sahnesi geliyor.

    Oyun sahnesinde 2 adet kule var. Seçtiğin kahraman ile kendi kulenin yanında doğuyorsun. Rakip kulenin alanına girdiğinde rakip kulenin canı azalmaya başlıyor.

    Şu ana kadar yaptıklarım bu kadar.

    Sormak istediğim:

    Bu işlerin ne kadarını sunucuya yaptırmalıyım ? Sunucuya fazla iş vermek mantıklı mıdır ? Mesela şu an sen rakip kulenin alanına girdiğinde sunucuya bir mesaj gidiyor ve sunucu 2 istemciye de bir mesaj gönderip bir boolean'ı true yapmasını sağlıyor. Oyun içinde bu boolean true ise kulenin canı azalıyor.

    Kulenin canı için ise bir değişken tutmadım. Sadece alana girince scrollbarın boyutu azalıyor. Çıkınca duruyor.

    Böyle mi olmalı yoksa farklı bir yol mu izlemeliyim ?



    < Bu mesaj bu kişi tarafından değiştirildi Excalıburr -- 5 Temmuz 2019; 13:4:26 >







  • Oyun server'da oynanir. Client sadece yapmak istedigi aksiyonlari server'a bildirir. Server sonucu tum clientlarla paylasir. Bu olay saniyede 20,30,60 vs defa tekrarlanir.

    Client A noktasindan B noktasina gitmek istedigini soyler, server bunu process eder. Client server'dan cevap gelene kadar harekete baslar ( server'in hareketini onaylayacagini dusunerek, prediction denilir buna ). Server'dan aldigi cevaba gore konumunu yeniden degistirir. ( Authoritative response denilir buna da )

    Lag oldugunda oyunlarda 3 saniye onceki yerine "isinlanmanin" sebebi budur. Client seni hareket ettirir ancak Authoritative response gelince tekrar server'in senin bulundugunu dusundugu yere geri isinlanirsin.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: Mephalay

    Oyun server'da oynanir. Client sadece yapmak istedigi aksiyonlari server'a bildirir. Server sonucu tum clientlarla paylasir. Bu olay saniyede 20,30,60 vs defa tekrarlanir.

    Client A noktasindan B noktasina gitmek istedigini soyler, server bunu process eder. Client server'dan cevap gelene kadar harekete baslar ( server'in hareketini onaylayacagini dusunerek, prediction denilir buna ). Server'dan aldigi cevaba gore konumunu yeniden degistirir. ( Authoritative response denilir buna da )

    Lag oldugunda oyunlarda 3 saniye onceki yerine "isinlanmanin" sebebi budur. Client seni hareket ettirir ancak Authoritative response gelince tekrar server'in senin bulundugunu dusundugu yere geri isinlanirsin.
    Cevap için teşekkürler. Unity yeni network sisteminde bu prediction olayını biraz değiştirecek galiba.


    Ben kod hakkında biraz daha ayrıntı vereyim:

    3 script var: Savas, Client, Server. Savas scriptini oyundaki plane'e atadım. Bu script içinde statik örenek mevcut(public static Savas Instance;). Oyuncu yürümek için tuşlara bastığında server'a mesaj gidiyor. Server, 2 client'a tekrar mesaj gönderiyor. Client'lar "Savas.Instance.Yuru(...)" metodu ile karakteri yürütüyorlar.




  • Low level api dedigin sey nedir unet mi ?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: Baxa

    Low level api dedigin sey nedir unet mi ?
    Unet 2018.4 versiyonunda geçerli şuan ki versiyon 2019.3 Unet, HLAPI(High Level API)'ya giriyor ve 1-2 sene içinde artık kullanılamayacak. Low Level API (LLAPI) ise server ve client kodlarını kendin yazdığın, Unet'teki gibi hazır componentler ve classların bulunmadığı bir network sistemi.
  • Yapay Zeka’dan İlgili Konular
    online oyun oynayan var mı
    3 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.