Ero sivun ”Xeno:Teknistä tietoa nörteille” versioiden välillä
| Rivi 21: | Rivi 21: | ||
Vaikka Survin plugin-kanta ei ole yhtä monilukuinen kuin Kuningaskunnassa, on se täysin puhtaalta pöydältä rakennettuna monin paikoin kehittyneempi kuin aiemmissa projekteissa. Abstraktio ja laajennettavuus on pyritty pitämään tarpeellisuuden mittasuhteissa; esimerkiksi uuden teksturoidun palikan lisääminen (testi)palvelimelle onnistuu alle viidessä minuutissa. | Vaikka Survin plugin-kanta ei ole yhtä monilukuinen kuin Kuningaskunnassa, on se täysin puhtaalta pöydältä rakennettuna monin paikoin kehittyneempi kuin aiemmissa projekteissa. Abstraktio ja laajennettavuus on pyritty pitämään tarpeellisuuden mittasuhteissa; esimerkiksi uuden teksturoidun palikan lisääminen (testi)palvelimelle onnistuu alle viidessä minuutissa. | ||
| + | |||
| + | {{SiivoaKelluvat}} | ||
| + | |||
| + | == Mixinit == | ||
| + | Tarkempaa tietoa mixineistä löytyy [https://github.com/SpongePowered/Mixin/wiki täältä]. Mixinejä käytetään Xenossa pääsääntöisesti Paperin ja Spigotin pohjalla olevan NMS:n, eli Minecraftin vanillapalvelimen toiminnallisuuden muokkaamiseen niiltä osin kuin on pakko. | ||
| + | |||
| + | Esimerkiksi eräiden custom-palikoiden blockdatan/-staten muuttumattomuus on varmistettu estämällä se suoraan niiden vanillapalvelimen vastaavissa luokissa. | ||
| + | |||
| + | Xenon käyttämä mixin-moottori on [https://github.com/vectrix-space/ignite Ignite]. | ||
{{SiivoaKelluvat}} | {{SiivoaKelluvat}} | ||
Versio 4. heinäkuuta 2022 kello 17.31
Tämä sivu on pyhitetty kertomaan teknisistä ja kehityksellisistä seikoista, ja ylipäätään siitä, mitä Survissa tapahtuu kulissien takana. Tämän sivun sisältö ei välttämättä ole mielenkiintoista luettavaa ei-nörteille.
Palvelin
- Paper 1.18.2 (→ 1.19)
- Yhdistelmä itse kehitettyjä ja valmiita palvelinlisäosia
- Itse kehitetyt on kirjoitettu pääasiassa tavanomaisina Java-plugineina
- Valmiit lisäosat (mm. CoreProtect, WorldEdit, Vault, jne.) tuovat tärkeitä yleishyödyllisiä ominaisuuksia palvelimen ylläpitoon ja kehitykseen
Xenon varsinaiset palvelimet asustavat Docker-konteissa Pterodactyl-hallintajärjestelmässä Xenon palvelimella. Testipalvelimet sen sijaan elävät hieman vapaammissa olosuhteissa hajautetusti sekä pilvessä, dedikoidulla raudalla, että paikallisilla testi- ja kehityskoneilla.
Lisäosat eli pluginit
Xenon palvelimilla, myös Survissa, on käytössä useita itse kehitettyjä lisäosia eli plugineita, joilla muutetaan ja täydennetään palvelimen toimintaa. Yhdessä resurssipaketin kanssa lisäosilla saadaan luotua hienoja illuusioita uniikeista ominaisuuksista.
Lisäosakehityksessä on käytössä tiimityöskentelyä helpottava Git-versionhallinta sekä sen verkkokäyttöliittymä Gitlab. Useimmat pluginit rakentuvat Maven-dependenssihallinnan päällä, käyttäen Xenoa varten kehitettyä "copier"-aputyökalua, joka muun muassa osaa automaattisesti kopioida buildit eri kansioihin, scp:llä palvelimille, ja tarvittaessa jopa uudelleenkäynnistää kohdepalvelimen.
Vaikka Survin plugin-kanta ei ole yhtä monilukuinen kuin Kuningaskunnassa, on se täysin puhtaalta pöydältä rakennettuna monin paikoin kehittyneempi kuin aiemmissa projekteissa. Abstraktio ja laajennettavuus on pyritty pitämään tarpeellisuuden mittasuhteissa; esimerkiksi uuden teksturoidun palikan lisääminen (testi)palvelimelle onnistuu alle viidessä minuutissa.
Mixinit
Tarkempaa tietoa mixineistä löytyy täältä. Mixinejä käytetään Xenossa pääsääntöisesti Paperin ja Spigotin pohjalla olevan NMS:n, eli Minecraftin vanillapalvelimen toiminnallisuuden muokkaamiseen niiltä osin kuin on pakko.
Esimerkiksi eräiden custom-palikoiden blockdatan/-staten muuttumattomuus on varmistettu estämällä se suoraan niiden vanillapalvelimen vastaavissa luokissa.
Xenon käyttämä mixin-moottori on Ignite.
Resurssipaketti
Kuningaskunnan ja Survin resurssipaketit eivät juuri muuta normaaleja pelin palikoita. Sen sijaan niissä on käytetty nokkelia kiertoreittejä uusien palikoiden ja tavaroiden lisäämiseksi peliin. Resurssipaketti luo ainoastaan visuaalisen ilmeen tavaroille ja palikoille; niiden toimintalogiikka on peräisin palvelimelle itse kirjoitetuista lisäosista eli plugineista.
Wiki
Wiki toimii avoimen lähdekoodin MediaWiki-alustan avulla. Wikissä on käytössä erinäisiä lisäosia ja frontendiä on myös muokattu omilla lisävirityksillä.
Wikiä ym. resursseja varten Xenolla on myös käytössä sisäisesti kehitetty Cubisti-järjestelmä, joka renderöi resurssipakettien 3d-mallit ja tekstuurit wiki- ja verkkosivukelpoisiksi kuviksi aina niihin muutoksia tehtäessä. Se mahdollistaakin siis esimerkiksi...
...tavara- ja palakuvien liittämisen vaivattomasti suoraan mallineilla:

...kaikissa asennoissa:

...jopa lennosta renderöityinä rakennelmina:
Järjestelmä kytkeytyy Gitlab-versionhallinta-alustaan ja päivittää tekstuurit ja renderöidyt kuvat niitä vastaavien 3d-mallien tai tekstuurien muuttuessa automaattisesti.