Ville ta lite av min tid för att skriva om min uppdaterade Launcher som jag gjort om lite för servern.
Det är kanske inte så intressant för många men några få kanske kan få ut något av det
Jag gjorde för ett tag sedan en separat applikation för att Starta/Stoppa spelservern. Den startade även om servern om den kraschade (Vilket händer rätt ofta under utvecklingsfasen vid nya versioner).
Den fungerade sådär, men gjorde sitt jobb så jag lät det vara, fram till nu. Uppdaterade den och lade in lite fler funktioner. Byggde också ett API som kommunicerar direkt mot spelservern så Launchern kan kalla på Restart och andra kommandon direkt istället.
På så sätt får jag en tvåvägskommunikation mellan servern och launchern.
Launchern startar servern i sitt egna fönster, så det syns bara ett konsolfönster på datorn, och det känns rätt smidigt. Dessutom printar launchern ut allt som kommer från Spelserverns konsol i en loggfil, så om spelservern kraschar och slänger felmeddelande så går det inte förlorat, utan sparas i loggen. På så sätt kan jag hålla koll på exakt vad som orsakade varje krasch.
Detta har hjälpt mig oerhört mycket i felsökandet.
Launchern håller också koll på om jag skickat upp en ny version av Spelservern, och om den hittar en ny version så påbörjar den en omstart av spelservern genom mitt API. Den skickar meddelande till spelservern om att starta om efter 120 sekunder, och spelservern skickar meddelande till alla spelare online (Typ, mina polare som sitter och meckar med kartan) att server startar om efter 2 minuter.
Efter spelservern stängts av uppdaterar den alla filer och startar om med de uppdaterade filerna.
Mycket smidigt
Det är skönt att veta att Launchern håller koll så att servern kan vara uppe 24/7, eftersom mina polare inte riktigt jobbar samma tider som jag, så vet jag att de alltid kommer åt servern,även om de råkar krascha den någon gång ibland xD
(Launcher Console Window & Server Control Center)
I övrigt har jag också spenderat en jäkla massa tid på att optimera servern. Den flöt på fint på min dator (i7 8700k), men när jag körde den på VM-servern så såg jag att Pathfindern inte riktigt kunde hänga med. Självklart kunde jag öka antalet CPUer på min VM, men jag ville hellre köra den på en sämre server och optimera den rejält så den kan köras bra där, för då vet jag att den är väloptimerad i slutändan.
Pathfindern var uppe i hela 900ms i vissa perioder (med 400 aktiva entities som sökte Paths), men på min dator låg den endast på runt 60ms. Notera att 900ms är tiden det tog för servern att iterera genom alla köade Paths, vilket kunde vara uppemot ett par hundra.
Efter 2 dagar av ändringar, felsökningar och extremt kaffedrickande så har jag fått servern väldigt stabil på runt 160ms.
Dessutom blev värdena på de övriga trådarna bättre också, så jag är helnöjd!
(Tiderna är i ms, och det är tiden det tar för tråden att köra en Update).
Detta blev ett mer tekniskt inlägg, och hoppas jag inte tråkat ut er för mycket, men jag älskar sånt här