Snake5's Blog

Kāda spēļu veidotāja blogs…

Monthly Archives: maijs 2010

Nedaudz par UE3 lēnumu…

Bankas noliktava – grafiskie uzlabojumi.

Vēl jau es nedaudz refaktorēju kodu, bet tas laikam šoreiz nebūs tas smukākais uzlabojums, ko rādīt.. 😀

Tāpēc prezentēju 2 attēlus, kuri, manuprāt, ir pietiekami labi, lai iezīmētu mēneša beigas:

Sakarā ar gludajām gaismu/ēnu pārejām nāksies domāt par gaismu režģi vai kaut ko līdzīgu, jo esošā rēķināšanas metode ir ne tikai lēna, bet arī nestrādā labi  ar šādām lightmapēm. Pagaidām visas gaismas tiek apstrādātas kā dinamiskas un biju iemetis pagaidu optimizāciju – lietoju fizikas dziņa specializēto Raycast funkciju, kura izmantoja iekšējo informāciju par objektu atrašanos pasaulē. Pirmajā momentā likās, ka būtu diezgan normāli pielietot spatial hashing algoritmu – tas ir vienkāršs un ātrs, bet nezinu pagaidām, kā tikt galā ar spēlētāja atrašanos ārpus līmeņa reģioniem. Varētu jau visādus neredzamos blokus iemest, bet tas nav automatizēts process, kuru šeit visticamāk pielietot vajadzētu mēģināt vispirms.

P.S. Aizmirsu, ka vēl animāciju redaktors jāuzlabo – pogu izkārtojums, GUI labojumi un iepriekšējā izvēlētā kanāla kā spoka kanāla skats, problēma ar atbrīvotās atmiņas lietošanu… tas laikam arī viss. 😀

Dažādi sīkumi…

Tā kā pie nopietniem darbiem roka necēlās, tad padarīju kaut ko mazāku:

– apskatīju dažādas AO rēķināšanas metodes. Pirmā tomēr izrādījās ātrākā un precīzākā, tāpēc ar dažiem labojumiem to arī atstāju;
– izveidoju 3 jaunas tekstūras;
– piemetu pirmos mainīgos tajā sistēmā, kuru lietošu īsfilmām, notestēju un pabeidzu pamatu;
– izveidoju dažas jaunas animācijas;
– veicu dažus sīkus labojumus;

Tagad plānoju strādāt pie īsfilmu sistēmas, veidotāja un pretinieka darbību sistēmas. Nekas vairāk reāli arī nav palicis, izņemot sīkumus, pirms precīzāka spēles procesa un līmeņu dizaina. Tikai pāriešana uz jauno personāža objektu spēlētājam, tekstūras u.tml.

Te redzams pretinieka kustību testa 3. līmenis ar uzlabojumiem.

Izskatās, ka ir viss izdarīts

Nedaudz citu paņēmienu tomēr izmantoju, lai vieglāk – primitīvi noskaldīju nost vienu pusi daudzstūrim un tad nepareizās savienojuma vietas salaboju ar veco labo daudzstūru labošanas funkciju, kura man te vēl stāv no vecajiem (2. csg subtract versijas) laikiem.

Tagad izskatās, ka viss strādā – notestēju kodu mazajā programmā, izlaboju visas kļūdas, pārnesu uz lielo. Pagaidām ne ar vienu no līmeņiem kompilēšanas problēmas neatradu un cerams, ka tā tas arī būs vienmēr. 🙂

Te ir šīs īpašās labotājfunkcijas kods, ja nu kādu interesē, ko tā dara… Lasīt vairāk par šo ziņu

Grūtākajai daļai gandrīz pāri…

Pabeidzu algoritma 1. pusi – daudzstūra dalīšanu ar taisni:

Atlika tikai notestēt, kā strādā “punkts uz taisnes”, “šķautne uz taisnes” un “vairākas šķautnes uz taisnes” gadījumi.

Tad varēšu veidot atlikušo daļu – CSG subtract funkciju.

Vēl kāds dzejolis par savādu tēmu

Īstenībā nevajag daudz zināšanu, lai uzrakstītu dzejoli. Vajag tikai iedvesmu, ideju, vēlēšanos un vēlams – saskatīt kaut ko neparastu.

Tā nu viens dzejolis par iepazīšanos internetā… 😀

kur tu esi, mana zvaigzne,
kad man tevi vajag tā,
nespīd spoži mana zvaigzne,
ieskatīšos kabatā.

