Büyük MMORPG fiziği ne sıklıkla günceller? [kapalı]


12

Anladığım kadarıyla, çoğu büyük oyun sabit bir simülasyon için sabit zaman testini kullanıyor.

İlgili oyun sunucusunun onlar empoze etmeyin "kare hızı",? Ya da başka bir yolla, hangi sabit zaman çizelgesini kullanmaya eğilimlidirler?

Birçoğunun "Kaçabildikleri kadar hızlı" diyeceğini biliyorum. Kurulmuş MMORPG hakkında doğrudan deneyiminiz varsa, bunun ne kadar hızlı olduğunu bilmek istiyorum.


Başkalarının ne yaptığına çok dikkat etmemelisin. Başka biri için işe yarayan şeyin mutlaka sizin için çalışması da gerekmez.
Philipp

6
EVE Online simülasyonu saniyede bir günceller, ancak sistemi olağandışıdır. Daha fazla ayrıntı için bu makalenin ilk bölümüne bakın: themittani.com/features/understanding-eve-online-server-tick
Ross Ridge

1
Yani bu bir oyun geliştirmeyle ilgili bir sorunun aksine “zaten var olan diğer oyunların oyunları hakkında bilgi istemek” sorusu mu?
Trevor Powell

2
Buna önemsiz şey demem - oldukça önemli. Bazı oyunların 1 saniyelik keneler kullanabileceği, bilmediğim veya hiç fizik kullanmadığı benim için çok önemli (ve herhangi bir geliştirici için olmalı). Aynı zamanda, Philipp'e cevabım, bunu sorduğum söylenmemiş imalarından dolayıydı, çünkü FPS'lerime karar vermek istedim. Bu mantıklı değil çünkü motorumun birçok sınırlaması var ve kullanabileceğim FPS sınırını zaten biliyorum (hem alt hem de üst sınırlar).
Fabio

1
Blizzard hakkında, savaş olayları için WoW sunucusu işlem hızını her 400 MS'den bir "içeri geldiklerinde" olarak değiştiren bir makale okuduğumu hatırlıyorum. Bununla birlikte, bu fizikle ilgili değildir, çünkü WoW yaşı nedeniyle fizikte gerçekten fazla bir şey yoktur. Bunun için bir kaynak da bulamıyorum.
Nzall

Yanıtlar:


7

Second Life, Havok'u kullanarak sunucu tarafındaki fiziği uygular ve saniyede 45'e kadar güncellemeleri kilitler.

https://community.secondlife.com/t5/General-Discussions/SIM-FPS-is-maxed-out-at-45/td-p/181120

2005-2006 civarındaki önceki sürümler, fizik güncellemelerinin sunucunun izin verdiği ölçüde yüzmesine izin veriyor. Az sayıda komut dosyası içeren karmaşık olmayan bir bölge saniyede 800 güncellemede çalışabilir ... Daha iyi verimlilik ve tutarlılık için daha sonra 45'e kilitlediler.

