Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

mmorpg oyunlarında donanım&yazılım meseleleri


Bone

Öne çıkan mesajlar

mmorpg'lerin nasıl kodlandığı hakkında zerre bilgim yok.
sadece şöyle bir mantık yürütebiliyorum.
bilgiler önce serverdan bizim clienta gelir. sonra biz bir komut yaparız, bu komut servera geri gider. server bu doğrultuda olacakları belirler ve bize sonucu bildirir.

bu işlemler aynen satranç hamleleri gibi işleniyor.
satranç maçlarında yapılan hamleleri H1-H3 vs gibi tahtadaki konum ve kullanılan taşın adı girilerek not alınır. satranç hakkında bilgisi olan bu bahsettiğim not sistemini anlamıştır.
bilgisayar oyunlarında da bunun gibi not alınıp o notun karşılığında oyundaki hazır olan işlemlerin yapıldığını düşünüyorum.
modellemelerin -live stream gibi- birebir gönderimi yerine sadece komutların gönderiliyordur.
örneğin karakteri iki adım ileriye oynattığımda direk o animasyon gönderilmiyor da, "karakter iki adım ileri gitti" komutu gönderiliyor, bizim bilgisayar da onu yorumluyor.
bu ne demek, biz bir dünyanın içine girmiyoruz, herkes kendi dünyasında oynuyor.

şöyle de düşünüyorum, bir oyun ne kadar az değişkene sahipse o oyun daha az lag yaratan, daha düşük hızlarda daha yüksek performans sunan oluyor.
örneğin swg'de bir şehire girdiğim zaman, önce karakterlerin modeli yükleniyor, sonra şişmanlığı, boyunun uzunluğu, burun büyüklüğü felan yükleniyor. daha sonra da dış kaplaması yükleniyor. bunun, karakterlere sunulan çok fazla değişkenden kaynaklandığını düşünüyorum.
tersine wow gibi oyunlarda karakterler için bu kadar değişken olmadığı için, bir şehire girdiğimizde etraftaki karakterlerin yüklenmesini beklemiyoruz, her ırk için hali hazırda 3-5 yüz şekli olduğundan hemen onlar yükleniyor.
mesela second life'ta bu iş daha abartı. bir bölgenin bir saat yüklenmesini bekliyebiliyorsunuz bazen.

bu açıdan bakarsak, bilgisayar oyunlarına gelen havok ve aegia gibi fizik motorları nasıl mmorpg'lara uyarlanabilir onu merak ediyorum.

aegia sayesinde artık partiküllerden oluşan gerçekçi su efektlerine geldik. artık sular statik işlenmiyecek, dinamik olarak çalışacak. yani gerçek hayattaki suyun da atomlardan moleküllerden ve ayrılaştırabilinir fizikten oluşması gibi, oyundaki sular da ayrılaştırabilir bir fizikten oluşacak. bu ne demek? bir ırmağa kab batırıp çıkardığımızda içine su dolacak. eskiden statik işlerdi, scripted olaya göre içine su dolardı. şimdi istediğimiz gibi suyu oynatabileceğiz, ayırabileceğiz ve suyun ortama uyum sağlıyacağını görebileceğiz.

singleplayer oyunlarda bu işlemler sadece fizik kartıyla gerçekleşir.
peki ya mmorpg'lerde bu nasıl olur?
eğer dediğim doğrultuda işleniyorsa mmorpg'ler, asla fizik işlemleri olamayacak mı?
Link to comment
Sosyal ağlarda paylaş

Irmağa kap sokup su alma olayını daha uzuun süre göremeyiz. Hala düzgün dalga efekti yok. En son seneler önce Real Myst'de denemesini görmüştüm, o zaman hoş gelmişti ama şimdinin standartlarına kıyasla herhalde baya zayıftır, zaten statikti.

Bu tarz şeyleri senin işlemcin, grafik işlemcin hesaplıyor. Sunucu ile sadece karakter lokasyonunu paslaşıyorsun. Fizik hadiselerini oyun motoru yani senin bilgisayarın hallediyor, bu sebeple bu lag yapmıyor. Örnek olarak da WoW'daki meşhur AQ40 wallhack'i verebiliriz.
Link to comment
Sosyal ağlarda paylaş

