Trädvy Permalänk
Medlem
Plats
FALKENBERG
Registrerad
Maj 2005
Skrivet av Wiffler:

Jäklar vad grymt det börjar se ut! Har följt ditt .....
Skickades från m.sweclockers.com

Väldigt kul att höra ! Det är precis det jag siktar på, ett grafiskt simpelt spel med fokus mer på bra RPG aspekter och mycket innehåll.

Jag kommer posta här när en test kommer. Har bestämt mig för att använda Sweclockers för mina första tester, så alla som vill testa kommer få möjlighet till det ! Jag tror faktiskt inte att det är så långt ifrån en test. Ska bara få in lite mer innehåll i form av Quests och konversationer samt fixa inloggningssystemet. Vi ser ju gärna att det iaf finns lite att göra när man kommer in som Spelare så man kan spela och bilda sig en någorlunda uppfattning.

Trädvy Permalänk
Medlem
Plats
FALKENBERG
Registrerad
Maj 2005

Pathfinding Update

Jag ville snabbt dela med mig av en grej som jag fixade för några dagar sedan som gjorde stor skillnad på servern.

I tester jag gjorde så spawnade jag in 1000 spindlar, som alla var aktiva. Dom gick runt och slogs mot NPCs som de kom nära. CPU användningen låg då på mellan 25-40%, och det skedde rätt mycket GC. Jag undersökte saken, och såg att den största boven var helt klart Pathfinding. Den tog runt 85% av den totala CPU belastningen.

Så jag började rota lite i min kod, och fixade en del saker som hade med GC att göra. Fick ner GC väldigt mycket, men CPU belastningen höll sig på samma. Jag skapade då lite counters så jag skulle kunna hålla reda på hur många beräkningar som gjordes.

Lade in så denna nya informationen syntes under Pathfinder Status i Kontrollpanelen på servern.
Då såg jag direkt vad orsaken till den höga belastningen var. Dum som jag är, hade jag inte lagt in någon break ifall det tog väldigt långt tid att hitta en Path. Så om datorn försökte räkna ut en Path från A->B, så kunde den i vissa fall testa upp emot 300.000 tiles innan den skickade tillbaka att en Path inte var valid.

Before

Som ni ser på Total Fail Count, vilket är hu många Tiles som servern har testat totalt, så uppgår den till extrema siffror, väldigt fort.

Jag lade då in en break om den inte hittade en path efter 2500 tiles som standard. Detta gör så dom kan hitta paths som är relativt långa, men inte superlånga, då får man öka siffran för just den uträkningen, om man i vissa scenarion kanske vill hitta en path över en längre sträcka.
Efter justeringen så sänktes CPU belastningen till runt 14% med 1000 aktiva monster. Average Path calculation time sänktes till 1.6ms, och longest calculation time från 147ms till 38.
Average Fail Count, gick från massiva 14000 ner till 200 !!

After Changes

Detta gjorde en enorm skillnad på server performance!
Blev väldigt nöjd med resultaten, och kände att jag ville dela med mig av det

Mer uppdateringar inom kort!

/R

Trädvy Permalänk
Medlem
Registrerad
Apr 2010
Skrivet av BlasteRs:

Lade in så denna nya informationen syntes under Pathfinder Status i Kontrollpanelen på servern.
Då såg jag direkt vad orsaken till den höga belastningen var. Dum som jag är, hade jag inte lagt in någon break ifall det tog väldigt långt tid att hitta en Path. Så om datorn försökte räkna ut en Path från A->B, så kunde den i vissa fall testa upp emot 300.000 tiles innan den skickade tillbaka att en Path inte var valid.

Skrattade gott åt det där, skönt att du hittade det. Har kikat på den här tråden lite till och från och måste säga att jag är imponerad! Riktigt bra jobbat med allt.

Trädvy Permalänk
Medlem
Plats
FALKENBERG
Registrerad
Maj 2005

Worlds & Logins

Hej !

Har precis slutfört det mesta på mitt inloggningssystem. Jag satte mig ner och tog en funderare på hur exakt jag ville göra, och då jag tänkte mig in i scenariot att det kan komma att behövas mer än 1 server i framtiden (förhoppningsvis xD) så måste jag ju ha ett system som hanterar detta. I dagsläget loggade man bara direkt in på spelservern med sitt konto, valde sin karaktär och loggades in.

Men, tanken på flera servrar tvingade mig att tänka lite mer storskaligt.

Så, nu har jag designat ett server-system som hanteras av en central inloggningsserver.
Inloggningsservern, eller Serverhanteraren snarare, sköter allting som har med inloggning att göra, samt registrerar Spelservrar.

När en Spelserver startar upp, kontaktar den Loginservern, och registrerar sig med ett "World Name". Loginservern skickar tillbaka till spelservern en ledig port, och spelservern startar nätverksservern som klienterna ska ansluta till med den tilldelade porten.
Då vet loginservern vilken IP-Address samt port som den spelservern använder.

klientsidan så startar man vid en inloggningssida. I det skedet är man endast uppkopplad mot Inloggningsservern. Man loggar in med sitt konto, och får en lista på sina karaktärer, med lite snabbfakta (Namn, Level, Vocation och World). När man väljer en karaktär, så skickar Loginservern information om vilken IP och port som klienten ska ansluta till.
Loginservern skickar samtidigt ett meddelande till spelservern, och säger till den att en spelare är påväg in, med en karaktär.
Spelservern noterar detta, och tillåter anslutningen när spelaren ansluter några ms senare. Skulle Spelservern inte ha någon information om att en spelare är påväg in med det användarnamnet, så tillåter den inte anslutningen och klienten kommer inte in.

Login

Character Select

Även när man Skapar en Karaktär så sköts all kommunication mot Inloggningsservern. Inloggningsservern kontaktar Spelservern man valt under "World" och säger till den att skapa en Karaktär, sen skickar den tillbaka det till klienten igen.

Create Character

Har också hållt på mycket med Serialisering av Spelare. Så Spelare sparas när man loggar ut.
Det är under utveckling, men fungerar bra.

Tack för ikväll !
Mer uppdateringar snart förhoppningsvid

/R

Trädvy Permalänk
Medlem
Plats
FALKENBERG
Registrerad
Maj 2005

Character Costume

Glömde Nästan nämna att jag håller på med ett Outfit Fönster.
Detta för att Spelarna ska kunna ändra sitt utseende. Man kommer inte kunna ändra Gender efter att man skapat sin karaktär, men det andra.

Man väljer mellan Outfits som är Standard, dvs finns för alla, samt Outfits som man fått på annat vis, t.ex genom Quests eller Loot.
Tanken är att man börjar med rätt få outfits och bygger upp en garderob allteftersom.