(Second Life'ta, kare hızı her müşterinin CPU ve grafik gücüne bağlıdır. Dünya doğruluğu ağ performansına bağlıdır.)


Gerçekten, bu makul görünüyor. Eğer entegratör iyi ve çarpışma algılama yeterince akıllı ise iyi bir iş yapmak için 30 FPS kadar düşük buldum. Uygun fiziğe sahip diğer MMO'ları ve zaman aralıklarını biliyor musunuz?
Fabio

2
Gerçek dünya örneği sunan tek kişi olarak kabul edildi, ancak hepsi düşünce için iyi yiyeceklerdi. Teşekkürler beyler.
Fabio

24

MMO için bir paket de dahil olmak üzere birkaç oyun sunucusunda çalıştım.

Genel olarak, hiç fiziği yok. Fiziğin gerekli olduğu birkaç durumda (öncelikle atlama), müşterilerin kendi fiziğini hesaplamasına izin veriyoruz ve sadece çok tuhaf olan her şeyi inkar ediyoruz (oyuncular çok uzun süre çok hızlı hareket ediyor, atlayabilmelerinden çok daha yükseğe gidiyorlar, vb).

Sunucularda genellikle 'timesteps' yoktur. Normalde "saniye başına kare" yi hiç düşünmezler. Bunun yerine, birinden en son ne zaman ve ne yaptıklarını duyduğumuzu biliyoruz ve sonra bir süre sonra onlardan tekrar duyduğumuzda şu anda ne yaptıklarını duyuyoruz ve böylece iç durumumuzu eşleşecek şekilde güncelliyoruz . Sunucu tarafındaki her şeyi titizlikle simüle etmeye gerek yoktur; Müşterilerin bize söylediklerini kaydedebilir ve müşterilerin neler söylediğinin bize mantıklı geldiğinden emin olmak için bazı kontroller yapabiliriz.


4
Bu sadece ortam, oyuncular giriş yapmadan simülasyon yapmazsa işe yarar, değil mi? Aslında genel olarak işe yaradığını varsayıyordum , ama muhtemelen “canlı” olmadığı için çoğu MMO için önemli değil. Teşekkürler, bu beklenmedik bir cevaptı.
Fabio

2
@Fabio Çoğu MMO gözlemci olmadığında hiçbir şey yapmaz - gerçek, canlı bir ekonomiye (ve ekolojiye) sahip olan Ultima Online bile serbest bırakılmadan önce (teknik nedenlerle olmasa da) bıraktı. Oyun oynamadığınızda bile oyunların olduğu oyunlar var (örneğin, Haven ve Hearth), ancak hile, gözlemlenene kadar hiçbir şeyin olmamasıdır - her aktif öğe en son ne zaman gözlemlendiğini hatırlar ve neler olduğunu hesaplar bu arada tekrar gördüğün an. Yani her kene güncellenen bir değer yerine, perTick * ticksSinceLastUpdatedbasit, verimli.
Luaan

1
Beni yanlış anlamayın; MMO sunucularının genellikle çalıştırdıkları periyodik görevleri olur. Yeniden doğması gereken canavarları kontrol edin, kaynak düğümlerini yumurtlamayı düşünün, oyun durumunu yedekleyin. Belki de oyununuz bazı prosedürel aktiviteler varsa daha süslü bir şey. Ama etrafta kimse olmasa bile saniyede 'x' kez koştuğunuz fizik gibi değil. Dakikada birkaç kez canavarların yumurtlamalarını kontrol edebilirsiniz, üstleri (veya daha büyük olasılıkla, bunu yapan harici bir programınız olabilir ve sadece sunucunun zamanının geldiğini bildirmesi için uyarır, böylece sunucunun kendisi istemci isteklerini işlemeye odaklanabilir) .
Trevor Powell

11

Verilen diğer iyi cevapların yanı sıra, bazı fiziklerin genellikle sunucu tarafından yönlendirilmediğini veya hatta sunucu tarafından bilinmediğini ve ağa veya sunucuya ek yük olmadan dünyanın daha zengin görünmesini sağlamak için yaygın bir numara olduğunu eklemek istiyorum. yan işleme.

Örneğin, zeminde dolaşabileceğiniz veya diğer nesnelerle etkileşime giren rüzgârda uçabileceğiniz enkazlar olabilir veya belki ölü bedenleri itebilirsiniz.

Fizik tamamen dekorasyon amaçlıysa ve hareketi veya oynanışı hiçbir şekilde etkilemiyorsa, müşteri tarafında tamamen gerçekleşmesini sağlayabilirsiniz.

Farklı oyuncular olayları farklı görecekler (örneğin, yere bir kutu vurursanız ve uçarsa, diğer oyuncular uçup gidemeyeceğini göremezler), ancak deneyimin önemli olmadığı birçok durum vardır. Tüm oyuncular için aynıdır ve istemci tarafı fizik simülasyonlarına sahip olmak çevrimiçi oyunun görünümünü ve hissini gerçekten geliştirebilir.


Bazı oyunlarda bu yeterince hızlı uçarsa birini öldürebilir. Birisinin kendilerine bir patlama ile itilen trafik konisi tarafından öldürüldüğü Halo oyunlarının videolarını gördüm.
Random832

Kutunun oynanışı etkilemesini istiyorsanız, senkronize fizik dünyasına ekleyebilirsiniz, ancak aynı alanda senkronize olmayan bir fizik dünyasına da sahip olabilirsiniz! Temel olarak, senkronize olmayan fizik dünyası oyuncu ve senkronize fizik dünyasından etkilenebilir, ancak onları geri etkileyemez (:
Alan Wolfe

3

EVE Online, tek bir kırığı olan ve büyük uzay savaşlarında binlerce bine kadar plaja sahip bir MMO, fiziğini "kader" kene adı verilen 1 Hz'lik bir kene üzerinde çalıştırıyor.

http://community.eveonline.com/news/dev-blogs/fixing-lag-drakes-of-destiny-part-1-1/

"B-R5RB'nin Kan Banyosu", şimdiye kadar online bir oyunda meydana gelen en büyük acil oyuncu dövüşüdür ("21,5 saatlik çatışma toplamda 7.548 oyuncu karakteri ve B-R5RB sisteminde maksimum 2.670 oyuncuyu kapsıyordu aynı anda ", https://en.wikipedia.org/wiki/Bloodbath_of_B-R5RB ).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.