mmo'lar özelliklede wowun protokol kısmında biraz yorum yapabilirim. ta leak alpha zamanlarında gotwow.net ortamlarında oldukca bulundum, bırcok emulator projeyle hasır nesır oldum hatta bir elemanla tcl/tk scripting desteklı cok basit bir wow emulatoru yazmıstım, worlde gırıp etrafı gezebıldıgınız (biraz sandbox tarzındaydı, sonradan zaten blizzard bu projelerin kapatılması icin gerekli noticeleri gonderdı ve gotwow.netı mahkeme kararı ile kendine transfer ettirdi)

yaklasımın bı acıdan dogru. wow protokolu world update denen bir komut sunuyor. (ünlü 0xa9, community olarak çözene kadar baya uğraşmıştık). wow protokolünde toplasanıza 150-200 tane komut mevcut. bunların çoğuda mailbox tır guild yönetimidir gibi şeylerle ilgileniyor zaten. world update olayını ise tamamen 0xa9 yapıyor. 50 küsüre yakın flag alabilen bu komut, clientınıza geldiginde o anda etrafınızda gelisen olaylar hakkında size bilgi veriyor.

örneğin kuzeybatıya doğru koşan bir karakter olduğunu size 0xa9 ile sunucu bildirdiğinde , sizin client o yöne koşan bir modeli hazırlıyor ve gösteriyor. eğer ki o an için lage girerseniz ve yeni bir 0xa9 almassanız, client o karakterin hala o tarafa koştuğunu tahmin ediyor. işte bu yüzden wowda spike ve laglarde sabit bi yöne koşan dönen modeller görüyoruz. son 0xa9 world updatede model ne yapıyorsa, spike sırasında client yeni bir bilgi alamadığı için aynı şeyi yapmaya devam ediyor.

şehre girince wow clientın çevrenizdeki karakterli yavaş yavaş göstermesinin bir nedenide bu. sunucu size ard arda çevre hakkında 0x9a ları sağlıyor ve clientta bu bilgiler geldikçe modellemeleri yapıyor.

fizik motorlarına gelince, tamamen client tarafını ilgilendiren bir konu. çünki wowda ve diğer birçok mmoda çevre fiziği zaten kısıtlı. fizik olayı çoğunlukla client tarafında çözülüyor. partekül boyutunda bir su ve bahsettiğin kab örneği mmoya aktarılmaya çalışılırsa, protokol ve getireceği ekstra yük açısından masraflı olacaktır. artı olarak sormamız gereken soru şu; fizik motorlarını mmo oyunlara ekliceksek, bunu mmo sunucusuna neden yansıtmamız gerekir ki? bence gerekmez. sonuçta sen suyla oynasanda karıştırsanda istediğin şekle soksanda o kabın içindeki su sunucu için herzaman "bir kap dolusu sudur", bulunduğun çevrede bulunan bir player içinde öyledir. yani bence fizik motorları mmolara entegre edilse bile sadece client taraflı olacaktır.
Link to comment
Sosyal ağlarda paylaş

raistlinthewiz said:
artı olarak sormamız gereken soru şu; fizik motorlarını mmo oyunlara ekliceksek, bunu mmo sunucusuna neden yansıtmamız gerekir ki? bence gerekmez. sonuçta sen suyla oynasanda karıştırsanda istediğin şekle soksanda o kabın içindeki su sunucu için herzaman "bir kap dolusu sudur", bulunduğun çevrede bulunan bir player içinde öyledir. yani bence fizik motorları mmolara entegre edilse bile sadece client taraflı olacaktır.

bence sorduğun soru doğru ama verdiğin cevap yanlış.

