On jo varmaan selvinnyt, että tässä pelissä ei mitään tehdä yksinkertaisesti, eipä siis pisteitäkään saa yksinkertaisesti. Parissa kuvassahan on jo vilahtanut pisteet siellä oikeassa palkissa ja ensinnäkin niistä huomaa, että siellä ei ole mitään ylimääräisiä nollia perässä. Joissakin ääripäänpeleissähän saattaa olla loppupisteet jopa 738000000, mutta minä en itse pidä ollenkaan noista nollista tuolla perässä. Niinpä tässä pelissä ei tule olemaan ollenkaan ylimääräisiä nollia pisteissä.
Sitten itse pisteiden antamiseen. Koska jokaisesta vihusta ei saa aina samaa määrä pisteitä, pisteiden pitää riippua jostakin, ja tässä pelissä ne riippuvat luonnollisesti expasta, koska expat ovat niin tärkeä ja iso juttu tässä pelissä. Joka tapon yhteydessä siis katsotaan paljonko mitäkin expaa sai, ja niiden perusteella annetaan pisteitä. Heti voi varmasti keksiä hienon systeemin tähän: lasketaan kaikki saadut expat yhteen ja lisätään ne pistesaaliiseen. No, ihan hyvä idea, mutta tässä pelissä se on kuitenkin paljon monimutkaisempi.
Ja nyt se selviää: aluksi kaikkien taitojen saadut expat kerrotaan yhteen, laitetaan ne neliöjuureen ja jaetaan kymmenellä. Nyt yhdestä vihusta voi saada 1-1000 pistettä ja pisteiden saanti riippuu enemmän taidoista, mutta miten?
Tässä seuraavaksi on piirretty hieno kuvaaja funktion f(x) = sqrt(x^4) / 10 mukaan, eli siinä oletetaan, että jokaisesta taidosta olisi aina saatu sama määrä (x-määrä) expaa:
Siitä siis muodostuu tuollainen nouseva käyrä (itseasiassa funktion f(x) = x² / 10 kuvaaja). Kuvaajasta voi esimerkiksi ottaa kohdan, jossa kaikista taidoistaa saa 50 expaa, jolloin pisteitä saa 250. Jos taas jokaisesta taidosta saisi 100 expaa, saisi pisteitä täydet 1000. Siis, expojen kasvaessa pisteet eivät kuitenkaan kasva samassa tahdissa vaan vasta saadessa huippuexpoja voi saada oikeasti suuria pisteitä.
keskiviikko 18. marraskuuta 2009
sunnuntai 15. marraskuuta 2009
Kappas, fps parani tähtitieteellisesti!
Opin tuossa, kuinka SDL:n Surfaceja eli kuvapintoja voi optimoida nopeampaa piirtoa varten ja niinpä fps parani varsin mukavasti. Pelissä fps nousi 100:sta 1000:een ja kaupassa 50:stä 5000:een, eli aika *lvetin paljon. Samoin pieneni muistin kulutus muutamalla megalla, mutta se ei kuitenkaan ollut kovin merkittävää. Tämän takia pelin latautumiseen kuluva aika kuitenkin kasvoi puolella sekuntilla, koska optimointiin menee jonkin aikaa, mutta eihän se haittaa, koska nyt tätä peliä voi pelata paljon vanhemmallakin raudalla.
Tuossa on vielä se mainio funktio, jolla tämä oli mahdollista:
kuville ilman alpha-kanavaa: SDL_DisplayFormat(kuvapinta)
ja kuville alpha-kanavan kanssa: SDL_DisplayFormatAlpha(kuvapinta)
Tuossa on vielä se mainio funktio, jolla tämä oli mahdollista:
kuville ilman alpha-kanavaa: SDL_DisplayFormat(kuvapinta)
ja kuville alpha-kanavan kanssa: SDL_DisplayFormatAlpha(kuvapinta)
Tunnisteet:
teknistä
keskiviikko 11. marraskuuta 2009
Tähtäimen tarkkuus
Nyt siis selviää, kuinka tuo tähtäin tarkentuu... sillä sekään ei ole aivan yksinkertaisesti tehty tässä pelissä. On siis jo selvää, että tähtäin tarkentuu, kun sitä ei liikuta ja ei ammu. Tähtäin ei kuitenkaan tarkennu tasaista vauhtia, vaan sen tarkentuminen hidastuu, mitä tarkemmaksi se tulee. Päätin tehdä tällaisen systeemin, jotta tähtäimen saisi nopeasti vähän tarkemmaksi, mutta jos haluaa kriittisen ammuksen (eli, kun tähtäin on tullut täysin tarkaksi) saa odottaa paljon kauemmin. Tällainen tähtäin on saatu aikaan niin, että joka framessa kerrotaan tarkkuuden arvo tietyllä luvulla, kun taas sellainen tähtäin, joka pienenisi tasaista vauhtia, saataisiin aikaan vähentämällä tarkkuudesta joka framessa tietty luku.
Tämän lisäksi pelissä on taito tarkkuudelle, joka parantaa tarkkuutta pelin edetessä. Taidon karttuessa tähtäimen pieneneminen nopeutuu ja sen maksimikokokin pienenee.
Tämän lisäksi pelissä on taito tarkkuudelle, joka parantaa tarkkuutta pelin edetessä. Taidon karttuessa tähtäimen pieneneminen nopeutuu ja sen maksimikokokin pienenee.
sunnuntai 8. marraskuuta 2009
Nyt alkaa näyttämään jo joltakin
Taas on aika näyttää uusi kuva. Nyt alkaa pelin perusmekaaniikat olemaan jo kasassa, ja nyt enää pitäisi tehdä itse peliin ehkä vielä jokunen vihollinen ja sitten itse se kartta, mitä pelata. Näiden lisäksi on kuitenkin vielä paljon tehtävää, kuten loading ruutu, menu, hiscoret ja muuta, joten kovin valmiita ei nyt kuitenkaan vielä olla.
Ja se kuva on nyt tässä:
Grafiikoista vielä sen verran, että lopullinen peli tulee näyttämään aika lähelle tuota. Sivu- ja alapalkit, tausta ja vihulaiset eivät luultavasti tule enää muuttumaan tuosta yhtään. Tykkiä varmaan vielä parantatelen ja sitten vielä lisään joitakin partikkeliefektejä joihinkin paikkoihin.
Loppuun vielä pari fun factia, kuten aina:
Ja se kuva on nyt tässä:
Grafiikoista vielä sen verran, että lopullinen peli tulee näyttämään aika lähelle tuota. Sivu- ja alapalkit, tausta ja vihulaiset eivät luultavasti tule enää muuttumaan tuosta yhtään. Tykkiä varmaan vielä parantatelen ja sitten vielä lisään joitakin partikkeliefektejä joihinkin paikkoihin.
Loppuun vielä pari fun factia, kuten aina:
- Pelin latautuminen kestää noin 2.0 sekuntia
- Peli rohmuaa käynnistyessään 162Mt muistia
- Pelin lähdekoodissa on 2205 riviä koodia
lauantai 7. marraskuuta 2009
Vihollis- ja karttasysteemi valmis
Nyt on siis vihollissysteemi valmis, eli mukana on nyt kolme erilaista vihollista, joiden ominaisuuksia voi muokata. Tällä hetkellä ainakin, vihollisina toimivat vielä kolme eri väristä palloa, sininen, vihreä ja punainen. Vihreä vihulainen on nopeampi ja punainen on kestävämpi. Sininen on siitä välistä. Saatan kuitenkin vielä tehdä myös joitakin muita vihollisia ensimmäiseen versioon.
Tämän lisäksi on myös karttasysteemi saatu valmiiksi eli kartat tehdään kirjoittamalla tekstitiedostoon juttuja ja sieltä peli sitten lataa pelattavan kartan. Ekaan versioon ei kuitenkaan tule kuin se yksi survival-kartta, mutta ainakin omien karttojen tekeminen on alusta asti mahdollista, jos sellainen kiinnostaa. Tämä systeemi tulee olemaan käytössä myös tulevaisuuden "uramoodissa".
Sitten vielä kerron millainen se kartta-tiedosto tulee olemaan. Jokaisella erilaisella vihollisella on oma spawneri, ja nämä spawnerit ovat kartta-tiedostossa peräkkäin. Yksi tällainen spawneri voisi näyttää esimerkiksi tältä:
Tämän lisäksi on myös karttasysteemi saatu valmiiksi eli kartat tehdään kirjoittamalla tekstitiedostoon juttuja ja sieltä peli sitten lataa pelattavan kartan. Ekaan versioon ei kuitenkaan tule kuin se yksi survival-kartta, mutta ainakin omien karttojen tekeminen on alusta asti mahdollista, jos sellainen kiinnostaa. Tämä systeemi tulee olemaan käytössä myös tulevaisuuden "uramoodissa".
Sitten vielä kerron millainen se kartta-tiedosto tulee olemaan. Jokaisella erilaisella vihollisella on oma spawneri, ja nämä spawnerit ovat kartta-tiedostossa peräkkäin. Yksi tällainen spawneri voisi näyttää esimerkiksi tältä:
spawner:Mutta eipä tuosta nyt vielä enempää. Kohta puoliin ajattelin taas näyttää yhden kuvat, jossa näkyy nyt hieman päivitetyt grafiikat ja niitä uusia vihollisia.
start 5
end -1
rate 5
raterandom 50
minrate 1
progress 0.01
enemy:
type -1
value 1
speed 0.4
speedrandom 75
size 2
health 1
torstai 5. marraskuuta 2009
Jaa koodi tiedostoihin
Vielä vähän aikaa sitten, kaikki tämän pelin lähdekoodi oli yhdessä tiedostossa yhdessä pitkässä pötkössä. Kun koodirivejä alkoi olla jo yli 1500, alkoi käydä vaikeaksi löytää sieltä enää mitään nopeasti. Niinpä nyt tässä parin viimepäivän aikana opettelin, kuinka jakaa koodi eri tiedostoihin ja se on todellakin helpottanut hommaa. Siispä, jos joskus alat ohjelmoida, tämä kannattaa todellakin opetella.
Tämän ja muunkin pienen koodin optimoinnin takia ei ole ollut nyt hirveästi edistystä viimeaikoina.
Tämän ja muunkin pienen koodin optimoinnin takia ei ole ollut nyt hirveästi edistystä viimeaikoina.
Tunnisteet:
teknistä
keskiviikko 4. marraskuuta 2009
Kauppasysteemi valmis
Nyt on "kauppa" saatu valmiiksi. Ei se kyllä ihan nimensä mukaisesti kauppa ole, vaan pelaaja pääsee valitsemaan, mille taidolle ottaa 1000 ilmaista expaa aina, kun saa yhden peruslevelin.
Tässä on vielä yksi kuva siitä. Siinä peli pysähtyy ja se jää tuonne taustalle näkymään vähäsen samalla, kun siihen päälle tulee tuo kaupparuutu. Tuolla oikeassa sivupalkissa näkyy uutuutena nyt myös pisteet ja FPS.
Tässä on vielä yksi kuva siitä. Siinä peli pysähtyy ja se jää tuonne taustalle näkymään vähäsen samalla, kun siihen päälle tulee tuo kaupparuutu. Tuolla oikeassa sivupalkissa näkyy uutuutena nyt myös pisteet ja FPS.
Tilaa:
Blogitekstit (Atom)