izvilku es aparātu,
tik par senču naudu krātu,
meklēšu es iedomātu
zvaigzni savējo.

ieskatījos statistikā,
aizgriezos es nepatikā!
“draugos” vairs, es nodomāju,
nesperšu es savu kāju!

kur tu esi, mana zvaigzne,
ja ne augstu debesīs?
“maispeisā” es apskatījos,
likteņplūsmas izbesīts

un tad vecā labā bārā
acīs skaistās lūkojos
nebūs tak šī mana zvaigzne –
nav jau viņa “feisbukos”…

5 minūšu nedēļa

Šādi es varētu nosaukt šo nedēļu tāpēc, ka labākās idejas rodas 5 minūtēs. Ceru, ka tā būs vēl ilgi.. 😀

Es par CSG izdomāju visu arī diezgan ātri:
– atcerējos, ka HL līmeņu kompilētājs arī strādā ar CSG;
– dabūju ZHLT source kodu;
– redzēju vienkāršo kodu, to, ka tur darbojas ar plaknēm;
– atcerējos, ka es no dažādiem daudzstūriem atņemu tikai izliektus;
– prātā ienāca ideja izmantot to pašu metodi…

Izmantošu plaknes (taisnes) dalīšanai. Daudz vienkāršāka metode nekā iepriekšējā, un tai vajadzētu strādāt ļoti labi.


Sarkanais – daudzstūris, no kura atņem; zilais – daudzstūris, kuru atņem; zaļās līnijas – 1. daudzstūri sadalošās taisnes; dzeltenie/oranžie – 1. daudzstūra daļas; violetais (attēlā grūti saskatīt, bet tas ir viss otrais daudzstūris – tas, kuru atņem) – 1. daudzstūra daļa, kuru vairs nevajadzēs.

Algoritms pavisam vienkāršs…
– savācam taisnes;
– sadalām ar katru taisni visas daudzstūra daļas;
– izmetam to, kuru mums nevajag.

Rezultātā radīsies nedaudz vairāk trijstūru, bet mūsdienu videokartēm nav svarīgi – 5 trijstūri vai 25, tāpēc tā nav problēma. Drīz sekos testa implementācija un arī reālā, tad jau vairs nekādas problēmas no jaunā algoritma ceru nesagaidīt. 🙂

CSG un “floating point” skaitļi

..kopā neder.

Visas pēdējo laiku problēmas saistītas tikai ar precizitāti, salabot nav pārāk grūti, tomēr tās nebeidzas. Ir gandrīz neiespējami nodrošināt ideālu precizitāti, tāpēc es domāju, ka to vairs nedarīšu, ja šo pēdējo kļūdu nevarēšu salabot..

Pēdējā kļūda parādījās no nezināmas vietas – pirmajā reizē līmenis nokompilējās, otrajā vairs nē. Neko nebiju mainījis. Visticamāk vaina ir precizitātē…

Mēģināšu varbūt apskatīties, kā to dara Quake/HL kompilētājs – varbūt tur būs kādi redzami labi triki…

Skriet laikam jau prot…

Veicu ļoti daudz labojumus kodā visās malās. Pretiniekam liku pēc tam sekot apmēram 2 minūtes. Vērā ņemamas problēmas nemanīju vairs. Tagad jādomā par kustību pa kāpnēm.

Vēl beidzot izveidoju jaunajai sistēmai cilvēka objekta vizuālo tēlu (nav precīzi fiziskie dati ievadīti vēl..). Izveidoju viņam pirmo skriešanas animāciju.

Tad vēl, nedaudz pārdomājot Gamma Correction “efekta” nevajadzīgumu kādā attēlā, nolēmu izveidot efektu, kurš ir daudz universālāks par gamma correction un 5 minūtēs to arī izdarīju.

Pirms || Pēc

       

Efekts labi arī sader kopā ar citiem apgaismojuma uzstādījumiem (te es gan efektu nedaudz pārregulēju):

Tā kā cenšos radīt filmas stilu spēlē, tad šim efektam būtu jābūt diezgan noderīgam.

Drīz mācīšu mākslīgā intelekta vadītajam ķēmam darīt dažādas lietas. To skaitā – runāt.. 😀

Pretinieks mācās…

Pretinieks mācās staigāt pagaidām. Drīz mācēs arī lietot trepes un uzstiepties uz malām.

Es arī mācos.. komponēt.. kā vienmēr. Tikai izskatās, ka šoreiz kaut kas arī sanāk.. 😀 (es ceru, ka tā.. )

Šis video pateiks visu pārējo..