Novinky na SkyCloud serveru

Po několika týdnech od poslední aktualizace SkyCloud serveru tu máme první novinky, které přidávají další funkce na SkyCloud server a přehled toho, co jsme na serveru za celou tu dobu vše změnili a opravili.

Možnost teleportace za příteli v netheru

Pokud jste se chtěli podívat na nether ostrov některého z hráčů, který již nether ostrov vlastní, nebylo to možné. Proto přidáváme možnost teleportace na hráče v netheru, pokud již vlastníte nether ostrov. Využít k tomu můžete jako vždy příkaz /tpa nebo /tpahere, která již není blokovaný v netheru ale teleportace půjde pouze v případě, kdy oba z teleportovaných budete mít již vytvořený nether ostrov, nebo budete ve skupině, co nether ostrov již vlastní. Není tak přímo nutné mít splněný úkol s nether portálem.

Možnost nastavit spawn na nether ostrově

Na nether ostrově nelze nastavit domov, jak tomu je na normálním ostrově. Aby jste se dostali do nether ostrova, musíte projít nether portálem a ten vás dostane až k vašemu nether ostrovu. Nyní si příkazem /is nether setspawn můžete nastavit i lokaci, kam vás má nether portál přemístit.

Odměna za dokončení parkuru na spawnu

Nyní pro všechny velké příznivce parkuru máme i malou odměnu na spawnu serveru. Po dokončení parkuru a doskákání až do balónu získáte po kliknutí na postavičky malou odměnu. Odměna je dostupná každý den, můžete tak vesele skákat a nyní navíc s malou odměnu.

Co jsme za tu dobu stihli?

- Opravili jsme špatně fungující hráčské obchody, kdy v některých specifických případech nešli vytvářet.
- V případě, kdy jste chtěli nakoupit v obchodě hráče, který ještě neměl nastavený prodejní item, došlo ke chybě, to je nyní také opraveno.
- Vylepšili jsme příkaz /is level, jak dlouho potrvá přepočítávání skóre vašeho ostrova nyní závisí na jeho velikosti. Zároveň došlo k celkové optimalizaci algoritmu, který se o výpočet stará, výpočet je tak již několik týdnů rychlejíší než kdy dříve.
- Opravena chyba se zobrazováním hologramu nad bednou s odměnami. Ve chvíli, kdy jste změnili svět, hologram zmizel, to je nyní opraveno a váš stav útržků i boxíků tak uvidíte bez omezení.
- Bylo upraveno chování denních úkolů. Pokud kliknete na postavičku, která neodpovídá vaší hodnosti, dostanete zprávu, že tyto úkoly nemůžete otevřít. Dříve postavička vůbec nic nehlásila, někteří tak mohli být ve zmatku, že úkoly nefungují, pokud klikali na nesprávnou hodnost.
- Oprava denního úkolu v hodnosti Rybář - Za 192x Kost, 192x Vlákno, 192x Šíp, 192x Shnilé maso a 192x Střelný prach bylo špatně popsána odměna 192x Dřevěné uhlí, správně je 16x Zlatý nuget.
- Oprava nefunkčního generování náhodného ostrova při výběru z menu v /is create nebo /is restart.
- Oprava nefunkčního generování nových nether ostrovů.
- Vylepšené informační zprávy při změně biomu na ostrově.
- Po provedení příkazu /is setbiome dojde ke změně biomu okamžitě, není nutné se odpojovat/připojovat. Funguje to tak nyní stejně jako u příkazu /is changebiome.
- Přidány nové bloky na nově vygenerované ostrovy. Nováčci se tak mohou těšit například na bambus, bobule apod. opravena byla také dýně.
- A další malé novinky/opravy/úpravy můžete sledovat v době vydání na našem discordu ZDE.

Server už nám nepadá, ale proč se tak dělo?

Před několika týdny jste si mohli všimnout, že server v pravidelných intervalech padal. To bylo způsobeno úlohou pro kontrolu biomů na ostrovech, vzhledem k tomu, že se stala od nové verze extrémně náročnou. Proč se tomu tak stalo a jak vlastně funguje?

Každý z vás si vytvoří ostrov s nějakým počátečním biomem. To znemaná změnit biom na ploše 500x256x500 za váš vybraný, což se děje práve při vytváření ostrova. Jenže může dojít k situaci, kdy se změna biomu na daném bloku (mluvíme většinou o celém chunku) neprovede z několika různých důvodů.

Z tohoto důvodu na serveru běží služba, která se stará o kontrolu biomů na všech ostrovech a ve chvíli, kdy zjistí, že na ostrově je špatný biom, tak tento biom změní. Jenže takto to fungovalo doposud a my jsme museli celou službu vlastně celou předělat. Ptáte se proč?

Ve verzi 1.14 a nižší, bylo možné nastavit biom pouze na souřadnici, tzn. že při nějvětším ostrovu 500x500 se muselo provést minimálně 250 000 operací na kontrolu biomu na daném ostrově. Jenže od nové verze 1.15 je možné měnit biom na každém bloku, což znamená na nějvětším ostrově 500x500 minimálně 64 000 000 operací. To už je slušné číslo, na které nebyl výpočetní výkon ani dostatek RAM. Muselo tedy dojít k optimalizaci.

Jak jsme to opravili?

Nyní služba funguje zcela jinak a máme v plánu jí rozšířit na všechny náročné úlohy (vytváření, mazání, restartování ostrova apod.). Jak ale kontkrétně funguje u kontroly biomů?

1. Služba nejdříve přeskenuje celý ostrov, zda-li obsahuje chybný biom (tedy biom, který majitel ostrova nemá dostupný).
2. Pokud je nalezena chyba, zařadí ostrov do fronty pro opravu, pokud není chyba nalezena, nic se něděje.
3. Čeká se až ostrov příjde na řadu a začně změna biomů na ostrově.
4. Skenuje se blok po bloku, zda-li obsahuje biom na který má majitel ostrova právo, pokud ano, jde se na další blok. Pokud ale ne, dojde ke změne biomu.
5. Toto celé probíhá až do konce kontroly celého ostrova, na měnších ostrovech úloha trvá okolo 5 minut, na velkých ostrovech může trvat i přes 60 minut.

Celá služba totiž monitoruje aktuální vytížení serveru a volných prostředků (RAM, CPU) a podle toho upravuje rychlost opravy biomů na jednotlivých blocích (tzn. bps, blocks per second). Již se tak nestane, že by celá úloha zasekla server. Všechny úlohy si navíc mezi sebou posílají informace a pokud bude spuštěných úloh moc a server to nebude stíhat, dojde k jejich úplnému zastavení nebo pozastavení.

Proto jste možná ještě nedávno měli na ostrove vícero biomů, protože jsme byli nuceni tuto službu na pár týdnů vypnout a celou jí předělat. Služba však již přes týden bez problému běží.

MrFiliper
04.05.2020 v 18:15
SkyCloud