3D Rust Base Browser
Z herní stavby do prohlížeče
- JavaScript
- three.js
3D Rust Base Browser jsem vytvořil na zakázku pro Rusticated.com, významného provozovatele oficiálních serverů hry Rust. Aplikace převádí uložené stavby ve formátu Fortify JSON do interaktivní 3D scény, ve které si hráči mohou základnu otáčet, přibližovat a prohlížet po jednotlivých patrech.
- Moje role
- Vývoj na zakázku pro Rusticated.com
Sdílení staveb z Rustu
V Rustu není základna jen místo na uložení věcí. Její rozložení ovlivňuje pohyb hráčů, ochranu zásob i obranu před ostatními. Na specializovaných build serverech si hráči mohou návrhy v klidu zkoušet, upravovat a postupně vylepšovat.
Hotovou stavbu si pak uloží a mohou ji sdílet s ostatními. 3D Rust Base Browser uložený návrh zpřístupní jako prostorový model přímo na webu. Další hráč si tak může prohlédnout, jak je základna poskládaná, aniž by se musel připojovat na build server.
Formát Fortify JSON
Stavba se ukládá do formátu Fortify JSON. Základem je seznam entities, tedy jednotlivých objektů, ze kterých se základna skládá. Každý záznam říká, o jaký díl jde a kam patří.
Pole prefabname identifikuje herní objekt, pos určuje jeho pozici a rot natočení. Grade popisuje stupeň stavebního vylepšení a skinid použitý skin. Podle těchto údajů lze vybrat odpovídající model a jeho vzhled a umístit ho do scény.
Ukázkový export obsahuje 5 803 objektů. Níže je zachovaný první záznam pro trojúhelníkový základ spolu s výchozím nastavením. Souřadnice a úhly jsou v tomto souboru uložené jako řetězce; při sestavování scény se převedou na čísla.
{
"default": {
"position": { "x": "0", "y": "0", "z": "0" },
"rotationdiff": 0,
"rotationy": 0
},
"entities": [
{
"grade": 3,
"pos": { "x": "-4.152954", "y": "0.05888749999999998", "z": "8.526001" },
"prefabname": "assets/prefabs/building core/foundation.triangle/foundation.triangle.prefab",
"rot": { "y": "0.06891875913741298", "x": "0", "z": "0" },
"skinid": 0
}
]
}Sestavení 3D scény
JSON neobsahuje hotový 3D model celé základny. Je to popis, podle kterého se stavba znovu složí. Pro každý záznam se vybere příslušný stavební blok nebo jiný herní objekt, nastaví se jeho vzhled a umístí se na uloženou pozici se správným natočením.
Základy, stěny, stropy a další části tak postupně vytvoří stejnou prostorovou strukturu jako na serveru. Díly na sebe musí přesně navazovat. I malá chyba v umístění nebo rotaci by byla na spojích celé stavby vidět.
Prohlížení jednotlivých pater
Pohled zvenku ukáže tvar základny, ale o jejím vnitřním uspořádání řekne jen málo. V prohlížeči si proto hráč může stavbu otáčet, přibližovat a měnit zobrazení jednotlivých pater.
Skrytí horních částí odkryje místnosti, průchody a návaznost dalších podlaží. Sdílený návrh se tak dá skutečně prostudovat od půdorysu po celou základnu a použít jako inspirace pro vlastní stavbu.