Citat:
Ursprungligen postat av tarp
haha, fi fan vad fel du har, på alla sätt och vis. Snälla sluta skriva om sådant du inte har en aning om. Först pratar du om "processor kraft" sen går du över till bandbredd. Nåja, för att mala ner dina "argument".
Tänkasig, jag som trodde jag var anställd MMORPG programmerare? Så fel man kan ha
Citat:
Ursprungligen postat av tarp
~5.6Mbit/s ÄR mycket bara för att hålla koll på spelarna.
Nja, det är väll inte så överdrivet mycket med tanke på att det kanske är 50-60% av det som behöver göras, combat events sker på irregular basis någon gång per 2-3 sekund, och jag har svårt att tro att alla spelare slår slag samntidigt
Citat:
Ursprungligen postat av tarp
Dock inte det stora problemet, det är att det tar förjävla mycket processorkraft att hålla koll på spelarna. Om man bara sparar just nu och jmf med 5s sen så kan du få stora fel. Alla klienter kommer inte att svara på exakt just denna microsekund du frågar "öh, vart e du?", de kommer vara upptagna med annat tex rita om skärmen, spela upp fult gnome-ljud, eller så har klienten bara just då lagg.
Finns en liiiiiten sak som heter multithreading, vilket går ut på att man gör 2 saker samntidigt, funkar även på äldre processorer. Men du kanske inte visste det? Jag är fullt medvent om att det finns nätverks "lagg", men nu är det så att så klart frågar inte servern klienterna, utan klienterna skickar ut uppdateringar när det hastighet / rikting påverkas
Citat:
Ursprungligen postat av tarp
Så du måste göra massa beräkningar på informationen du får tillbaka, för att se om de potentiellt fuskar genom att färdas snabbare än de ska. Finns ju massvis med sätt att färdas på i WoW vilket gör det hela knepigt, springa, gå, rida, rida med epic, rida med spurs, rida med moroten, rida med spurs+morot(+epic), zeppelinare, gryphon/bat, skepp, hoppa in i magiker-portal, heartstone, bli summonerad av warlock, engineer teleporteringen. Hmm. tror det var allt, nej just ja. Finns quest i Winterspring som... , och när jag tänker efter finns det en del andra quests som teleporterar en, vet minst tre. Så, det är inte så där superenkelt att bara beroende på positionen nu och för X sekunder sen kolla om man fuskar.
Finns en LIIIITEEEN term som heter Bitflags, kolla upp den.
Funkar typ:
Quest asd anropar teleportfunktion, targetClient->SetFlagBool(TELEPORTED,true);
och vips så kollas den inte nästa gång som anticheat programmet kollar.
Funkar även med mounts + modifiers.
När du ändrar något, tar på dig din kära morot, mountar whatever:
targetClient->SetFlagFloat(CURRENT_SPEED,newSpeed);
och så används den
Citat:
Ursprungligen postat av tarp
Vad som funkar för ett singelplayer eller ens mindre multiplayer (<50) spel funkar absolut inte för ett MMORPG med flera tusen samtidiga spelare.
Konstigt, exakt så här har vi simulerat i vårat mmorpg, klarar upp till runt 1000-2000 spelare (sedan kunde vi inte stara fler processer, server CPU var typ på 80-90% med allt i debug och NPC ai). Meningen är att detta sedan skall kopplas i ett backend för att stödja några k spelare
250 riktiga players world-wide, 0.1% CPU (top -d5 tog mer cpu), inkl npc ai och paladinjr (anticheat) på samma dator.
Referens:
http://www.planeshift.it