Dnes bych chtěl všechny fanoušky zajímající se o modifikování hry Mafia upozornit na nově vznikající program LS3D Sandbox, na kterém pracuje známý módař djbozkosz. Program slouží především k úpravě misí a měl by zahrnovat funkčnost několika starších editorů dohromady + nějaké funkce navíc. Mně nyní nezbývá nic jiného, než Vás odkázat na pokračování novinky, kde naleznete čtyři obrázky z vývoje a především veškeré, přehledně sepsané informace přímo od autora.
Editor by měl zahrnovat funkce starších editorů (MWE, DCED, BSV, CHE a ROE … modaři pochopí) včetně konverze a úpravy 4ds modelů.
Obrázky z vývoje programu LS3D Sandbox
Podrobnější rozpis funkcí, které by měla obsahovat finální verze editoru:
Scene2.bin (hlavní soubor mise):
- vkládání, umisťování modelů a jiných objektů (světla, zvuky, body, atd, …)
- úprava vlastností objektů (lidi, doprava, fyzikální objekty, dveře, tramvaje, atd…)
- skriptování včetně zvýraznění syntaxe, šablony
- úprava složitějších objektů (occludery, volumetrické objekty)
- později: podpora nasvícení a lightmappingu (včetně radiozity) počítaného přes GPU
Cache.bin (zhuštěný soubor modelů):
- tvorba a správa skupin (oblastí) a jejich hraničních vektorů
- vkládání modelů do oblastí
Tree.klz (soubor kolizí):
- tvorba primitivních kolizí (Axis Aligned Bounding Box, Bounding Box (XTOBB), Cylinder, Plane (OBB), Sphere)
- tvorba face kolizí
- možnost vymazání (pokud model chybí) nebo přestavění (pokud se model změnil) face kolize
- automatické přidělení materiálů při tvorbě kolize podle difúzních textur rodičovského modelu
- tvorba primitivních kolizí z dummy v modelu
Check.bin (soubor navigačních bodů):
- tvorba a úprava navigačních bodů různých typů (chodci, AI, tramvaje, letadla, atd…)
- nástroje pro tvorbu, např.: vyplnit terén mřížkou bodů
- uvažuju o funkci pro automatické vytvoření mapy bodů na modelu ve schůdných oblastech
Road.bin (soubor navigačních bodů dopravy):
- tvorba a úprava křížených a vodících bodů
- možnost automatického vypočtení rychlosti aut v bodech dle terénu
- uvažuju o možnosti automatického vytvoření bodů na úseku modelu (např.: silnice)
4ds modely a kompletní úprava materiálů:
- difúzní, alpha, environmentální textury
- různé režimy a síla env mapování: překrytí (vážený průměr mezi difuzí a env), additivní (sečtení difuze a env), multiplikativní (násobení difuze a env)
- použití env mapy jako detail texturu
- kolorování textur: difuse (kde svítí světlo), ambient (ve stínu), emission (vydává světlo)
- vyhlazování textur: buď s mipmappingen a bilineárním (trilineárním) filtrováním nebo bez mipmappingu – je interpolována pouze jedna textura (v dálce jsou ostré)
- průhlednost, color key, animované textury, 2 sided materiál, additive blending
úprava geometrie modelů:
- zpřístupněny všechny parametry a proměnné, definice a vlastnosti vertexů, facetů, atd…
- konverze objektů, např. na: sektory, glowy, morphing, billboarding, zrcadla, atd…
- dále bych rád počítal s jednoduchou tvorbou modelů, vhodnou pro terén a interiéry (na vše ostatní je tu Zmodeler popř. 3ds Max)
- nástroj pro tvorbu silnic z křivek (protože dělat cesty ve Zmodeleru je děs), po misi si potaháte body, ze kterých se vytvoří křivka (Catmull-Rom Spline) a s použitím vzoru (např.: silnice) se křivka vyplní tímto vzorem
Vývoj se zatím nachází ve stádiu Alpha (pro mě nejnudnější), kdy je nutné rozkódovat samotné soubory a napsat základní engine pro načtení a zobrazení scény. Editor jsem začal psát někdy ke konci letního semestru (konec dubna) a jakmile jsem dojel poslední zkoušky ve druháku (konec května), mohl se vývoj rozjet trochu víc. Jako programovací jazyk bylo použito C++, pro zobrazovací API: OpenGL, počet řádků se zatím pohybuje kolem deviti tisíc, kód je rozdělen do patnácti modulů plus dva shadery (vertex a frame) a kompilace trvá dlouhých patnáct sekund (C++ Builder 6).
Nyní je potřeba napsat základní funkce pro úpravu scény: vkládání objektů, základní úprava 4ds a především optimalizovat zobrazovací proces. Protože jedna věc je, že kód funguje, ovšem druhá, a pro realtime renderování v počítačové grafice, nezbytná věc je: jak rychle. Nyní, když jsou zobrazeny všechny body, pomocné objekty a je kreslena trochu větší oblast, padá framerate k nepoužitelným hodnotám.
Poslední věcí, na kterou se určitě ptáte, je datum vydání. Než udělám vše v odstavci výše, potrvá to minimálně několik týdnů. Takže vydání alpha verze bych rád stihnul ještě na konci sprna. Jednak mám aji jinačí věci na práci a druhák tu na Valašsku (pro Čecháčky: tam na východě, skoro až na Ukrajině :D) poslední dobou nezaprší a nezaprší, takže je tu hyc jak cyp…
Zdroj: vlastní