fizik motorları geliştikçe, nesnelerin etkileşim alanı artıyor. programatik olarak baktığımızda etkileşimli her nesnenin input ve output'u vardır. yani her nesne bir veriyi alır, işler ve sonucunu bildirir. fizik motorlarının gelişmesinin donanımla kısıtlı olmasının sebebi de budur. tasarım olarak her şeyle etkileşimli bir oyun yaratabilirsiniz ama onu kaldırabilecek donanımın yoksa o oyun çakar. yavaş çalışır ya da hiç çalışamaz vs.. çünkü her şeyle etkileşim içine girmek demek, bir çok işlemi çok küçük bir zamana sığdırmak demek ki günümüz pc'leri bundan uzak. peki bunun client'tan servar'a gidenle ilgisi nedir? işte burda devreye nesnelerin davranışlarını belirleyen input sayısı giriyor...

sizin örneğinizi verelim; bir kovayı suya daldırıp su alacaksınız.. günümüz mmo'larında paketin içeriği belli: "kova suya girdi". ama gelişmiş bir fizik motoru varsa her su damlacığı bağımsız hareket eder.. dolayısıyla kovanın suya nasıl girdiği önemli ki herkes, arkasından suyun nasıl davranacağını aynı biçimde görebilsin. yani gelişmiş fizik motorlu bir mmo şu tarz bir paket gönderir: "kova suya 5x hızında, 50 derece açıyla girdi". Bakın, paketin boyutu şimdiden büyüdü. 1 değişken yerine 3 değişken var artık.

gibi düşünülebilir...
Link to comment
Sosyal ağlarda paylaş

Teknolojinin gelisme hizi, bu isin icinde olmama ragmen, beni hala cok sasirtiyor. Bir iki sene sonra ne olacagini bile tahmin etmek zor.

Okuduklarima göre fizik motorlari icin cikan kartlarin yaptigi, islemciye düsen yükü azaltmaktan öte degil. Ama fizik motorlarinin gercekciligi arttikca, bu yük gittikce önem kazanacak. Muhtemelen ilerde fizik motoru olmadan bu tür gelismis bir fizik motorunu kullanmak mümkün olmayacak. Islemci tek basina o fizik islemlerini yapmaya yetemeyecek. Yetse bile performansi yetersiz kalacak. Yada belki de tam tersi olacak. Fizik kartlari ciktiklari gibi tarihe gömülecek. Zamanla görecegiz. :)

Su an aslinda MMO'larin kullandigi bandwidth cok düsük sayilir. 256Kbps baglanti ile oynayamayacaginiz MMO var mi? Sanmiyorum. Ticari sebeplerle MMO'lar kullandigi bandwidth'i arttirmak istemiyorlar saniyorum. Ama mesela minimum 512Kbps yada 1Mbps bandwidth kullanan bir MMO cikarsalar piyasaya, günümüzdeki MMO'lara oranla kat kat fazla detay saglanabilir. Ama önümüzdeki senelerde bu kadar bandwidth gerekli olmayacaktir herhalde.
Link to comment
Sosyal ağlarda paylaş

racta cok dogru noktaya parmak basmis, akildan gecen her su atomunun birer birer ve her an hangi konumda oldugunun o suyu goren herkese iletilmesidir. gercek hayatta bizim yaptigimiz budur. suya bakariz ve gozlerimiz saniyede 24 kare bilgiyi beynimize tasiyarak su parcaciklarinin goruntusunun yorumlanmasini saglar.

yalniz ractanin dedigi gibi bilgisayarlar gercek hayati yansitmaz, emule ederler. yani su atomlari ile ilgili bilgi herkese gitmez de, o standart bilgiyi cikaracak komut herkese gider. her istemci, her birim zamanda (her saniye) "bilmemkac su parcacigi, bilmemne hizla, bilmemkac acidan kovaya girecek" bilgisini alir. ve istemciler ayni fonksiyonu kullanarak ayni goruntuyu yaratirlar ve "-mis gibi" gosterir yani emule ederler.

yalniz ondan once gelecek akim bu da degil. once birisi kovasini suya egecek ve su doldurmaya baslayacak, o, suyun kova ile etkilesimini gorecek. bize ise, kovasini suya egdigi anda "kovayi daldirdi" cikardigi anda da "kovayi cikardi" bilgisi gelecek, istemci bunu rastgele canlandiracak. yani gordugumuz, tam olarak isi yapanin gordugu ile ayni sey olmayacak. temel olarak biz sonuclarindan haber alacagiz. bu zaten simdiki sistemlerin de temel calisma prensibi.
Link to comment
Sosyal ağlarda paylaş

