|
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 |
|