StarTrekGames      StarCraft Encyklopedie      TrekGame.org

 

12.7. 2004

Už je to sakra dlouho, co jsem do téhle rubriky nic nenapsal :) Čekal jsem, že do ní budu příspívat častěji, ale nebyl čas a když už byl čas na programování, tak nebyl čas na psaní webu. Od posledního záznamu se toho událo opravdu hodně. Především bylo vytvořeno funkční MENU (což jste konec konců v danou dobu mohli vidět na jednom screenshotu). Víťa na jeho funkční části odvedl velmi dobrou práci a ačkoliv se dost odklonil od původních předpokladů a Developer´s documentu, tak výsledek je vynikající. Já dostal menu do rukou v sice fungující podobě, ale zcela bez grafiky (pouze výber rasy, lodi a umístení lodí kamsi na černou plochu). Mým úkolem tedy bylo ho graficky upravit. Nad tím jsem ztrávil několik dní, než jsem vymyslel, stvořil a implementoval ucházející design. Výsledek už jste viděli. Také jsem do menu přidal textové okno, kde si můžete přečíst informace o konkrétních lodích. Bylo přidáno několik grafických efektů. Animovaná exploze (vypadá moc hezky :) a kouřové stopy za poškozenými loděmi (ty už vypadají o něco hůře...). Zvláště nad těmi stopami jsem strávil dost času, než jsem jě přinutil se chovat aspoň podle elementárních fyzikálních zákonů, jako že mají utíkat ZA lodí :-) Dále jsem se zabýval problémem zaměřování lodí (přepnutí zaměření po zničení cíle atp.) což se může zdát jako triviální, ale za daných okolností se to ukázalo být docela velkým problémem. 1. Dubna jsem experimentálně zkusil přidat mlhoviny (ve 3 velikostech pro 3 zoomy). Výsledek mě celkem příjemně překvapil. Zapracovali jsme i na zpracování pauzy během hry. Také jsem do hry přidal jakýsi "observer mode" známý především z 3D fps - tedy jakýsi mód, kdy jen pozorujete boj, když je vaše loď zničena. Jako další grafickou vychytávku jsem přidal malý efekt při zásahu štítu (občas je vidět na některém screenshotu, ale statický nevynikne). Uložil jsem do adresářů všechny wireframy a začal pracovat na interfacech (znázornění zbraní) jednotlivých lodí. Pak se kolega vrátil ještě k menu a doprogramoval možnost načítání a ukládání historických bitev. To už začaly prázdniny a já se po smutném zkouškovém období na FW2 vrhl plnou silou. Zapracoval jsem na Scimitaru a jeho maskování. Lodě s těžce poškozeným trupem nyní rotují kolem své osy a neovladatelné plují prostorem (ala ST:Armada). Předělal jsem zvuky tak, že jejich hlasitost je závislá na vzdálenosti od zdroje. Přidal jsem možnost zaměření nejbližšího cíle. O tom vám povím více, protože mi to způsobilo několik krušných chvil :-) Zaměřit nejbližší cíl se může zdát jednoduchý problém. Stanovíte vzdálenosti a vyberete tu druhou nejnižší (první nejnižší - 0 je vaše vlastní vzdálenost) tak, že posloupnost setřídíte některým z mnoha třídících algoritmů. Porovnáváte tedy vzdálenosti lodí od vás, jestli se rovnají druhé nejkratší vzdálenosti a pokud ano, tak tuto loď zaměříte. Funguje to. Nyní toto nařídíte AI. Funguje to... funguje to... sek... Z nějakého důvodu se to v určitém okamžiku seká resp. zacykluje. Teprve asi po hodině a půl sezení nad 10 řádky kódu jsem se dopídil proč. Seká se to v okamžiku, kdy jsou dvě lodě ve stejné vzdálenosti. Cyklus totiž na konci testoval příslušnost lodi k teamu a když byla loď ze stejného, tak se vracel na začátek (aby nešla zaměřit přátelská loď). Jenže když byl nepřítel i přítel ve stejné vzdálenosti a přítele to vyhodnocovalo jako druhého, tak byl cíl stále z přátelského teamu... a procesor v tu ránu běhal dokolečka. Řeknu vám, že během té hodiny a půl mě napadalo mnoho věcí mimojiné i ponechat laskavého hráče BEZ možnosti zaměřit nejbližší cíl ;) Pak jsem se celý šťastný vrhl na systém prestiže, která bude fungovat jako platidlo na nákup lodí :) Bude to jednoduché. Hru začínáte s nějakými body, které stačí na nějakou fregatu) a za vyhraný boj získáte body rovnající se zhruba třetině ceny poražené lodi. Tolik krátké shrnutí minulých měsíců. Brzy se možná znovu rozepíšu o něčem dalším (za předpokladu, že to vůbec někdo čte ;)

Unimatrix325

Diary 17.2. 2004

Diary 3.2. 2004