Ractamainus said:

sizin örneğinizi verelim; bir kovayı suya daldırıp su alacaksınız.. günümüz mmo'larında paketin içeriği belli: "kova suya girdi". ama gelişmiş bir fizik motoru varsa her su damlacığı bağımsız hareket eder.. dolayısıyla kovanın suya nasıl girdiği önemli ki herkes, arkasından suyun nasıl davranacağını aynı biçimde görebilsin. yani gelişmiş fizik motorlu bir mmo şu tarz bir paket gönderir: "kova suya 5x hızında, 50 derece açıyla girdi". Bakın, paketin boyutu şimdiden büyüdü. 1 değişken yerine 3 değişken var artık.

gibi düşünülebilir...


haklısın aslında. soruyu tekrardan sekıllendıreyım o zaman. gunumuz mmoların bir "kova su" yaklasımına karsı olarak "kova suya 5x hızında, 50 derece açıyla girdi" yaklasımı gereklimi? bunun getireceği ek maliyet ve yüke değer mi? biz oyuncular mmo'larda birebir real-life simulationmı istiyoruz yoksa fantezi dünyanın indirgenmiş basitliğinde geçen epic bir worldmu. kendı acımdan ben 2.yi herzaman tercih ederim.
Link to comment
Sosyal ağlarda paylaş

Mirage said:

Su an aslinda MMO'larin kullandigi bandwidth cok düsük sayilir. 256Kbps baglanti ile oynayamayacaginiz MMO var mi? Sanmiyorum. Ticari sebeplerle MMO'lar kullandigi bandwidth'i arttirmak istemiyorlar saniyorum. Ama mesela minimum 512Kbps yada 1Mbps bandwidth kullanan bir MMO cikarsalar piyasaya, günümüzdeki MMO'lara oranla kat kat fazla detay saglanabilir. Ama önümüzdeki senelerde bu kadar bandwidth gerekli olmayacaktir herhalde.


bandwidth aslında işin en bsait bölümü. bügün Türkiye bile artık 1mbit gibi bir sınırı adslde standart olarak kullanıyor. bandwidth olayı cok buyuk problem yaratmıcaktır.

asıl problem şu. kova dolu su yaklaşımı yerine, partekül tabanlı su yaklaşımını seçtiğinizde, her su partekülü sizin için ek işlem hacmi (processing time, cpu gereksinimi) ve ek storage demektir.

bir ara wow-us forumlarda, blizzard data centerlarda calisan bir oyuncu mesaj yazmıstı. her realm için kullandıkları blade sunucuların ve storageları saymıştı ve ne kadar maliyetli bir işlem oldugundan bahsetmişti. şu durumda bile bir realm için yaklasık 5-10 farklı storagedır, backuptır, instance sunucusu calistirdigi bilinmekte blizzardın.

sonuç olarak darboğaz bandwitdh degil, sunucu tarafındaki ek işlem ve storage gereksinimi diye düşünüyorum.
Link to comment
Sosyal ağlarda paylaş

mmo'larda dediğin ileri seviyede fizik işlemleri singleplayer oyunlardan hayli sonra yapılabilir sanıyorum. hatta bu konuyla ilgili güzel bir başlık vardı gayriresmi warhammer forumlarında. birisi daha gerçekçi saç modellemesi olmasını istemişti. ama ekranda düzinelerce karakterin dinamik saç modellemesini yapabilecek bir bilgisayar yok halen. en son geometri motoru eklenmiş ekran kartları bile bir karakteri (8800'ler için adrianne demosu mesela) yapayım derken acayip kasılıyor.

bu dediğini yakınlarda yapacak mmo çıkarsa da zaten performansından şikayetçi olacaktır insanlar. ya da ekranda 3-5 karakterden fazlasını görmemen lazım.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...