Předmět Autor Datum
a keby si vedel kolko ludi moze byt naraz napriklad na facebooku....
fallon 28.07.2021 15:57
fallon
Jasně ale to jsou obrovské korporace... Já tady píšu o serveru který vlastní jeden člověk nebo nějak…
Mshs 28.07.2021 16:12
Mshs
Obrovská firma je to teď. Desetitisíce uživatelů měl už už v době, kdy se jednalo u službu pro vysok…
Wikan 28.07.2021 19:08
Wikan
Dalo by se rict, ze to nepotrebuje zadny vykon :-) Za rozumné peníze koupíš počítač, co bude mít 24…
gilhad 06.08.2021 00:48
gilhad
Klobouk dolů. Hodně pěkně vysvětlený poslední
virten 09.08.2021 11:30
virten

Dalo by se rict, ze to nepotrebuje zadny vykon :-)

Za rozumné peníze koupíš počítač, co bude mít 24 jader a 4 GHz frekvenci, to je, velice zhuba, 24 * 4 * 10^9 ~ 10^11 cyklů za sekundu, děleno 2 * 10 ^ 4 hráčů tedy 5 * 10 ^ 7 = 50.000.000 cyklů na hráče za sekundu (teda včetně komunikace a tak, ale on ten hráč toho zase tolik dělat nemůže, 50 milionů instrukcí je strašně moc)

Komunikace u MMORPG je většinou dost zjednodušená, po nahrání lokace se posílají jenom změny a to je pár bytů ( třeba co jsem koukal u jiné hry - 01 02 0D 40 50 03 - 6 bytů, 01 postava přešla na jinou pozici, 020D = 525 dekadicky je číslo postavy, 40 30 je x a y pozice, 03 je směr postavy - 6 bytů přeneseno, hráčův počítač se začíná potit - vykreslí celé pozadí podle uložené mapy, všechny postavy a nestvůry a stromy a domy a dopočítá viditelnost a odrazy vodní hladiny a postava 525 - jak už dávno ví - je elf, typ figury 12345, má na sobě zelené šaty, hnědé boty, třpitivou zbroj, černé vlasy, radioaktivní meč +7, kožený štít +5, jmenuje se Megatron patří do guildy XxX, která je nepřátelská tvojí guildě atd atd - a tohle všechno (a mnohé další) musí hráčův počítač vytahat z paměti, nakreslit a vyřešit, jak se to tluče s 12 dalšíma, stejně podrobně popsanýma, postavama na scéně - a taky se zviřaty, přírodou atd ...

Rozhodneš se zaútočit, takže postupně tvůj počítač najde nejdřív cestu a pak postupně posílá podobné šestice bytů, jak tvoje postava jde k protivníkovi, max. 4 za sekundu, protože ví, že serve ti víc kroků za sekundu nedovolí udělat.

Server zjistí, že měníš souřadnice o max 1 v každém směru, ověří, že cílové pole je volné a tobě a těm 12 dalším pošle 6 bytů, kam jsi zrovna vkročil.

Jak vidíš, komunikace tolik nezabere, server počítá jednoduché věci a hráčův počítač se potí a animuje jako divý.

Pokud fakt zautočíš, tak tvůj počítač pošle něco jako ( 07 02 0D 12 = 07 útok na postavu, 020D = Megatron, 12 typ útoku = ruční, nablízko), server ověří, že stojíte vedle sebe, vezme tvoje (předpočítané) číslo na útok, Megatronovo (předpočítané) číslo na obranu, přihodí kus náhody a všem 12+1 na tomto místě pošle (07 12 01 01 02 0D 05 80 = 07 někdo útočil, 12 ručně nablízko, 0101=hráč 257, čili ty, 020D na Megatrona, 05 zasáhl za 5 bodů, 80 zasaženému , tedy Megatronovi, zbývá 128 bodů) - 8 bytů a pár krátkých funkcí, kde se pomocí několika instrukcí něco ověří (rozdíl dvou dvojic čísel, povolený typ útoku pro equipnutý item ...) nebo něco spočítá a uloží (nový počet bodů, nové pozice ...)

a tvůj počítač se potí, aby vykreslil rozfázovaně na 140x za sekundu, jak tvoje pozlacená dýka s diamantem naráží na Megatronovo brnění a kolem cáká krev jak na jatkách (a každé kapce krve počítá pseudobalistisickou dráhu pádu)

----

Jak vidíš, při dobré organizaci server dělá naprosté minimum a mraky herních nabušených počítačů dělají ten zbytek.

Ono i u stavitelských věcí, jako ten minecraft, jde spousta práce takto rozdělit a pohyby jednotlivých předmětů jsou výpočetně celkem hračka, pokud je to dobře navrženo. A o grafiku se postarají počítače hráčů...

(Neodpustím si vzpomínku na 8-bitové počítače s 32 kB paměti, kam se kromě programu musela vejít i obrazovka a kde výpočty jak pohybů, tak grafiky taky dělal ten chudák procesor - a přesto na nich plynule jely i 3D souboje několika stíhaček naráz - nebyl až takový problém upočítat ty 3D manévry, byl problém je jakž takž nějak nakreslit)

Zpět do poradny Odpovědět na původní otázku Nahoru