Online Oyunda Oyuncuların Birbirini Görmesi (Beyin Fırtınası)
-
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 -
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
-
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.
