folder Tahribat.com Forumları
linefolder Java
linefolder Online Oyunda Oyuncuların Birbirini Görmesi (Beyin Fırtınası)



Online Oyunda Oyuncuların Birbirini Görmesi (Beyin Fırtınası)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    detCode
    detCode's avatar
    Kayıt Tarihi: 30/Kasım/2012
    Erkek
    DrKill bunu yazdı
    detCode bunu yazdı
    DrKill bunu yazdı

    Sunucu herkesin koordinantını bilir bunda bir sıkıntı yok. Ama herkesin koordinantlarını birbirleri ile karşılaştırmaz muhtemelen. Çünkü sunucuda N kişi varsa

           N!
    ---------------  = X
     (n-2)!*2!

    X tane ikilinin arasındaki mesafeyi hesapası lazım ki bu da anlık olacak. Ki bu ikilileride eşleştirmesi için gereken sürede ayrı bir muazzam.

    Yani sunucu 1000 kişi olsa

    1000*999/2  = 249.750 İkilinin arasındaki mesafeyi hesap edecek ki cidden büyük bir rakam.

     

    Diğer bir yandan;

    Client'te sunucunun gönderdiği ölçüde etrafındaki oyuncuların koordinantlarını bilir. Bu genellikle client'in render yapacağı alan kadardır ya da client'ın bulunduğu sunucudaki en küçük alt kümedeki alan kadardır.

     

    Client bu alanlar içinde bulunan oyunculardan hangileri arkadaşı ise o arkadaşı ile arasındaki mesafeyi hesaplar ve yakın olanları sunucuya bildirir. Sunucuda doğruluğunu hesaplar ve birbirlerini görmesi için izin verir.

     

     

    Benim yorumlamam bu kadar hadi hayırlı işler.



    hocam herkesin arasındaki mesafeyi hesaplamaya gerek yok. senin karakterin yürüdü diğelim oyunda 1000 kişi var  diğer karakterler ile yani 999 tane işlem yapıp yakındakileri buluyor. zaten bütün oyunu taramasına gerek yok farklı regiona giren elemanları neden tarasın. region ve kordinat verisi ile gruplama yapıp kolayca hesaplarsın. 

    sunucu sadece senin karakterin için hesaplama yapmayacak ki? Her karakter için konuşabileceği kişileri hesap edecek.

    hocam sadece sen hareket ediyorsan bütün map ı tekrar neden hazırlasın. hareket verisi gelen client için aynı regiondaki diğer clientleri bulup tek taraflı hesap edicek o kadar. 

     

    edit. client sadece yakınındaki yani sunucunun gönderdiği elemanları ekrana basar. diğer elemanlardan haberi olmaz. zaten olması saçma. haritanın bilmemneresindeki adamdan banane onun verisini neden alayım. tabi istisnai bilgiler harici arkadaş ekleme vs. benim bildiğim budur kolay gelsin. fps değil rpg için konuştum. fps de region dediğim olayı oynadığın harita olarak düşünürsün. rpg haritaları büyük olduğundan parçalara ayrılıyor

    detCode tarafından 04/Kas/14 16:54 tarihinde düzenlenmiştir

    Who is detCode?
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    asiminnesli
    asiminnesli's avatar
    Kayıt Tarihi: 19/Mart/2010
    Erkek

    bende kendi son kullanıcı olarak fikrimi söyleyeyim ben kodluyor olsaydım ;

    ( x,y ) konumundayım şuanda ve görmem gereken alan 

    x+100, y+100 meseafesi yan her yöen 100 kare görmem gerekiyorsa 

    sisteme (x,y) dek iadama x+1,y 

    x+2,y ..... x+100, y  x,y+1 x,y+2 ....   x,y+100 ü yollarım (dolu olan [biri olan varsa orda onlar gözükür] yoksa boş olur iste)

    buda çok olmaz bence ama bilemiyorum 


    I am Jack's inflamed sense of rejection
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DuPi
    DuPi's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    Evet teşekkürler gerçekten çok yararlı bilgiler geldi,

    Java ile yeniden bir oyun yazmak istiyorum. çocukluğumun hayali pokemon world online tarzı. daha önce yazılmış server'leri kontrol edeyim bilgiyi buraya aktarırım.


    Ne zaman birşey öğrenmek istesem, Birden Vaktim Kalmıyor ?
Toplam Hit: 5035 Toplam Mesaj: 14