maanantai 30. marraskuuta 2009

Viimeisistä leveleistä

Tämä onkin siis marraskuun viimeinen blogipäivitys ja näyttää siltä, että näitä tuli marraskuussa yhtä monta kuin lokakuussakin. Kaksi kuukautta on takana, mutta nyt asiaan.

Tuolla joskus aikaisemmin taisinkin jo kertoa jotain tästä levusysteemistä, mutta nytpä kerron vielä uudestaan vähän tarkemmin. Siis jokaisella taidolla on leveleitä nollasta viiten eli 5 on maksimilevu. Kuitenkaan jokainen taito ei voi tätä saavuttaa vaan vain yksi, koska se on sen verran parempi leveli muihin verrattuna. Kun yksi taito saavuttaa levelin 4, muiden maksimilevut asettuvat kolmeen. Siispä yksi voi saavuttaa viiden ja muut vain kolmen.
Vitoslevu on siis paljon parempi, mutta kuinka?

Vahinko
Tässä panosten tekemät vahingot menevät levujen mukaan nollasta viiteen: 1, 2, 3, 4, 6, 12 (ainakin vielä tällä hetkellä). Joka levulla saa siis aina yhden vahinkoa lisää, nelosessa jopa kaksi ja viimeiseen leveliin se tuplaantuu.

Tarkkuus
Tarkkuussysteemistä on ollut aika paljon puhetta jo aikaisemminkin, mutta viimeisellä levelillä jokainen panos on täysin tarkka, jolloin ne tekevät myös tuplavahingon.

Nopeus
Samantapainen kuin vahinko. Viimeinen leveli on todella nopea ampumaan.

Hakeutuvuus
Joka levelillä panosten hakeutuvuus kasvaa vähäsen, mutta viimeisellä levelillä jokainen panos osuu varmasti johonkin kohteeseen.

Näin siis nämä. On varmaan sanomattakin selvää, että jos kaikki taidot voisivat saavuttaa viimeisen levelin, olisi peli aika voitettu. Tämä systeemi tekee pelistä myös vähän mielenkiintoisemman, kun voi valita minkä taidon haluaa viimeiselle levelille. Sitten on olemassa vielä se peruslevu, mutta siinä ei ole mitään erityistä. Aina kun saa sellaisen, saa vain 1000 ilmaista expaa johonkin muuhun levuun.

lauantai 28. marraskuuta 2009

Hiscoret valmiit

Nyt on siis hiscore-systeemi saatu kokonaan valmiiksi. Etukäteen vähän hirvitti sen tekeminen, koska siinä oli melko paljon tehtävää. Loppujen lopuksi tehtävää oli kuitenkin vähemmän, mitä odotin, mutta silti aika paljon.

Ensinnäkin piti tehdä systeemi, joka tulostaa tekstiä yksittäisistä kirjaimista, koska tähän mennessä kaikki pelissä esiintyvät tekstit olivat olleet kokonaisia kuvia. Päätin koodata tämän systeemin itse, vaikka tarjolla olisi ollut kirjastokin, joka olisi osannut tehdä tämän suoraan fonttitiedostolla. Kirjastoja on kuitenkin jo aika monta mukana, joten päätin säästää tässä asiassa. Sitten piti tehdä systeemi, joka lukee käyttäjän painamat näppäimet, jotta voitaisiin kysyä pelaajan nimi hiscoreihin. Näissä molemmissa systeemeissä oli luonnollisesti aika paljon tehtävää, koska kirjaimia on kuitenkin melko paljon.
Sitten enää puutuikin sivu, joka näyttää hiscoret, mutta se meni jo vähän nopeammin, koska tekstin tulostus oli jo hanskassa.

keskiviikko 25. marraskuuta 2009

Selkeämpi sivupalkki

Tuossa muutamia päiviä sitten joku tuntematon henkilö lisäsi tähän blogiin ensimmäisen kommentin, jossa hän ehdotti noiden damage ynnä muiden valikoiden selkeyttämistä. Niinpä päätin tehdä tämän ja kiitos sinun, uskoisin, että ne ovat nyt paljon selkeämmät.
Tuossa on siitä kuva:


Tuossa siis tuo, enkä taida tuosta nyt tässä enää mitään sanoa...

Sitten vielä vähän tilastotietoutta, mikä muuten unohtui edellisen kuvan yhteydestä:
  • Pelin latautuminen kestää noin 2.6 sekuntia
  • Peli rohmuaa käynnistyessään 145Mt muistia
  • Pelin lähdekoodissa on 2997 riviä koodia
Muistia menee muuten taas vähemmän! :)

sunnuntai 22. marraskuuta 2009

Blogin ulkoasun päivitys

Nyt siis viimein jaksoin päivittää tämän blogin ulkoasun paremmin vastaamaan sen aihetta. Nyt kun pelin grafiikkakin alkaa olemaan lopullisen näköinen, saatoin lisätä saman tapaista grafiikka tähän blogiinkin. Ensinnäkin yläreunassa on nyt uusi hieno banneri ja sen takia blogi on nyt myös hieman leveämpi. Samalla vaihdoin taustakuvan ja tunasin fontteja ja värejä.

Sitten on vielä yksi uusi juttu, jonka lisäsin tuohon oikeaan sivupalkkiin. Nyt sieltä näkee pelin edistymisen ja tällä hetkellä siellä näyttäisi olevan vielä aika paljon tekemätöntä tavaraa.

perjantai 20. marraskuuta 2009

Kuva menusta

Viime aikoina olen työskennellyt menun kimpussa, ja aika paljon olen jo saanut aikaankin. Tuossa on sitten kuva aivan siitä ensimmäisestä menusta, mikä ruutuun ilmestyy käynnistäessä pelin.


Tuolta siis tulee menun grafiikat näyttämään. Siinä on hiiri tuon new game-napin päällä ja sen takia se on korostunut.
Nyt siis on jo new game- ja exit game-napit toiminnassa. New gamea painamalla tulee uusi menu, josta voi valita pelattavan kartan, joita on kuitenkin tällä hetkellä vasta se yksi survival. Itse pelissäkin voi painaa esciä, josta avautuu pelin päälle pieni menu, josta voi sitten halutessaan palata menuun. Hi-scoret, settingit ja creditit teen sitten myöhemmin.

keskiviikko 18. marraskuuta 2009

Pistesysteemi

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

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)